[ Foro de Pascal ]

otra forma de leer datos...

04-Feb-2014 18:51
oscar gomez
2 Respuestas

cordial saludo profesor nacho y compañeros del foro.
queria preguntar en esta ocasion si pudieran hecharme una mano de como podria leer de una forma mas compacta y equivalente quiza , en mi siguiente planteamiento que parte de un programa que realice pero del que me gustaria optimizar cosas, entre ellas la que planteo:


program ayuda;
 uses crt;
  const   MAXEMPLEADOS =5;
              MAXDIAS=3;
   type
           tpTiempo=record
                hh,mm:integer;
              end;

             tpDatos=record
              dni:string[9];
              horas:array[1..MAXDIAS]of  tpTiempo;
             end;

    tpTotal_empleados=array[1..MAXEMPLEADOS] of  tpDatos;

  var
        empleados: tpTotal_empleados ;
        t : tiempo;
        dias,horas:integer
  ...
    for i:=1 to MAXEMPLEADOS do
      begin
        writeln('digite el dni del empleado ',i, ' : ');
        readln(empleados[i].dni);
        writeln('introduzca los tiempos del empleado ' ,i, ' : ');
        for j:=1 to MAXDIAS do
         begin
          writeln('escriba las horas: ');
          readln(empleados[i].horas[j].hh);
           writeln('escriba los minutos: ');
           readln(empleados[i].horas[j].hh);
         end;
    end;

....
bien mi pregunta esta aqui mismo, como puedo leer quiza un poco mas reducido la forma en que leo las horas y minutos?
 readln(empleados[i].horas[j].hh);
readln(empleados[i].horas[j].hh);


o como podria utilizar mi variable:     t : tiempo; para leer los tiempos para cada empleado...
gracias por cualquier ayuda que me puedan brindar.


04-Feb-2014 19:41
Nacho Cabanes (+83)

Está bien así.

No se trata de "escribir poco", sino de que el programa sea legible (y, por tanto, fácil de corregir y de ampliar).

Podrías leer la hora y los minutos a la vez, en formato HH:MM, en una cadena de texto, para luego descomponer en las dos partes, pero eso posiblemente no sería más breve, y con toda certeza sería más complejo, y, por ello, más propenso a errores). Si haces algún cambio de este estilo, debería ser para que el programa resulte más amigable al usuario, no para que el fuente sea más compacto.

(Cuidado: doy por sentado que ha sido un error de transcripción, pero fíjate que en los dos casos estás leyendo ".hh", cuando deberías leer primero ".hh" y luego ".mm").


04-Feb-2014 20:10
oscar gomez

ok profesor, de hecho asi me funciona perfecto el programa, solo que queria saber por curiosidad si estaba quiza muy larga mi opcion, y efectivamente me equivoque en la trascripcion, son mm en la segunda parte.gracias por tu sabio consejo, lo dejare asi.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)