Vale ya he arreglado lo del IF y también he hecho un bucle dentro de
for j:=1 to nvuelos do para todas las instrucciones.
Ole, ya he conseguido que me pida las opciones, por haberle quitado el read (nvuelos) como decias,
Y como yo quería determinar el nvuelos lo he puesto antes del bucle. ahora funciona las veces que yo le diga.
Pongo de nuevo el codigo tal cual lo tengo ahora, porque ahora tengo que hacer el siguiente subprograma que es modificar los datos.
Código Delphi
[-]
program Algoprueba3;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const MAXvuelos=100;
type
t_fecha= 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;
fecha_llegada: t_fecha;
end;
t_index=1..MAXvuelos;
t_lista_vuelos= array[1..MAXvuelos]of t_vuelo;
var
v1:t_lista_vuelos;
nvuelos:integer;
op:integer;
procedure Leer_datos (VAR v1 : t_lista_vuelos; nvuelos:integer );
VAR
j: t_index;
begin
writeln ('Cuantos vuelos diferentes va a introducir?: ');
readln (nvuelos);
for j:=1 to nvuelos do
begin
writeln ('Escriba el codigo de vuelo(AAA111): ');
readln(v1[j].cod_vuelo);
writeln ('Cual es el codigo del aeropuerto de salida?(AAA): ');
readln(v1[j].aero_salida);
writeln ('Cual es el codigo del aeropuerto de llegada?(AAA): ');
readln(v1[j].aero_llegada);
writeln ('Cuantos pasajeros hay en este vuelo?: ');
readln(v1[j].pasajeros);
end;
end;
begin
repeat
writeln ('Escoja una de las siguentes opciones: ');
writeln ('--------------------------------------');
writeln ('1) Entrar 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');
writeln;
readln (op);
writeln;
if (op<0) or (op>4) then
writeln('La opcion no es correcta, escoja otra opcion.');
case op of
1: Leer_datos (v1,nvuelos);
end;
until op=0;
end.
Muchas gracias por todo. A partir de media noche seguiré dándole vueltas al tema a ver como puedo hacer para modificar los datos según el codigo de vuelo, la cual es la opción 2.
Espero vuestras sugerencias e ideas para el subprograma: modificar!!
P.D. Aunque funciona correctamente, me dice que es posible que la variable nvuelos no se inicialice, como puedo depurar este error?