Bonjour, j'ai fait ce programme simple pour chiffrer son nom à l'aide d'une vesion du 'code de césar' qui consiste à remplacer chaque caractère du nom à crypter par le caractère qui le suis selon l'ordre ASCII :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program Chiffr;
uses wincrt;
var ch,ch1:string;r,i:integer;
begin
writeln('Entrez votre nom : ');
readln(ch);
for i:=1 to length(ch) do
begin
r:=ord(ch[i])+1;
if r=256 then r:=0;
ch1[i]:=chr(r)
end;
writeln('Le cryptage de votre nom donne : ');
writeln(ch1);
end.
Ce programme ne fonctionne pas tel qu'il est, plus précisement il n'affiche pas le nom chiffré, pour le faire fonctionner je doit remplacer dans la boucle par .

Alors pourquoi ma boucle doit-elle commencer par i:=0 ?
Le premier caractère de la chaine 'ch' étant 'ch[1]' et non 'ch[0]'.

Merci