[pascal]pb fonction d'inversement de chaînes

Fermé
grad - 6 janv. 2008 à 12:45
 Mystic - 27 mars 2009 à 17:16
Bonjour,
Je travaille avec pascal sous le compilateur Dev - Pas

J'ai fait un programme qui appelle à une fonction d'inversement des chaînes de caractères:

Program inversementdeschainesdecaracteres;

uses wincrt;

Var ch,chaine_inversee:string;

Function inverse(ch:string):string;
Var a,i,j:integer;
ch2,ch3:string;
begin
a:=length(ch);
ch2:=ch;
ch3:=ch;
for i:=1 to a do
begin
for j:=a downto 1 do
begin
ch2[i]:=ch3[j];
inverse:=ch2;
end;
end;
end;

Begin
write('Donnez la chaîne:');
read(ch);
chaine_inversee:=inverse(ch);
writeln('La chaîne inversée est:',chaine_inversee);
readln;readln;
end.


Le programme se compile et s'execute avec succès
mais à l'execution,après que j'entre la chaîne ch qui vaut par exemple ABC au lieu d'obtenir CBA j'obtient AAA
vous pouvez m'aider à corriger l'erreur;
aussi vous pouviez me dire une procédure qui inverse les chaîne et non pas cette fonction,c'est à dire automatiquement après faire l'appel à la procédure la chaîne s'inverse
A voir également:

3 réponses

répondez moi
0
ça y est j'ai trouvé la solution
mais je garde un question :

Comment transformer la fonction en procédure?
c'est à dire à la place de mettre ch:=inverse(ch);
Je mets une procédure directe qui l'inverse
0
Reponse 1 an plus tard !
Pour en faire une procedure, il suffit de la declarer comme ceci :

Procedure inverse(var ch:string);

Et de mettre le resultat de la procedure comme ceci : ch:=resultat

Ainsi, en appelant inverse(a), a sera inversé !
En esperant avoir pu aider qlqun ^^ !
0