Ver Mensaje Individual
  #5  
Antiguo 01-06-2007
Avatar de Nanaky
Nanaky Nanaky is offline
Miembro
 
Registrado: jun 2007
Posts: 10
Reputación: 0
Nanaky Va por buen camino
Vale ya me he puesto manos a la obra y he conseguido que funcione el Case of. Solo me funciona con la opcion 0 (salir) o si le doy a una opcion que no está entre 0 y 4 ( esto es lo siguiente que preguntaba, ahora ya funciona).

Lo que pasa ahora es que cuando le doy a la opcion 1 ( la unica que tengo de momento) no hace nada , ni puedo volver al menu ni cerrar el programa. A ver si alguien me ayuda .

Pongo el codigo tal cual lo tengo ahora:

Código Delphi [-]
program Algoprueba3;

{$APPTYPE CONSOLE}

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
  v1:t_lista_vuelos;
  nvuelos:integer;
  op:integer;
  procedure Leer_datos (VAR v1 : t_lista_vuelos; nvuelos:integer );
    VAR
      j: t_index;
      begin
        readln (nvuelos);
        for j:=1 to nvuelos do
        writeln ('Escriba el codigo de vuelo(AAA111):  ');
        readln(v1[j].cod_vuelo); (*fallo*)
        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;
   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');
      writeln;
      readln (op);
      writeln;
        if (op<0) and (op>4) then
          begin
            writeln('La opcion no es correcta, escoja otra opcion.');
            continue;
          end;
      case op of

        1: Leer_datos (v1,nvuelos);(*fallo*)

      end;
      until op=0;
end.


y estos son los mensajes de error en las lineas que he marcado como fallo.

[Warning] Algoprueba3.dpr(46): FOR-Loop variable 'j' may be undefined after loop

[Warning] Algoprueba3.dpr(73): Variable 'nvuelos' might not have been initialized


Muchas a todos por vuestra colaboración.


No se si será que le faltan variables de entrada y/o salida al procedure.

Última edición por Nanaky fecha: 01-06-2007 a las 20:47:56.
Responder Con Cita