Vous êtes sur la page 1sur 2

C:\Users\Utilisateur\Documents\Pascal\Bac 2019.

pas

Program HeureMiroir;
Uses Wincrt;
Type
Tab = Array[1 .. 20] Of String;
Var
HN,NP: Tab;
N: Integer;

Procedure Saisie(Var N:Integer);


Begin
Writeln('Donner le nombre de nouveau-nés : ');
Readln(N);
End;

Function Verif(ch:String): Boolean;


Var
x1,x2,e: Integer;
Test: Boolean;
Begin
Test := True;
Val(Copy(ch,1,2),x1,e);
Val(Copy(ch,4,2),x2,e);
If Not x1 In [0 .. 23] Then test := False;
If Not x2 In [0 .. 59] Then test := False;
Verif := Test;
End;

Procedure Remplissage(Var NP,HN:tab;N:Integer);


Var
Test: Boolean;
i,j,k: Integer;
Begin
For i:=1 To N Do
Repeat
Test := True;
Writeln('Donner le nom de nouveau-nés ',i);
Readln(NP[i]);
If Not (NP[i][1] In ['A'..'Z']) Then test := False;
If Length(Np[i])>30 Then test := False;
Until Test;
For k:=1 To N Do
Repeat
Writeln('Donner l''heure ',k,': ');
Readln(HN[k]);
Until Verif(HN[k]);
End;

Function Doublee(ch:String): Boolean;


Var
TEst: Boolean;
Begin
TEst := False;
If Copy(ch,1,2)=Copy(ch,4,2) Then test := True;
Doublee := Test;

Devoirs et examens sur : www.Kiteb.net


End;

Function Inversee(ch:String): Boolean;


Var
Test: Boolean;
Begin
TEst := False;
If (ch[1]=ch[5]) And (ch[2]=ch[4]) Then test := True;
Inversee := TEst;
End;

Function TRiplee(Ch:String): Boolean;


Var
Test: Boolean;
Begin
Test := False;
If (ch[1]=ch[2]) And (ch[1]=ch[4]) Then test := True;
If (ch[2]=ch[4]) And (ch[4]=ch[5]) Then test := True;
Triplee := TEst;
End;

Procedure Affichage(NP,HP:Tab;N:Integer);
Var
Nb1,Nb2,Nb3,i: Integer;
Begin
Nb1 := 0;
Nb3 := 0;
Nb2 := 0;

28/05/2019 - 16:28:07 - Page 1/2


C:\Users\Utilisateur\Documents\Pascal\Bac 2019.pas

For i:=1 To N Do
Begin
If Triplee(HN[i]) Then
Begin
Writeln(NP[i],' : heure miroir triplée');
NB1 := NB1+1;
End;
If Doublee(HN[i]) Then
Begin
Writeln(NP[i],' : heure miroir Doublée');
NB2 := NB2+1;
End;
If inversee(HN[i]) Then
Begin
Writeln(NP[i],' : heure miroir inversee');
NB3 := NB3+1;
End;
End;
Writeln('Le nombre des nouvea-nés ayant l''heure de naissance miroir doublée est ',NB2);
Writeln('Le nombre des nouvea-nés ayant l''heure de naissance miroir triplée est ',NB1);
Writeln('Le nombre des nouvea-nés ayant l''heure de naissance miroir inversée est ',NB3);
End;
Begin
Saisie(N);
Remplissage(NP,HN,N);
Affichage(NP,HN,N);
End.

Devoirs et examens sur : www.Kiteb.net

28/05/2019 - 16:28:07 - Page 2/2

Vous aimerez peut-être aussi