Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

vendredi 24 avril 2020

Baccalauréat 2014 SI Sujet 3 Corrigé

Program S3; Type mat = array[1..5,1..5] Of char; Var ft : text; mess,motcle : string; m : mat; //************************************** Function verifdouble(ch:String) : boolean; Var ok : boolean; i,j : integer; c : char; Begin i := 1; ok := true; Repeat c := ch[i]; j := 1; Repeat If (j<>i) And (ch[j]=c) Then ok := false Else j := j+1; Until (j>length(ch)) Or (ok=false); i := i+1; Until (i>length(ch)) Or (ok=false); verifdouble := ok; End; //************************************** Function verif1(ch:String) : boolean; Var ok1,ok2 : boolean; i : integer; Begin ok1 := true; i := 1; While (ok1) And (i<=length(ch) ) Do If (ch[i] In ['A'..'V','X'..'Z']) Then i := i+1 Else ok1 := false; ok2 := verifdouble(ch); verif1 := (ok1) And (ok2); End; //************************************** Function verif2(ch:String) : boolean; Var ok : boolean; i : integer; Begin ok := true; i := 1; While (ok) And (i<=length(ch) ) Do If (ch[i] In ['A'..'Z',' ']) Then i := i+1 Else ok := false; verif2 := ok End; //************************************** Procedure affichemat(v:mat); Var i,j : integer; Begin For i:=1 To 5 Do Begin For j:=1 To 5 Do write(v[i,j]:5); writeln; End; End; //************************************** Procedure remplirM(Var M:mat;ch:String); Var ok : boolean; i,j,l : integer; c : char; Begin i := 0; l := 1; j := 0; Repeat i := i+1; j := 1; Repeat m[i,j] := ch[l]; l := l+1; j := j+1; Until (l>length(ch)) Or(j>5); Until (l>length(ch)); c := 'A' ; Repeat If (pos(c,ch)=0)And (c<>'W') Then If (j<=5) Then Begin m[i,j] := c; j := j+1; End Else Begin j := 1; i := i+1; m[i,j] := c; j := j+1; End; c := succ(c); Until (i>5); End; //************************************** Function crypter(c:char;m:mat) : string; Var chi,chj,chcry : string; i,j : integer; Begin For i:=1 To 5 Do For j:=1 To 5 Do If (m[i,j]=c) Then Begin str(i,chi); str(j,chj); chcry := chi+chj; End; crypter := chcry; End; //**************************************3 Procedure remplirF(Var ft:text; m:mat;mess:String); Var chcry,ch1 : string; i : integer; Begin assign(ft,'mess_crypte.txt'); rewrite(ft); chcry := ''; For i:=1 To length(mess) Do If (mess[i]=' ') Then chcry := chcry+' ' Else Begin ch1 := crypter(mess[i],m); chcry := chcry+ch1; End; writeln(ft,chcry); writeln(chcry); End; //************************************** Begin assign(ft,'mess_crypte.txt'); Repeat writeln('saisir Le mot clé: '); readln(motcle); Until (verif1(motcle)); Repeat writeln('saisir Le message à crypter '); readln(mess); Until (verif2(mess)); remplirM(M,motcle); affichemat(m); remplirF(ft,m,mess); End.
 
Back to top