Program HMiroir1;
Type
Tab = Array [1..20] Of String[30];
Var
NP , HN : Tab;
N : integer;
//********************************
Procedure Saisir (Var N : integer);
Begin
Repeat
Write('Donner le nombre de nouveau-nés :');
Readln(N);
Until N In [3..20];
End;
//********************************
Procedure Remplissage (Var NP , HN : Tab ; N : integer);
Var
i , HH , MM , e : integer;
Begin
For i:=1 To N Do
Repeat
Write ('Donner le nom et le prénom du nouveau-né N° ',i,' : ');
Readln (NP[i]);
Until (NP[i][1] In ['A'..'Z']) And (Length(NP[i])<=30);
For i:=1 To N Do
Repeat
Write ('Donner l''heure de naissance du nouveau-né N° ',i,' : ');
Readln (HN[i]);
Val(Copy(HN[i] , 1 , 2) , HH , e);
Val(Copy(HN[i] , 4 , 2) , MM , e);
Until (HH In [0..23]) And (MM In [0..59]) And (HN[i][3] = ':') And (Length(HN[i])=5);
End;
//********************************
Procedure Affichage (NP , HN : Tab ; N : integer);
Var
i , NBdou , NBtrip , NBinv : integer;
Begin
NBdou := 0;
NBtrip := 0;
NBinv := 0;
For i:= 1 To N Do
Begin
If (HN[i][1] + HN[i][2] = HN[i][4] + HN[i][5]) Then
Begin
NBdou := NBdou + 1;
writeln (NP[i],' : heure miroir doublée');
End;
If ((HN[i][1] = HN[i][2]) And (HN[i][2] = HN[i][4])) Or
((HN[i][2] = HN[i][4]) And (HN[i][4] = HN[i][5])) Then
Begin
NBtrip := NBtrip + 1;
writeln (NP[i],' : heure miroir triplée');
End;
If (HN[i][1] + HN[i][2] = HN[i][5] + HN[i][4]) Then
Begin
NBinv := NBinv + 1;
Writeln(NP[i],' : heure miroir inversée');
End;
End;
Writeln ('Le nombre des nouveau-nés ayant l''heure de naissance miroir doublée est ',NBdou);
Writeln ('Le nombre des nouveau-nés ayant l''heure de naissance miroir triplée est ',NBtrip);
Writeln ('Le nombre des nouveau-nés ayant l''heure de naissance miroir inversée est ',NBinv);
End;
//********************************
Begin
Saisir (N);
Remplissage (NP , HN , N);
Affichage (NP , HN , N);
End.
Inscription à :
Publier les commentaires (Atom)