Palindrome

Bonjour,

j'aimerai savoir ce qui cloche dans mon programme ca ne marche pas bien! merci!

program palindrome;
uses crt;
var i,j:integer; mot1,mot2:string;

begin
clrscr;

writeln('entrer votre mot');
readln(mot1);

mot2:='';

for i:=length(mot1) downto 1 do
begin
mot2:=mot1[i];
end;

if mot1 = mot2 then
begin
writeln('le mot ',mot1,' est un palindrome');
end
else
writeln('le mot ',mot1,' n''est pas un palindrome');
readln;
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. la compilation ne marche pas ou bien l'exécution ?

    Si c'est la compilation alors , il faut vérifier la syntaxe du programme , je ne me rapelle pas bien de la syntaxe PASCAL :(
    Si c'est l'exécution , il faut vérifier l'idée du programme : mais je pense qu'elle est correcte !

    regarde ce lien , il y a des algo en PASCAl qui font le traitement que tu cherches à faire

    http://www.commentcamarche.net/forum/affich 7985976 pascal palindrome
    1. ah, désolé , j'ai mélangé la syntaxe PASCAl avec celle du C , il faut écrire donc:

      integer n=length(mot1); // n : représente la longeur du mot

      for i:=n downto 1 do
      begin
      mot2[n-i+1]:=mot1[i];
      end;
      1. Bonjour,

        l'erreur est dans la portion suivante du code :

        for i:=length(mot1) downto 1 do
        begin
        mot2:=mot1[i];
        end;

        il faut écrire :
        int n=length(mot1); // n : représente la longeur du mot

        for i:=n downto 1 do
        begin
        mot2[n-i+1]:=mot1[i];
        end;

        il ne faut pas oublier que mot2 est une chaine de caractères !

        bn courage

        Discussions similaires

        palindrome

        3 réponses