Colas

3
COLAS 1. Se considera una cola frente a una ventanilla en la cual si un cliente al llegar a la misma no puede ser atendido, se le reintegra a la cola a la posición nº 10, si hay más de 10 personas, o al final de la misma, en caso contrario. Se pide diseñar un procedimiento de ATENCION (lo que debe suceder cuando un cliente es atendido), REINGRESO (vuelta a la cola) y otro de INGRESO (inicial) en cola. Todo ello con vistas a que el reingreso sea sencillo, para lo que se sugiere controlar el nº de personas en la cola, y en su caso, un puntero al elemento adecuado de la cola para ejecutar el reingreso. //Procedimiento de ingreso INICIO Frente 0, final 0; Leer cliente Si final = n entonces Escribir “Cola llena” Caso contrario final final + 1 cola[final] cliente ptr final – frente + 1 si frente = 0 entonces frente 1 ptr final fin si fin si FIN //Procedimiento de Atención INICIO si No puede ser atendido entonces Llamar al Procedimiento Reingreso caso contrario si frente = 0 entonces escribir “cola vacia” caso contrario cliente cola[frente] si frente = final entonces frente 0 , final 0 caso contrario frente frente + 1

Transcript of Colas

Page 1: Colas

COLAS

1. Se considera una cola frente a una ventanilla en la cual si un cliente al llegar a la

misma no puede ser  atendido, se le reintegra a la cola a la posición nº 10, si hay

más de 10 personas, o al final de la misma, en caso contrario. Se pide diseñar unprocedimiento de ATENCION (lo que debe suceder cuando un  cliente esatendido), REINGRESO (vuelta a la cola) y otro de INGRESO (inicial) en cola.Todo ello con vistas a que el reingreso sea sencillo, para lo que se sugiere

controlar el nº de personas en la cola, y en su caso, un puntero al elemento

adecuado de la cola para ejecutar el reingreso.

//Procedimiento de ingreso

INICIO Frente 0, final 0; Leer cliente Si final = n entonces

Escribir “Cola llena” Caso contrario

final final + 1 cola[final] cliente ptr final – frente + 1 si frente = 0 entonces

frente 1 ptr final

fin si fin si

FIN

//Procedimiento de Atención

INICIO si No puede ser atendido entonces

Llamar al Procedimiento Reingreso caso contrario

si frente = 0 entonces escribir “cola vacia”

caso contrario cliente cola[frente] si frente = final entonces

frente 0 , final 0 caso contrario

frente frente + 1 fin-si

Page 2: Colas

repetir desde i 1 hasta n – 1

cola[i] cola[ i+1] fin-repetir frente 1 final final – 1

fin-si fin-si

FIN

//Procedimiento reingreso

INICIO

tope 0 si final <= 10 entonces final final + 1 cola [final] cola[frente] caso contrario

repetir desde j= ptr hasta 10 tope tope + 1 pila[tope] cola[j]

fin_repetir cola[10] p tope

cola [frente]

repetir desde k=1 hasta tope cola[10+k] pila[p]

fin_si

p fin_repetir

tope-1

FIN

repetir desde i=1 hasta n-1 cola[i] cola[i+1]

fin_repetir frente 1 final final – 1