Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [29/11/2014 18:54] Hypathie [Exo 2 : procédure compter occurrences de deux caractères successifs] |
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [30/11/2014 08:23] Hypathie [Exo 3 : procédure rechercher un palindrome] |
||
---|---|---|---|
Ligne 258: | Ligne 258: | ||
</code> | </code> | ||
===== Exo 3 : procédure "rechercher un palindrome" ===== | ===== Exo 3 : procédure "rechercher un palindrome" ===== | ||
+ | //**Procédure pour déterminer si une chaîne de caractère terminée par un point est un palindrome.**// | ||
+ | |||
+ | ====1) Moulinette (schéma de la procédure)==== | ||
+ | |||
+ | chaîne. ---> | recherche palindrome | ---> palindr : booléen (Vrai ou FAUX) | ||
+ | |||
+ | <code> | ||
+ | i (indice ->) | ||
+ | 1 2 3 4 5 | 6 |... | MAX | ||
+ | ---------------------------------- | ||
+ | | L | A | V | A | L | . | | ||
+ | j (indice <-|.| ) | ||
+ | </code> | ||
+ | | ||
+ | ====2) Jeu d'essai==== | ||
+ | |||
+ | ^ ^ ^ | ||
+ | | '.' | c'est un palindrome | | ||
+ | | 'a.' | c'est un palindrome | | ||
+ | |'aa.' | c'est un palindrome | | ||
+ | | 'aba.' | c'est un palindrome | | ||
+ | | 'acb' | ce n'est pas un palindrome | | ||
+ | | 'aacba.'| ce n'est pas un palindrome | | ||
+ | |'aacab | ce n'est pas un palindrome | | ||
+ | |||
+ | ====3) Définition des données du problème==== | ||
+ | <code> | ||
+ | CONSTANTES | ||
+ | taille =80 //nombre max de caractères de la chaîne | ||
+ | carterm ='.' // caractère terminaleur de la chaîne | ||
+ | |||
+ | TYPE | ||
+ | chaine =tableau[taille] de caractères // type crée pour contenir une liste | ||
+ | |||
+ | VARIABLES | ||
+ | phrase : chaine // phrase où une symétrie est recherchée | ||
+ | i : entier // | ||
+ | j : entier // indice de parcours de la phrase depuis la fin. | ||
+ | </code> | ||
+ | |||
+ | ====4)Interface (notice) de la procédure ==== | ||
+ | |||
+ | ====5)Programme de test ==== | ||
+ | |||
+ | ====6)Algorithme de la procédure Palindrome terminé par un point==== | ||
+ | |||
+ | <code> | ||
+ | CONSTANTES | ||
+ | taille =80 //nombre max de caractères de la chaine | ||
+ | carterm = '.' // caractère terminateur | ||
+ | |||
+ | TYPES | ||
+ | chaîne =tableau[taille] de caractère | ||
+ | |||
+ | VARIABLES | ||
+ | phrase :chaîne //phrase dont on va déterminer la symétrie | ||
+ | i :entier //indice de parcours de la phrase par le début | ||
+ | j :entier //indice de parcours de la phrase par la fin | ||
+ | |||
+ | Début | ||
+ | | ||
+ | écrire('Donnez une phrase." | ||
+ | lire(phrase) | ||
+ | | ||
+ | j := 1 | ||
+ | | ||
+ | TantQue phrase[j] <> carterm FAIRE //arrêt sur terminateur | ||
+ | | ||
+ | j := j + 1 | ||
+ | | ||
+ | FinTantQue | ||
+ | | ||
+ | //Parcours par les deux bouts | ||
+ | j := j - 1 | ||
+ | i := 1 | ||
+ | | ||
+ | TantQue (i<j) ET (phrase[i] = phrase[j]) FAIRE | ||
+ | | ||
+ | j := i + 1 | ||
+ | i := j - 1 | ||
+ | FinTantQue | ||
+ | | ||
+ | //Affichage du résultat | ||
+ | | ||
+ | SI i >= j ALORS // Fin du parcours | ||
+ | écrire("C'est un palindrome") | ||
+ | SINON | ||
+ | ecrire("Ce n'est pas un palindrome") | ||
+ | FinSI | ||
+ | | ||
+ | Fin | ||
+ | </code> | ||