Program S1;
Var
f,fc : text;
n : integer;
Procedure saisie (Var n: integer);
Begin
Repeat
write(' taper n:');
readln(n);
Until (n<=50);
End;
Function verif (ch:String) : boolean;
Var
i : integer;
Begin
i := 0;
Repeat
i := i+1;
Until (Not(upcase(ch[i]) In ['A'..'Z',' ']))Or(i=length(ch));
verif := (upcase(ch[i]) In ['A'..'Z',' '])And(ch[1]<>' ')
And(ch[length(ch)]<>' ')And(pos(' ',ch)=0);
End;
Procedure saisie_ph( Var ph:String);
Begin
Repeat
write('Taper une phrase :');
readln(ph);
Until (verif(ph));
End;
Function crypter (mot:String; p:integer) : string;
Var
motc : string;
c : char;
i : integer;
Begin
motc := '';
For i:=1 To length(mot) Do
Begin
If (mot[i] In ['A'..'Z']) Then
Begin
If chr(ord(mot[i])+p)<'Z' Then
c := chr(ord(mot[i])+p)
Else
c := chr( (ord(mot[i])+p-90) Mod 26 +64);
End ;
If (mot[i] In ['a'..'z']) Then
Begin
If chr(ord(mot[i])+p)<'z' Then
c := chr(ord(mot[i])+p)
Else
c := chr( (ord(mot[i])+p-122) Mod 26 +97);
End;
motc := motc+c;
End;
crypter := motc;
End;
Function crypter_ph( ph:String) : string;
Var
ch1,phc : string;
i,p : integer;
Begin
phc := '';
p := 0;
ph := ph+' ';
While (ph<>'') Do
Begin
p := p+1;
ch1 := crypter(copy(ph,1,pos(' ',ph)-1),p);
phc := phc+ch1+' ';
delete(ph,1,pos(' ',ph));
End;
delete(phc,length(ph),1);
crypter_ph := phc;
End;
Procedure traitement (Var f,fc:text; n:integer);
Var
i : integer;
phc,ph : string;
Begin
append(f);
append(fc);
For i:=1 To n Do
Begin
saisie_ph(ph);
phc := crypter_ph(ph);
write(f,ph);
write(fc,phc);
writeln(ph);
writeln(phc);
End;
close(f);
close(fc);
End;
Begin
assign(f,'c:\phrases.txt');
rewrite(f);
assign(fc,'c:\ph_crypt.txt');
rewrite(fc);
saisie(n);
traitement(f,fc,n);
End.
Inscription à :
Publier les commentaires (Atom)