Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program bac2014;
- Uses Wincrt;
- Type
- mat = Array[1..5,1..5] Of Char;
- Var
- msg,cle: String;
- m: mat;
- Function verif1 (ch:String): Boolean;
- Var
- i: Integer;
- test: Boolean;
- Begin
- i := 0;
- Repeat
- i := i+1;
- test := ch[i] In ['A'..'Z',' '];
- Until (test=False) Or (i=Length(ch));
- verif1 := test;
- End;
- Function verif2 (ch:String): Boolean;
- Var
- i: Integer;
- test: Boolean;
- Begin
- i := 0;
- Repeat
- i := i+1;
- test := (ch[i] In ['A'..'Z']) And (Pos(ch[i],ch)=i);
- Until (i=Length(ch)) Or (test=False);
- verif2 := (test) And (Pos('W',ch)=0);
- End;
- Procedure saisie (Var msg,cle:String);
- Begin
- Repeat
- Write ('Saisir le message: ');
- Readln (msg);
- Until verif1 (msg);
- Repeat
- Write ('Saisir la cle: ');
- Readln (cle);
- Until verif2(cle);
- End;
- Function recherche (c:Char;m:mat): String;
- Var
- i,j: Integer;
- x: String;
- ch1: String;
- Begin
- For i:=1 To 5 Do
- For j:=1 To 5 Do
- If (m[i,j]=c) Then
- Begin
- Str (i,x);
- ch1 := x;
- Str (j,x);
- ch1 := ch1+x;
- End;
- recherche := ch1;
- End;
- Procedure traitement (Var m:mat;msg,cle:String);
- Var
- i,j,longc,x: Integer;
- ch1: String;
- f:text;
- Begin
- longc := 0;
- x := 0;
- For i:=1 To 5 Do
- For j:=1 To 5 Do
- If (Length(cle)>longc) Then
- Begin
- longc := longc+1;
- m[i,j] := cle[longc];
- End
- Else
- Begin
- Repeat
- x := x+1;
- Until (Pos(Chr(x+64),cle)=0) And (Chr(x+64)<>'W');
- m[i,j] := Chr(x+64);
- End;
- ch1 := '';
- For i:=1 To Length(msg) Do
- If (msg[i]='W') Then
- ch1 := ch1+recherche('V',m)
- Else If (msg[i]=' ') Then
- ch1 := ch1+' '
- Else
- ch1 := ch1+recherche(msg[i],m);
- Assign (f,'c:\bac\Mess_Crypt.txt');
- Rewrite (f);
- Writeln (f,ch1);
- Close (f);
- End;
- Begin
- saisie (msg,cle);
- traitement (m,msg,cle);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement