Ver Mensaje Individual
  #2  
Antiguo 02-06-2007
Avatar de Nanaky
Nanaky Nanaky is offline
Miembro
 
Registrado: jun 2007
Posts: 10
Reputación: 0
Nanaky Va por buen camino
Pero he probado de quitarlo del procedure y no funciona.
También lo he quitado de las variables globales y no funciona.
Solo funciona si están los dos a la vez . Eso quiere decir que algo no está bien.
A ver si alguien puede comprobar que con una sola funcionaria.

He empezado a escribir el siguiente ejercicio, el de modificar los datos. Para empezar he puesto para que muestre un listado con las referencias de los vuelos. Pero hay un problema, parece ser que solo me guarda una entrada , mas concretamente la que he entrado en segundo lugar( de 3 entradas, no he metido mas).

Pongo aqui como lo llevo. La parte de modificar no la he empezado porque además de que no se como hacerla, me ha frenado lo que acabo de explicar.

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
        write ('Cuantos vuelos diferentes va a introducir?: ');
        readln (nvuelos);
        for j:=1 to nvuelos do
        begin
          write ('Escriba el codigo de vuelo(AAA111):  ');
          readln(v1[j].cod_vuelo);
          write ('Cual es el codigo del aeropuerto de salida?(AAA):  ');
          readln(v1[j].aero_salida);
          write ('Cual es el codigo del aeropuerto de llegada?(AAA):  ');
          readln(v1[j].aero_llegada);
          write ('Cuantos pasajeros hay en este vuelo?:  ');
          readln(v1[j].pasajeros);
          write ('Escriba la fecha y hora programada de salida del vuelo:  ');
          Write ('Dia: ');
          readln(v1[j].fecha_salida.dia);
          Write ('Mes: ');
          readln(v1[j].fecha_salida.mes);
          Write ('Anyo: ');
          readln(v1[j].fecha_salida.anyo);
          Write ('Hora: ');
          readln(v1[j].fecha_salida.hora);
          Write ('Minuto: ');
          readln(v1[j].fecha_salida.minuto);
          write ('Escriba la fecha y hora programada de llegada del vuelo:  ');
          Write ('Dia: ');
          readln(v1[j].fecha_llegada.dia);
          Write ('Mes: ');
          readln(v1[j].fecha_llegada.mes);
          Write ('Anyo: ');
          readln(v1[j].fecha_llegada.anyo);
          Write ('Hora: ');
          readln(v1[j].fecha_llegada.hora);
          Write ('Minuto: ');
          readln(v1[j].fecha_llegada.minuto);
          end;
      end;
  procedure Modificar_datos (VAR v1 : t_lista_vuelos);
    VAR
      j: t_index;

      begin
        writeln(' - Ref. de vuelo: ',v1[j].cod_vuelo);
        writeln(' - Trayecto: ', v1[j].aero_salida,'-',v1[j].aero_llegada);
        writeln(' - Fecha: Sal-',v1[j].fecha_salida.dia,'/',v1[j].fecha_salida.mes,'/',v1[j].fecha_salida.anyo);
        writeln(' - Hora: Sal ',v1[j].fecha_salida.hora,':',v1[j].fecha_salida.minuto);
        writeln(' - Fecha: Lleg-',v1[j].fecha_llegada.dia,'/',v1[j].fecha_llegada.mes,'/',v1[j].fecha_llegada.anyo);
        writeln(' - Hora: Lleg- ',v1[j].fecha_llegada.hora,':',v1[j].fecha_llegada.minuto);
        readln;
      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);
        2: Modificar_datos(v1);

      end;
      until op=0;

end.


P.D. Sé que no está bien lo de las variables en los procedures, pero prefiero seguir avanzando si funciona, e intentar arreglar eso al final, que si no se me va a hechar el tiempo encima.

Muchas gracias por la ayuda que me estáis dando.
Responder Con Cita