Pascal/Turbo Pascal - AYUDA, Error en pascal

 
Vista:
sin imagen de perfil

AYUDA, Error en pascal

Publicado por Juan Antonio (1 intervención) el 03/11/2016 13:26:29
Buenos dias, necesita ayuda. Este problema dice lo siguiente : El sábado se celebrará en Librilla la carrera de caracoles ‘50 centímetros lentos’. Se han inscrito cuatro serranas que ostentarán los dorsales 1, 2, 3 y 4. Cuando acabe la carrera se desea conocer el ganador, el tiempo que ha empleado y la velocidad a la que se ha desplazado. Los datos que conocemos de cada caracol son: dorsal, nombre, y hora de llegada, en formato: hora, minuto. También se conoce la hora a la que empieza la carrera, en el mismo formato. Diseñe un algoritmo y el correspondiente programa en Pascal que a partir de los datos, muestreen pantalla los resultados del ganador. Defina los tipos de datos adecuados (al menos dos), las acciones (al menos una) y las funciones

Y al hacer la función para calcular el ganador mediante los tiempos; me da error, me dice que no se pueden leer o escribir las variables de este tipo. Si alguien sabe como solucionar el problema, seria de gran ayuda que respondiera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
program lentos;
 
  type
    tiempo = record
      horas: integer;
      min: integer;
  end;
 
  type
    caracol= record
      dorsal: integer;
      nombre: string;
      llegada: tiempo;
  end;
 
  function TiempoEmpleado (a,b: tiempo ): tiempo;
 
     function CVTh ( a: tiempo): integer;  //Trannsforma el tiempo a minutos.
       begin
         CVTh:= 60*a.horas + a.min;
       end;
 
     function CVhT (a: integer): tiempo;  //Transforma lsominutos a tiempo.
      var
       d: tiempo;
      begin
       d.horas:= a DIV 60;
       d.min:= a MOD 60;
       CVhT:= d;
      end;
 
    begin
      TiempoEmpleado:= CVhT( CVTh(a) - CVTh(b));
    end;
 
  function Win (a, b, c, d: tiempo ): tiempo;
   begin
     if (a.horas and a.min) < (b.horas and b.min) then
                             if (a.horas and a.min) < (c.horas and c.min) then
                                                    if (a.horas and a.min) < (d.horas and d.min) then Win:= a
        else;
           if (b.horas and b.min) < (c.horas and c.min) then
                                 if (b.horas and b.min) < (d.horas and d.min) then Win:= b
              else;
                 if (c.horas and c.min) < (d.horas and d.min) then Win:= c
 
                   else Win:=d;
 
                    Writeln ('El tiempo del ganador es: ', Win(a, b, c, d));
                        end;
 
   var
     C1, C2, C3, C4: caracol;
     Inicio: tiempo;
 
    begin
    write ('Introduce el inicio de la carrera: ');
    readln (Inicio.horas, Inicio.min);
    write ('Introduce el nombre de C1: ');
    readln (C1.nombre);
    write ('Introduce el dorsal de C1: ');
    readln (C1.dorsal);
    write ('Introduce el tiempo de llegada de C1: ');
    readln (C1.llegada.horas, C1.llegada.min);
    write ('Introduce el nombre de C2: ');
    readln (C2.nombre);
    write ('Introduce el dorsal de C2: ');
    readln (C2.dorsal);
    write ('Introduce el tiempo de llegada de C2: ');
    readln (C2.llegada.horas, C2.llegada.min);
    write ('Introduce el nombre de C3: ');
    readln(C3.nombre);
    write ('Introduce el dorsal de C3: ');
    readln (C3.dorsal);
    write ('Introduce el tiempo de llegada de C3: ');
    readln (C3.llegada.horas, C3.llegada.min);
    write ('Introduce el nombre de C4: ');
    readln(C4.nombre);
    write ('Introduce el dorsal de C4: ');
    readln (C4.dorsal);
    write ('Introduce el tiempo de llegada de C4: ');
    readln (C4.llegada.horas, C4.llegada.min);
    Win (C1.llegada, C2.llegada, C3.llegada, C4.llegada);
 
    end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA, Error en pascal

Publicado por ramon (2127 intervenciones) el 03/11/2016 23:24:03
{Pascal no permite enviar registros el funciones como lo quieres realizar }

function TiempoEmpleado (a,b: tiempo ): tiempo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar