Skip to content

Latest commit

 

History

History
96 lines (60 loc) · 2.02 KB

File metadata and controls

96 lines (60 loc) · 2.02 KB

TP C++ n°6

Recherche de palindromes

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.

Objectif

Concevoir une fonction de détection de palindrome en définissant clairement les règles de normalisation du texte.

Notions C++

  • manipulation de chaînes ;
  • parcours par deux indices (début/fin) ;
  • conditions et validation de cas limites.

Pré-requis

  • TP n°5 ;
  • chaînes de caractères ;
  • fonctions.

Travail demandé

1. Spécification

Préciser les règles choisies :

  • ignorer (ou non) les espaces, ;
  • ignorer (ou non) la casse, ;
  • ignorer (ou non) la ponctuation.

2. Implémentation

Coder la fonction de test de palindrome selon votre contrat.

3. Validation

Tester sur plusieurs phrases et mots (cas positifs et négatifs).

4. Documentation

Expliquer dans le README les conventions retenues.

Contraintes techniques

  • Compilateur GNU C++ ;
  • Système d'exploitation Linux, Mac OS X ou Ms-Windows ;
  • Standard recommandé : C++11 ou supérieur.

Exemples d'entrée/sortie

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.

Compilation

g++ -std=c++11 -Wall -Wextra -o test_palindrome test_palindrome.cxx palindrome.cxx

Livrables

  • palindrome.h ;
  • palindrome.cxx ;
  • test_palindrome.cxx ;
  • README.md (contrat + jeux de test).

Extensions possibles (bonus)

  • Ajouter une normalisation des accents ;
  • Ajouter un mode de test automatique avec plusieurs phrases.

Critères d'évaluation

  • Correction de l'algorithme ;
  • Clarté du contrat de normalisation ;
  • Robustesse sur les cas limites ;
  • Qualité des tests et du README.