Énoncé
Saisir une chaîne non vide et tester si elle est identique dans les deux sens. Les espaces, accents et majuscules comptent : "Radar" n’est pas un palindrome dans cet exercice.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Pour une chaîne, ne tapez pas les guillemets. Pour "", validez une saisie vide.
Entrée
Chaîne = "radar"
Sortie attendue
Vrai
Entrée
Chaîne = "Radar"
Sortie attendue
Faux
Entrée
Chaîne = "" Chaîne = "a"
Sortie attendue
Vrai
Code algorithmique
| 1 | algorithme palindrome_chaine |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("Chaîne = ") |
| 5 | lire(ch) |
| 6 | jusqua long(ch) > 0 |
| 7 | // compléter le traitement demandé dans l’énoncé. |
| 8 | fin |
| 1 | algorithme palindrome_chaine |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("Chaîne = ") |
| 5 | lire(ch) |
| 6 | jusqua long(ch) > 0 |
| 7 | gauche ← 0 |
| 8 | droite ← long(ch) - 1 |
| 9 | palindrome ← vrai |
| 10 | tant_que gauche < droite et palindrome faire |
| 11 | palindrome ← ch[gauche] = ch[droite] |
| 12 | gauche ← gauche + 1 |
| 13 | droite ← droite - 1 |
| 14 | fin_tant_que |
| 15 | ecrire_nl(palindrome) |
| 16 | fin |
Méthode
- Comparer les caractères aux deux extrémités.
- Rapprocher les deux indices tant que les caractères sont égaux.
Comprendre la correction
Déroulement sur un exemple
- Pour ch = "radar", les indices 0 et 4 contiennent tous les deux "r".
- On rapproche les indices : ch[1] et ch[3] valent "a". Les indices se rejoignent ensuite au centre.
- Aucune différence n’a été trouvée : le résultat est Vrai. Pour "Radar", la première comparaison "R" = "r" est fausse.
Erreurs à éviter
- Le dernier indice est LONG(ch) − 1, pas LONG(ch).
- Cet exercice distingue majuscules et minuscules. MAJUS changerait la règle demandée.