Program Cryptage; Var ch,ch2:string; (*************************************) Procedure saisie(var ch:string); Function verif(ch:string):boolean; Var i:integer; ok:boolean; Begin i:=0; Repeat i:=i+1; ok:= upcase(ch[i]) in ['A'..'Z',' '] Until (not ok) or (i=length(ch)); verif:=ok; End; Begin Repeat Writeln('Phrase initiale = '); Readln(ch); Until (pos(' ',ch)= 0) and (verif(ch)=true); End; (***************************************) Function crypter(ch:string):string; var i,p:integer; Begin If ch[1]=' ' Then p:=0 Else p:=1; For i:=1 to length(ch) do If ch[i]<>' ' Then If (ord(upcase(ch[i]))+p) <= ord('Z') Then ch[i]:=chr(ord(ch[i])+p) Else ch[i]:=chr(ord(ch[i])+p-26) Else p:=p+1; crypter:=ch End; (*********************P.P**********************) Begin saisie(ch); ch2:=crypter(ch); Writeln('Phrase cryptée = ',ch2); End.