Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ayuda con programacion (https://www.clubdelphi.com/foros/showthread.php?t=71580)

mc7 29-12-2010 10:58:57

ayuda con programacion
 
Saludos, estoy desarrollando un programa de una estación de trenes.
Me piden una aplicación que gestione dicha estación de tren así como avisar de los posibles retrasos.El programa tiene que guardar de cada tren su numero identificador, la fecha de llegada,hora de llegada real,hora prevista de llegada y estación de destino.
Empezé a desarrollarlo pero me ha dadociertos errores.
Por favor si alguien me los puede solucionar estaré eternamente agradecido
Un saludo.




Cita:

program estacion_tren;

{$APPTYPE CONSOLE}

uses
SysUtils;

Const
Nmax=50;

Type

t_fecha=record
dia:1..31;
mes:1..12;
ano:1900..2100;

t_hour=record
hora:0..23;
minuto:0..59;
segundo:0..59;

t_tren:record
codigo:string[6];
estacion_destino:string[25];
fecha_llegada:t_data;
puntualidad:boolean;
hora_llegada_est:t_hour;
hora_llegada_real:t_hour;
end;
t_indice:array[1..Nmax];
t_estacion : Array[t_index] of t_tren;

var
i:integer;


begin
write('Escribe el Codigo del tren: ');
readln(tren[i].codigo);
write('Escribe la estacion de destino: ');
readln (tren[i].estacion_destino);
write('Escribe la fecha real de llegada: ');
readln (tren[i].fecha_entrada_real);
write('Escribe la hora real de entrada: ');
readln (tren[i].hora_llegada_real);
write('Escribe la hora estimada de llegada: ');
readln (tren[i].hora_llegada_est);


readln;
end.

Neftali [Germán.Estévez] 29-12-2010 11:38:46

Hola mc7, bienvenido a los foros.
Antes de nada te recomiendo que revises la Guía de estilo.


En cuanto a tu problema, realmente no explicas la parte más importante;
¿Qué errores te da?

Nos muestras un código que define unos records y unas variables y luego los escribe.
¿Es eso realmente lo que necesitas hacer?
¿De dónde deben salir los datos de los trenes? ¿Base de datos? ¿Fichero? ¿Debes pedirlos por pantalla?

Yo empezaría por explicar pasos pequeños del programa e ir solventándolos poco a poco.

mc7 29-12-2010 12:00:58

Si,de momento es todo cuanto debo hacer . Y los datos deben ser introducidos por pantalla.

tres de los errores ya los he solventado, era que habia puesto t_indice en una parte y t_index en otra, y t_fecha en uno y t_data en otro para referirme a la misma variable. tambien se me habia olvidado definir el array t_indice como integer.
el resto, son los siguientes:
(18): ',' or '.' expected but '=' found
(26): type 't_fecha is not yet completely defined
(28): undeclared identifier: 't_hour'
(32): undeclared identifier: 't_indice'
(32): undeclared identifier: 't_tren'
(38): 'END' expected but 'VAR' found
(41): undeclared identifier: 'tren'
(41): 'END' expected but ')' found

Neftali [Germán.Estévez] 29-12-2010 12:38:42

(18): ',' or '.' expected but '=' found

En este caso te está diciendo que te falta un

Código Delphi [-]
end;

El BEGIN del programa debe tener un END; y el PROGRAM (del inicio) debe tener un END.

Atí te falta un END; antes del END.

(26): type 't_fecha is not yet completely defined

En este caso te está hablando de que hay un probema con t_fecha en la línea (26). Me da la impresión de que se trata de una incongruencia entre t_data y t_fecha que son lo mismo, y en algunos sitios lo llamas de una manera y en otros de otra.

Arregla estos y recompila de nuevo; A veces al arreglar algunos te da mejor los que quedan. Revisa también la descripción del error y la línea ya que muchas veces te da la descripción clara de lo que es.

duilioisola 29-12-2010 13:43:35

también veo que te falta un END; que finaliza la definición de un RECORD
Código Delphi [-]
t_fecha=record
   dia:1..31;
   mes:1..12;
   ano:1900..2100;
end;

De lo contrario el compilador pinesa que tienes un record (t_fecha) que contiene unas variables y un record (t_hour) que contiene unas variables y un record ...

Código Delphi [-]
{MAL}
Type

t_fecha=record
   dia:1..31;
   mes:1..12;
   ano:1900..2100;

   t_hour=record
      hora:0..23;
      minuto:0..59;
      segundo:0..59;

      t_tren:record
         codigo:string[6];
         estacion_destino:string[25];
         fecha_llegada:t_data;

         puntualidad:boolean;
         hora_llegada_est:t_hour;
         hora_llegada_real:t_hour;
      end;
      t_indice:array[1..Nmax];
      t_estacion : Array[t_index] of t_tren;
   {falta un end, ERROR}
{falta un end, ERROR}

{BIEN}
Type

t_fecha=record
   dia:1..31;
   mes:1..12;
   ano:1900..2100;
end;

t_hour=record
   hora:0..23;
   minuto:0..59;
   segundo:0..59;
end;

t_tren:record
   codigo:string[6];
   estacion_destino:string[25];
   fecha_llegada:t_data;
   puntualidad:boolean;
   hora_llegada_est:t_hour;
   hora_llegada_real:t_hour;
end;

t_indice:array[1..Nmax];
t_estacion : Array[t_index] of t_tren;

mc7 04-01-2011 10:51:28

Vale, ya está todo solventado, muchisisimas gracias!


La franja horaria es GMT +2. Ahora son las 17:29:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi