Program Cryptage;
Var
ch: string;
p: Integer;
//***************************
Function verif(ch:String): Boolean;
Var
b: Boolean;
i: Integer;
Begin
i := 0;
Repeat
i := i+1;
If Upcase(ch[i]) In ['A'..'Z',' '] Then
b := True
Else
b := False;
Until (Not(b)) Or (i=Length(ch));
verif := b;
End;
//***************************
Procedure saisir(Var ch:String);
Begin
Repeat
writeln('Donner le message à crypter: ');
Readln(ch);
Until verif(ch);
End;
//***************************
Function nbmot(ch:String): Integer;
Var
i,j,n: Integer;
T: Array [1..200] Of string;
Begin
i := 0;
j := 1;
Repeat
i := i+1;
If Upcase(ch[i]) In ['A'..'Z'] Then
T[j] := T[j]+ch[i]
Else
j := j+1;
Until i=Length(ch);
n := 0;
For i:=1 To j Do
If T[i]<>'' Then
n := n+1;
nbmot := n;
End;
//***************************
Function crypter(ch:String;p:Integer): String;
Var
i,ordch: Integer;
Chrd: string;
Begin
chrd := '';
For i:=1 To Length(ch) Do
Begin
If ch[i]=' ' Then
Chrd := Chrd + ch[i]
Else If ch[i] In ['A'..'Z'] Then
Begin
ordch := Ord(ch[i])+p;
While Not(ordch In [65..91]) Do
Begin
ordch := ordch-26;
End;
Chrd := chrd + Chr(ordch);
End
Else If ch[i] In ['a'..'z'] Then
Begin
ordch := Ord(ch[i])+p;
While Not(ordch In [97..123]) Do
ordch := ordch-26;
Chrd := chrd + Chr(ordch);
End;
End;
crypter := chrd;
End;
//***************************
Begin
saisir(ch);
p := nbmot(ch);
writeln(p);
Writeln(crypter(ch,p));
End.
Inscription à :
Publier les commentaires (Atom)