Hola tengo que implementar el siguiente código: escribir un programa que implemente una pila FIFO. Partiendo de un array de 4 strings, preguntará al usuario con qué valor se poblará inicialmente (y lo presentará). A partir de ahí, irá pidiendo indefinidamente valores, que irá colocando en FIFO (y presentando).
Lo he estado intentando primero con números enteros pero la verdad es que no se me ocurre cómo. Lo de seguir metiendo valores se me ocurre con un do..while hasta que se introduzca un comando para no seguir ejecutando el programa. Mi mayor problema es que no se me ocurre como hacer para que cada vez que introduzcas un valor este tome la primera posición del array y el resto se muevan todos una posición. Alguna idea??
void setup()
{
Serial.begin(9600);
Serial.println("Introduzca su entero");
}
void loop()
{
if (Serial.available()){
int miArray[4]={0,0,0,0}; //Array de 4 enteros
int Valor = Serial.parseInt();
Serial.println(Valor);
miArray[0]= Valor;
}
}
}
Pero te sirve de base para comenzar el tuyo, mira me alegro que hagas tu propio ejercicio, eso habla mucho de tu compromiso, pero ningún profesor se va a molestar si analizas el trabajo de otra persona, al contrario ¿No te parece que nadie opera sin saber antes cómo es la anatomía? o por ejemplo, si eres una estudiante de foto, tu harás el esquema de luz pero antes analizarás esquemas ya resueltos, no te va a mandar nadie, que sepa lo que es un proceso académico, a hacer algo sin poder analizar soluciones anteriores.
Tambien puedes usar la clase queue, que es una cola FIFO de la libreria STL de C++.
Con push metes en la cola y con pop sacas de la cola, front te devuelve el siguiente que va a salir.
Es más fácil de usar, puedes contener cualquier objeto, en el ejemplo int. Como inconveniente usa más memoria.
Hola a todos.
O tambien podrias hacerlo a "pelo" solo tendrias que definir una variable,por ejemplo, int puntero, que siempre contendra el valos del siguente lugar libre donde meter un dato nuevo, y al sacar un dato correr la libreria a la iz quierda o derecha. yo prefiero a la izquierda, la cosa podria quedar algo asi:
Para meter un dato:
miArray[puntero]= Serial.parseInt();
puntero++;
Y para sacar un dato:
Serial.println(miArray[0]);//se supone que ya sale de la fifo, que no es solo para verla
for (int x=(puntero-1); x==0; x--){miArray[x-1]=miArray[x];}
puntero--;