Un palindrome se lit identiquement de gauche à droite et de droite à gauche, sous certaines conventions (espaces, casse, ponctuation). Ce TP insiste sur la spécification avant l'implémentation.
Concevoir une fonction de détection de palindrome en définissant clairement les règles de normalisation du texte.
- manipulation de chaînes ;
- parcours par deux indices (début/fin) ;
- conditions et validation de cas limites.
- TP n°5 ;
- chaînes de caractères ;
- fonctions.
Préciser les règles choisies :
- ignorer (ou non) les espaces, ;
- ignorer (ou non) la casse, ;
- ignorer (ou non) la ponctuation.
Coder la fonction de test de palindrome selon votre contrat.
Tester sur plusieurs phrases et mots (cas positifs et négatifs).
Expliquer dans le README les conventions retenues.
- Compilateur GNU C++ ;
- Système d'exploitation Linux, Mac OS X ou Ms-Windows ;
- Standard recommandé : C++11 ou supérieur.
Exemple 1 :
- entrée :
RADAR; - sortie attendue : palindrome.
Exemple 2 :
- entrée :
BONJOUR; - sortie attendue : non palindrome.
Exemple 3 (si espaces ignorés) :
- entrée :
ET LA MARINE VA VENIR A MALTE; - sortie attendue : palindrome.
g++ -std=c++11 -Wall -Wextra -o test_palindrome test_palindrome.cxx palindrome.cxxpalindrome.h;palindrome.cxx;test_palindrome.cxx;README.md(contrat + jeux de test).
- Ajouter une normalisation des accents ;
- Ajouter un mode de test automatique avec plusieurs phrases.
- Correction de l'algorithme ;
- Clarté du contrat de normalisation ;
- Robustesse sur les cas limites ;
- Qualité des tests et du README.