UTNianos

Versión completa: [algoritmos] Consulta ejercicio
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Copio el problema:

MI30: Una compañía aérea desea emitir un listado con los movimientos mensuales de sus M vuelos al exterior. Para ello cuenta con la siguiente información. De cada vuelo realizado el número de vuelo, destino, y cantidad de asientos. De cada pasajero el número de pasaporte y el importe que abonó por el pasaje en dólares.
La información finaliza con un número de pasajeros igual a cero. Se pide emitir el siguiente listado:



[Imagen: img040n.jpg]


Mi duda en realidad no es como hacer los cálculos, sino que si me baso textualmente en lo que dice el enunciado, al terminar de ingresar el ultimo pasajero del vuelo, de la nada aparezca la lista de pasajeros del vuelo y todos los demas datos...

Lo que se me ocurrió, seria un ciclo for, para los vuelos, y adentro un ciclo repeat-until para los pasajeros, pero al ir ingresando los pasajeros si o si los tengo que mostrar, y eso quedaria feo, y no como una lista bien linda como la muestran en la foto, con el nro de vuelo arriba, destino, etc...


Es un ejercicio del modulo 1, integrador, anterior a subprogramas...

Muchas Gracias!
Faaaaaa me acuerdo que ese ejercicio lo hice y me sentia groso =P El ciclo mas conveniente para usar en este caso seria un While.
El While evalua que si la condicion se cumple, entra al ciclo, sino sale. Seria algo asi:


readln(numPasajero);
while numPasajero <> 0 do
begin
calculos();
readln(numPasajero);
end;
mostrar_informe();
end.

No veo lo que tenés que imprimir, pero como dato de color, el repeat evalua por post condición, a lo cual es como lo primero que evalues, es true, dicho a groncho modo (para usarlo, tenés que dar por sentado que para el primer caso se cumple). Es decir, repetime esta secuencia de pasos hasta que la condicion sea falsa.
Con el while, evaluas por precondición, entonces si es false, sale y listo. Es decir, esto es verdadero? Ok, hacé esto entonces
Si, entiendo que el while es el más correcto porque puede no haber vuelos, pero el problema seria al mostrar los resultados de los pasajeros (Nro de pasaporte e importes) por cada vuelo. Me incomoda no tener otra manera de mostrarlos, ya que tengo que ir mostrandolos uno por uno cada ves que se van ingresando y no que se muestren todos juntos al finalizar el ciclo...
Cuando veas las estructuras, este ejercicio va a ser la pavada más grande del universo =P

Ahora sí veo el listado; dame un ratillo a ver qué puedo hacer.
(18-04-2012 13:56)agusbrand escribió: [ -> ]Si, entiendo que el while es el más correcto porque puede no haber vuelos, pero el problema seria al mostrar los resultados de los pasajeros (Nro de pasaporte e importes) por cada vuelo. Me incomoda no tener otra manera de mostrarlos, ya que tengo que ir mostrandolos uno por uno cada ves que se van ingresando y no que se muestren todos juntos al finalizar el ciclo...

A vos no te están especificando con qué criterio se realiza el ingreso de datos [o al menos si la consigna es explícitamente esa, no lo hacen] a lo cual me da presuponer que hacen algo como que ingresan los datos del vuelo y después los datos de todos los pasajeros del vuelo, hasta que ingresan cero y eso da el pie para que ingresen los datos de otro vuelo + sus pasajeros (ahí tenés el ciclo):

Podrías hacer algo como [Insisto, nada feliz, pero porque estoy acostumbrada a las estructuras =P]

- Leer los datos del avión
- Mientras que la cantidad de pasajeros <> 0:
* Leo los datos del pasajero.
* Mientras que el número de pasajero sea <> 0:
# Imprimo los datos del pasajero

* Imprimo el total y los porcentajes del vuelo
- Imprimo el total y los porcentajes del mes

No le metí la parte del cálculo de los datos porque eso ya lo comprendías; una vez que procesaste todos los datos de los pasajeros, te salís del ciclo y ahí te imprime los cálculos del vuelo. Asimismo, una vez que procesaste todos los vuelos, te imprime los cálculos del mes (o sea, de todos los aviones)

No sé si me expliqué, avisa cualquier cosa.
Entendi perfecto, algo parecido tenia en mente, voy a ver que sale! muchisimas gracias! =D
URLs de referencia