Bonjour, alors on me demande d’écrire un programme permettant de saisir une chaîne puis d’effacer les caractères identiques dans cette chaine
par ex si ch=aaabbbaacca le résultat sera abc . alors j’ai écris mon programme et il m’a semblé logique mais en l’exécutant sur pascal m’affiche ‹ ‹ an error has occurred in your application › › puis il se bloque. voici ce que j’ai écrit:
uses wincrt;
var
ch:string;
i,j:integer;
begin
write('saisir ch ');
readln(ch);
for i:=1 to length(ch) do;
j:=i;
repeat
if ch[i]=ch[j] then delete(ch,j,1) ;
else j:=j+1;
until j=length(ch);
write(ch);
end.
Merci d’avance pour votre aide ![]()
PS: lorque je remplace for i:=1 to length(ch) do par son équivalent par le boucle repeat i:=0
repeat
i:=i+1
…
until i=length
et quand je remplace aussi until j=length(ch) par j>;length(ch) le programme marche comme il faut mais je ne comprend pas pourquoi . Quelqu’un pourrait m’éclaircir ? merci pour vos réponses ! ![]()