
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.
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


0