|
Il s'agit de refaire (rapidement) une partie du x2 en insistant sur le passage de
paramètres.
Soit le type temps_t défini au §2, soit t un temps_t, et ns un entier.
1) Ecrire une procédure ecriture(t) qui affiche à l'écran les valeurs des champs de t sous la forme h:m:s sans retour à la ligne.
2) Ecrire une procédure lecture(t) qui lit au clavier les valeurs à mémoriser dans les champs de t.
3) Ecrire une procédure calc_ns(t,ns) qui renvoie le nombre de secondes ns écoulées depuis 0 :0 :0
4) Faire un programme qui lit t1 et t2 et qui dit si t1 est < ou = ou > à t2, en passant par la conversion en secondes. Le programme utilise les procédures précédentes.
|
PROGRAM temps;
TYPE
heure_t = 0..23;
minute_t = 0..59;
seconde_t = 0..59;
temps_t = Record
h : heure_t;
m : minute_t;
s : seconde_t;
End;
{ 1 }
PROCEDURE ecriture (t : temps_t);
BEGIN
write (t.h, ':', t.m, ':', t.s);
END;
{ 2 }
PROCEDURE lecture (var t : temps_t);
BEGIN
write ('Temps (h m s) : ');
readln (t.h, t.m, t.s);
END;
{ 3 }
PROCEDURE calc_ns (t : temps_t; var ns : integer);
BEGIN
ns := t.h * 3600 + t.m * 60 + t.s;
END;
{ 4 }
VAR t1, t2 : temps_t;
n1, n2 : integer;
c : char;
BEGIN
lecture (t1); lecture (t2);
calc_ns (t1, n1); calc_ns (t2, n2);
if n1 < n2 then c := '<'
else if n1 = n2 then c := '='
else c := '>';
ecriture (t1) ; write (' ', c, ' '); ecriture (t2); writeln;
END
|
|
Signaler un abus
|
|