Algorithme polyndrome

kOUKFIF -  
 Utilisateur anonyme - 25 janv. 2021 à 11:37
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

jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 
Bonjour,

SI tu veux que des personnes puissent t'aider à comprendre le code que tu as récupéré ... il faut que tu le montre...

NB: Pour poster du code sur le forum, tu devras utiliser les BALISES DE CODE.
Explications ( à lire ENTIEREMENT !! ) disponibles ici : https://codes-sources.commentcamarche.sitesdebloques.org/faq/11288-les-balises-de-code
0
kOUKFIF
 
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
Utilisateur anonyme
 
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.sitesdebloques.org/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