Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program cryptage;
- uses wincrt;
- Type
- strong=string[18];
- mat1=array['A'..'F','A'..'F'] of Char;
- mat2=array[1..7,1..6] of char;
- Var
- msg:strong;
- mcl:string[6];
- M1:mat1;
- msgi:string;
- M2:mat2;
- Function verif(msg:strong):Boolean;
- Var
- i:Integer;
- Begin
- i:=1;
- while(i<=length(msg)) and (msg[i] in ['0'..'9','a'..'z',' ']) Do
- i:=i+1;
- verif:=i>length(msg);
- end;
- Function verifcl(mcl:String):Boolean;
- Var
- i:Integer;
- Begin
- i:=1;
- while(i<=length(mcl)) and (mcl[i] in ['A'..'Z']) Do
- i:=i+1;
- verifcl:=i>length(mcl);
- end;
- procedure message(var msg:strong);
- Begin
- Repeat
- write(' message a crypter = ');
- readln(msg);
- Until (length(msg)<=18) and verif(msg);
- end;
- procedure motcle(var mcl:String);
- Begin
- Repeat
- write('saisir le mot cle : ');
- readln(mcl);
- Until (Length(mcl)=6) and verifcl(mcl);
- end;
- procedure init(var M1:mat1);
- Var
- i,j,l,c:char;
- ch:String;
- Begin
- ch:='abcdefghijklmnopqrstuvwxyz0123456789';
- Repeat
- randomize;
- l:=chr(Random(ord('F')-ord('A')+1)+ord('A'));
- c:=chr(Random(ord('F')-ord('A')+1)+ord('A'));
- m1[l,c]:=ch[1];
- delete(ch,1,1);
- until(Length(ch)=0);
- end;
- Procedure affich(M1:mat1);
- Var
- i,j:char;
- Begin
- for i:='A' to 'F' Do
- Begin
- for j:='A'to'F' Do
- write(m1[i,j]);
- end;
- end;
- Function generer(var msgi:string;M1:mat1;msg:strong):string;
- Var
- i,j:char;
- l:integer;
- ch:string;
- Begin
- l:=1;
- ch:=msg;
- msgi:='';
- for i:='A' to 'F' Do
- Begin
- for j:='A' to 'F' Do
- Repeat
- if(ch[l]<>m1['A','F']) Then
- l:=l+1
- Else
- Begin
- msgi:=msgi+i+j;
- Delete(ch,l,1);
- end;
- Until l>Length(ch);
- end;
- generer:=msgi;
- end;
- Procedure rempM2(var M2:mat2;mcl:String);
- Var
- i,j:integer;
- Begin
- for i:=1 to 7 Do
- Begin
- for j:=1 to 6 Do
- If(msgi<>'') Then
- m2[i,j]:=' '
- else
- Begin
- m2[i,j]:=msgi[1];
- Delete(msgi,1,1);
- end;
- end;
- end;
- procedure tri(var M2:mat2);
- begin
- for i:= 1 to 7 Do
- for j:= 1 to 6 Do
- end;
- procedure affiche(M2:mat2);
- Var
- i,j:integer;
- ch:string;
- begin
- ch:='';
- for i:= 1 to 6 Do
- Begin
- for j:= 2 to 7 Do
- ch:=ch+m2[j,i];
- end;
- write(ch);
- end;
- begin
- message(msg);
- motcle(mcl);
- init(M1);
- affich(M1);
- generer(msgi,M1,msg);
- rempM2(M2,mcl);
- tri(m2);
- affiche(M2);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement