Program Cryptage;
Var
cle : string;
fs : text;
fc : text;
Procedure saisir(Var cle:String);
Var
i,j : integer;
ok1,ok2 : boolean;
Begin
Repeat
write('cle=');
readln(cle);
ok1 := true;
For i:=1 To length(cle) Do
If (Not(cle[i]In['A'..'Z'])) Then
ok1 := false;
ok2 := true;
For i:=1 To length(cle)-1 Do
For j:=i+1 To length(cle) Do
If (cle[i]=cle[j]) Then
ok2 := false;
Until ((ok1)And(ok2)And(length(cle)In [5..10]));
End;
Procedure generer(Var fs:text;Var
fc:text;cle:String);
Var
m : array[1..10,1..10] Of char;
ch : string;
i,j,nb,l,c : integer;
Begin
reset(fs);
rewrite(fc);
While (Not(eof(fs))) Do
Begin
readln(fs,ch);
l := length(cle);
While ((length(ch))Mod(length(cle))<>0) Do
ch := ch+' ';
nb := 0;
c := length(ch);
For i:=1 To (c Div l) Do
For j:=1 To l Do
Begin
nb := nb+1;
m[i,j] := ch[nb];
End;
ch := '';
For j:=1 To l Do
Begin
ch := ch+cle[j];
For i:=1 To (c Div l) Do
ch := ch+m[i,j];
End;
writeln(fc,ch);
End;
close(fs);
close(fc);
End;
Procedure afficher(Var fc:text);
Var
ch : string;
Begin
reset(fc);
While (Not(eof(fc))) Do
Begin
readln(fc,ch);
writeln(ch);
End;
close(fc);
End;
Begin
assign(fs,'c:\source.txt');
assign(fc,'c:\crypt.txt');
saisir(cle);
GENERER(fs,fc,cle);
AFFICHER(fc);
End.
Inscription à :
Publier les commentaires (Atom)