Algorithme polyndrome

Bonjour,

je veux ecrire en language pascal l'algorithme qui va me vérifier si le mot ou la chaine saisi au clavier est polyndrome ou non??

alors j'ai tester la fonction proposé ici dans les repense , ca marche mais j'ai pas bien compris..

merci de vos repense

Configuration: Windows / Chrome 87.0.4280.141

3 réponses

  1. voici la fonction dont je parle

    function inverse(ch:string; i:integer):string;
    begin
    if(i<=length(ch))then
    inverse:=inverse(ch,i+1)+ch[i];
    end;

    1- j'ai pas pu comprendre le résonnement
    2- est ce que je ne peut pas faire un algo avec une boucle, soit pour soit tantque ?
    0
    1. Bonjour,
      Pour un code plus important (là ça va encore : il n'y a que 5 lignes), penser à bien lire et appliquer les consignes données par Jordane45 : utiliser les BALISES DE CODE.
      Explications ( à lire ENTIEREMENT !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      Pour comprendre ce que fait le programme, il faut avoir en tête que un palindrome est un mot ou une phrase qui peut se lire aussi bien de la droite vers la gauche que, de façon habituelle, de la gauche vers la droite : ex. le mot Anna ; larousse.fr cite le mot <ital>ressasser ou la phrase Ésope reste ici et se repose.</ital>

      Le programme écrit donc le mot à l'envers en utilisant une propriété appelée la récursivité c'est à dire la possibilité pour une fonction de s'appeler elle-même.
      Considérant qu'une chaine textuelle est considérée par Pascal (et d'autres langages) comme un tableau de caractères dont l'indice 1 contient le premier caractère, la fonction inverse réalise l'écriture du mot de la droite vers la gauche.

      On pourrait donc en effet utiliser une boucle (for ou autre) pour partir du caractère le plus à droite (length de la chaine) et en remontant jusqu'à 1 l'écrire à l'envers.

      Si c'est une palindrome alors chaine = chaine_inverse.

      Cordialement
      0