¿Alguien me ayuda a programar?
Publicado por Nanaky (5 intervenciones) el 01/06/2007 00:41:07
A ver si alguien es tan amable de ayudarme con un trabajo que tengo que hacer, en el cual me he quedado atascado.
Con la siguiente premisa:
Realizar una aplicación informática que gestiones los vuelos aereos de una companyia X. El programa debe guardar de cada vuelo la siguiente información. Codigo de vuelo(3 letras y 3 numeros), aeropuerto de salida, aeropuerto de llegada, fecha y hora real de salida, fecha y hora real de llegada, si el vuelo ha sido puntual o no y el número de pasajeros transportados. Se considera que un vuelo es puntual si la diferencia entre la hora estimada y la hora real de salida y/o llegada es menor a 5 minutos.
Tengo que hacer un programa que muestre en pantalla las siguientes opciones (con case of):
1.Entrar datos
2.Modificar datos.
3. Determinar puntualidad de los vuelos y guardar la información en el campo correspondiente.
4. Dadas dos fechas, dar el porcentaje de vuelos puntuales sobre el total de vuelos entre estas fechas.
Lo que llevo hecho es lo siguiente , pero me he quedado estancado y no sé como seguir:
uses
SysUtils;
Const MAXvuelos=100;
type
t_fecha_salida= record
minuto:0..59;
hora:0..23;
dia:1..31;
mes:1..12;
anyo: 2000..2100;
end;
t_fecha_llegada= record
minuto:0..59;
hora:0..23;
dia:1..31;
mes:1..12;
anyo: 2000..2100;
end;
t_vuelo= record
cod_vuelo: string[6];
aero_salida: string[3];
aero_llegada: string[3];
pasajeros: integer;
fecha_salida: t_fecha_salida;
fecha_llegada: t_fecha_llegada;
end;
t_index=1..MAXvuelos;
t_lista_vuelos= array[1..MAXvuelos]of t_vuelo;
var
l:t_lista_vuelos;
op:integer;
i:t_index;
procedure Leer_datos;
begin
writeln('Introduzca el codigo de vuelo: ');
readln(l[i].cod_vuelo);
writeln('Introduzca el codigo del aeropuerto de salida: ');
readln(l[i].aero_salida);
writeln('Introduzca el codigo del aeropuerto de llegada: ');
readln(l[i].aero_llegada);
writeln('Introduzca la fecha de salida: ');
write('Dia: ');
readln(l[i].fecha_salida.dia);
write('Mes: ');
readln(l[i].fecha_salida.mes);
write('Anyo: ');
readln(l[i].fecha_salida.anyo);
writeln('Introduzca la fehca de llegada: ');
write('Dia: ');
readln(l[i].fecha_llegada.dia);
write('Mes: ');
readln(l[i].fecha_llegada.mes);
write('Anyo: ');
readln(l[i].fecha_llegada.anyo);
writeln;
end;
begin
repeat
writeln ('Escoja una de las siguentes opciones: ');
writeln ('--------------------------------------');
writeln ('1) Leer datos');
writeln ('2) Modificar los datos de vuelo por referencia');
writeln ('3) Conocer la puntualidad de los vuelos');
writeln ('4) Porcentajes de puntualidad segun fechas');
writeln ('0) Salir');
readln (op);
if (op>=0) and (op<=4) then
else
writeln('La opción no es correcta, escoja otra opcion.');
(*else lo he puesto como: si no es ni 0,1,2,3 o 4 , opción incorrecta. No se si esto está bién así*)
case op of
'1': Leer_datos;
'2': Modificar_datos;
'3': Puntualidad;
'4': Porcentaje;
end;
until op='0'
end.
-Aquí ya no compila. Me dice que en 'op' incompatible types:integer y char son incompatibles, pero es que yo a la variable op le he dado valor de integer.
- También quiero cambiar el procedure leer_datos, porque de esta manera, luego no se como voy a modificarlos por referencia en el siguiente subprograma.
Quiero hacerlo de la siguiente manera (adjunto pseudocódigo):
Procedimiento leer_datos (ent/sal, VAR v1 : t_lista_vuelos, nvuelos:entero);
VAR j:t_index;
Inicio_secuencia
leer (nvuelos1);
desde j:=1 hasta nvuelos1 hacer
leer v1[j].codigo_vuelo;
f_desde;
f_secuencia;
donde luego en el case of irían así v y , n vuelos.
1:leer_datos (v,nvuelos)
Lo ha explicado el profesor así, pero no lo acabo de entender.
¿Cual sería la entrada y la salida del procedure? y en el caso de nvuelos, ¿puedo luego poner un nvuelos1 sin definirlo como variable, solo poniendole un 1? lo mismo pasa con el v1 y v.
De verdad, está bién copiado.
Estoy bastante perdido.
Agradecería muchíiiiisimo que alguien me ayudase a seguir con el trabajo.
Muchas gracias por anticipado, estaré muy agradecido al que conteste, y también al que le tome interés.
Espero vuestras respuestas!
mi correo:
[email protected]
Con la siguiente premisa:
Realizar una aplicación informática que gestiones los vuelos aereos de una companyia X. El programa debe guardar de cada vuelo la siguiente información. Codigo de vuelo(3 letras y 3 numeros), aeropuerto de salida, aeropuerto de llegada, fecha y hora real de salida, fecha y hora real de llegada, si el vuelo ha sido puntual o no y el número de pasajeros transportados. Se considera que un vuelo es puntual si la diferencia entre la hora estimada y la hora real de salida y/o llegada es menor a 5 minutos.
Tengo que hacer un programa que muestre en pantalla las siguientes opciones (con case of):
1.Entrar datos
2.Modificar datos.
3. Determinar puntualidad de los vuelos y guardar la información en el campo correspondiente.
4. Dadas dos fechas, dar el porcentaje de vuelos puntuales sobre el total de vuelos entre estas fechas.
Lo que llevo hecho es lo siguiente , pero me he quedado estancado y no sé como seguir:
uses
SysUtils;
Const MAXvuelos=100;
type
t_fecha_salida= record
minuto:0..59;
hora:0..23;
dia:1..31;
mes:1..12;
anyo: 2000..2100;
end;
t_fecha_llegada= record
minuto:0..59;
hora:0..23;
dia:1..31;
mes:1..12;
anyo: 2000..2100;
end;
t_vuelo= record
cod_vuelo: string[6];
aero_salida: string[3];
aero_llegada: string[3];
pasajeros: integer;
fecha_salida: t_fecha_salida;
fecha_llegada: t_fecha_llegada;
end;
t_index=1..MAXvuelos;
t_lista_vuelos= array[1..MAXvuelos]of t_vuelo;
var
l:t_lista_vuelos;
op:integer;
i:t_index;
procedure Leer_datos;
begin
writeln('Introduzca el codigo de vuelo: ');
readln(l[i].cod_vuelo);
writeln('Introduzca el codigo del aeropuerto de salida: ');
readln(l[i].aero_salida);
writeln('Introduzca el codigo del aeropuerto de llegada: ');
readln(l[i].aero_llegada);
writeln('Introduzca la fecha de salida: ');
write('Dia: ');
readln(l[i].fecha_salida.dia);
write('Mes: ');
readln(l[i].fecha_salida.mes);
write('Anyo: ');
readln(l[i].fecha_salida.anyo);
writeln('Introduzca la fehca de llegada: ');
write('Dia: ');
readln(l[i].fecha_llegada.dia);
write('Mes: ');
readln(l[i].fecha_llegada.mes);
write('Anyo: ');
readln(l[i].fecha_llegada.anyo);
writeln;
end;
begin
repeat
writeln ('Escoja una de las siguentes opciones: ');
writeln ('--------------------------------------');
writeln ('1) Leer datos');
writeln ('2) Modificar los datos de vuelo por referencia');
writeln ('3) Conocer la puntualidad de los vuelos');
writeln ('4) Porcentajes de puntualidad segun fechas');
writeln ('0) Salir');
readln (op);
if (op>=0) and (op<=4) then
else
writeln('La opción no es correcta, escoja otra opcion.');
(*else lo he puesto como: si no es ni 0,1,2,3 o 4 , opción incorrecta. No se si esto está bién así*)
case op of
'1': Leer_datos;
'2': Modificar_datos;
'3': Puntualidad;
'4': Porcentaje;
end;
until op='0'
end.
-Aquí ya no compila. Me dice que en 'op' incompatible types:integer y char son incompatibles, pero es que yo a la variable op le he dado valor de integer.
- También quiero cambiar el procedure leer_datos, porque de esta manera, luego no se como voy a modificarlos por referencia en el siguiente subprograma.
Quiero hacerlo de la siguiente manera (adjunto pseudocódigo):
Procedimiento leer_datos (ent/sal, VAR v1 : t_lista_vuelos, nvuelos:entero);
VAR j:t_index;
Inicio_secuencia
leer (nvuelos1);
desde j:=1 hasta nvuelos1 hacer
leer v1[j].codigo_vuelo;
f_desde;
f_secuencia;
donde luego en el case of irían así v y , n vuelos.
1:leer_datos (v,nvuelos)
Lo ha explicado el profesor así, pero no lo acabo de entender.
¿Cual sería la entrada y la salida del procedure? y en el caso de nvuelos, ¿puedo luego poner un nvuelos1 sin definirlo como variable, solo poniendole un 1? lo mismo pasa con el v1 y v.
De verdad, está bién copiado.
Estoy bastante perdido.
Agradecería muchíiiiisimo que alguien me ayudase a seguir con el trabajo.
Muchas gracias por anticipado, estaré muy agradecido al que conteste, y también al que le tome interés.
Espero vuestras respuestas!
mi correo:
[email protected]
Valora esta pregunta


0