TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 01 de Julio de 2011, 18:55:58

Título: desplazar los valores de un array
Publicado por: fastyx en 01 de Julio de 2011, 18:55:58
Amigos :espero puedan ayudarme. senso el estado de un pin y en funcion de si es uno o cero , coloco ese valor en la posicion cero del array n de 16 posiciones.

luego tengo que desplazar los valores del array una posicion a la derecha.

no pude hacerlo. no me salió.

desde ya gracias!!
Título: Re: desplazar los valores de un array
Publicado por: Suky en 01 de Julio de 2011, 19:28:33
Con << o >>

A=A<<1;
Título: Re: desplazar los valores de un array
Publicado por: fastyx en 01 de Julio de 2011, 19:33:15
gracias suki por contestar!

cuando te referis a A , estas hablando del nombre del array?

Título: Re: desplazar los valores de un array
Publicado por: Suky en 01 de Julio de 2011, 20:42:58
gracias suki por contestar!

cuando te referis a A , estas hablando del nombre del array?



No, A es una variable, es un ejemplo solamente... Puedes ser más claro en lo que necesitas, y colocar el código de como lo has intentado  ;-)


Saludos!
Título: Re: desplazar los valores de un array
Publicado por: preslei elvis en 01 de Julio de 2011, 21:07:52
Lo que yo haria:

1- Genero un vector de buck up llamado b de 16 posiciones: intX b[16]
2- Cuando tenga que realizar el corrimiento, primero guardo todos los valores del vector n en b
Título: Re: desplazar los valores de un array
Publicado por: Nocturno en 02 de Julio de 2011, 03:34:47
Para correr a la derecha:

Código: [Seleccionar]
recorrer desde el último al primero en orden descendente
     array[i]=array[i-1];

Para correr a la izquierda:

Código: [Seleccionar]
recorrer desde el primero al último en orden ascendente
     array[i]=array[i+1];

Si quieres conservar el dato que está en el extremo, debes salvarlo en otra variable antes del bucle.
Título: Re: desplazar los valores de un array
Publicado por: preslei elvis en 02 de Julio de 2011, 08:54:40
Perdon,no se porque no salio completo el mensaje completo.

1- Genero un vector de buck up llamado b: intX b[16]

2- Guardo el contenido del vector n en el vector b:

        for(i=0,i<=15,++i)
        {b=n}

3- Coloco el valor deseado en la posicion cero del vector n: n[0]=valor

4- Cargo los valores restantes en el vector n con los almacenados en b:

        for(i=1,i<=15,++i)
        {n=b[i-1]}

Espero que te sirva, sino aclara un poco mas o coloca algo del codigo.

Slds.