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.
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 17:32] Hypathie créée |
utilisateurs:hypathie:tutos:algo-exo-constructions-d-algorithmes-de-procedure [29/11/2014 18:16] Hypathie [Exo 1 : procédure compter le nombre de caractères dans une phrase] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== Exo 1 : procédure "compter le nombre de caractères dans une phrase" ===== | ===== Exo 1 : procédure "compter le nombre de caractères dans une phrase" ===== | ||
+ | Soit une chaîne de caractères terminée par un caractère '.'.\\ Donnez l'algorithme d'un programme qui comporte le nombre d'occurrences d'une lettre donnée ( 'a' par exemple) dans cette chaîne. | ||
+ | |||
+ | ====1) Définir la procédure (la moulinette)==== | ||
+ | |||
+ | chaine de caractères ---->| calcul des caractères de la chaîne |---> nombre de lettres de la phrase | ||
+ | |||
+ | ====2) Définition des données==== | ||
+ | |||
+ | <code> | ||
+ | CONSTANTE | ||
+ | point = '.' // caractère d'arrêt | ||
+ | | ||
+ | nbremax = 100 // nombre max de caractères | ||
+ | | ||
+ | TYPE | ||
+ | chaîne tableau[taille] de caractères | ||
+ | |||
+ | VARIABLES | ||
+ | taille_phrase : entier // taille réelle de la chaîne de caractère entrée'' | ||
+ | i : entier // indice de parcours de la phrase | ||
+ | nombre_lettre // Nombre d'occurrence de la lettre cherchée | ||
+ | </code> | ||
+ | |||
+ | ====3) Jeu d'essai==== | ||
+ | |||
+ | ^chainedecaractère ^nombredelettre ^ | ||
+ | | "." | 0 | | ||
+ | | "a." | 1 | | ||
+ | | "ab." | 2 | | ||
+ | | ||
+ | ====4) Interface de procédure=== | ||
+ | //(C'est la notice d'utilisation de la procédure pour le programme qui utilisera cette procédure.)// | ||
+ | |||
+ | **L'interface de procédure** (procédure décrite en pseudo-langage) | ||
+ | |||
+ | <code> | ||
+ | procédure compterchainedecaractère (entrée chainedecaractère : chaine | ||
+ | sortie nombredecaractère : entier) | ||
+ | |||
+ | //compterchainedecaractère : compte le nombre de caractère de la chaîne | ||
+ | //chainedecaractère : suite de plusieurs caractères éventuellement espace d'espace et terminée par un point | ||
+ | //nombredecaractère : nombre de caractère qui ont été" rentrés | ||
+ | |||
+ | </code> | ||
+ | |||
+ | > ''chainedecaractère '' : nom du paramètre | ||
+ | > ''chaine'' : c'est le type tableau créé pour le paramètre "chainedecaractère " | ||
+ | |||
+ | > ''nombredecaractère'' : c'est le nom de la variable de sortie qui aura pour valeur le résultat (elle est de type prédéfini "entier".) | ||
+ | |||
+ | |||
+ | ====5) programme de test==== | ||
+ | |||
+ | <code c> | ||
+ | CONSTANTE | ||
+ | point = '.' // caractère d'arrêt | ||
+ | | ||
+ | nbremax = 100 // nombre max de caractères | ||
+ | | ||
+ | TYPE | ||
+ | chaine = tableau [n] caractere | ||
+ | |||
+ | VARIABLE | ||
+ | chainedecaractere : chaine | ||
+ | nombredelettre : entier | ||
+ | |||
+ | procédure compterchainedecaractère (entrée chainedecaractère : chaine ; | ||
+ | sortie nombredecaractère : entier) | ||
+ | |||
+ | //compterchainedecaractère : compte le nombre de caractère de la chaîne | ||
+ | //chainedecaractère : suite de plusieurs caractères éventuellement espace d'espace et terminée par un point | ||
+ | //nombredecaractère : nombre de caractère qui ont été" rentrés | ||
+ | |||
+ | début | ||
+ | |||
+ | écrire ('entrez une phrase') | ||
+ | lire (chainedecaractère) | ||
+ | |||
+ | compterchainedecaractère (chainedecaractère, nombredelettre) | ||
+ | |||
+ | écrire ('le nombre de caractère est', nombredelettre) | ||
+ | |||
+ | fin | ||
+ | </code> | ||
+ | | ||
+ | ====6) Algorithme de la procédure compterchainedecaractère==== | ||
+ | |||
+ | <code c> | ||
+ | procédure compterchainedecaractère (ENTREE chainedecaractère : chaine ; | ||
+ | SORTIE nombredecaractère : entier) | ||
+ | | ||
+ | // entrée et sortie sont des mots réservés | ||
+ | |||
+ | //compterchainedecaractère : compte le nombre de caractère de la chaîne | ||
+ | //chainedecaractère : suite de plusieurs caractères éventuellement espace d'espace et terminée par un point | ||
+ | //nombredecaractère : nombre de caractère qui ont été" rentrés | ||
+ | |||
+ | i : entier //indice | ||
+ | |||
+ | début | ||
+ | | ||
+ | i := 1 | ||
+ | | ||
+ | tantque chainedecaractere [i] <> point faire | ||
+ | | ||
+ | i := i + 1 | ||
+ | | ||
+ | fintantque | ||
+ | nombredecaractère := i-1 | ||
+ | fin | ||
+ | | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Ne pas faire "parler la procédure" : elle ne fait de plus que ce qu'elle permet. | ||
+ | </note> | ||
===== Exo 2 : procédure "compter occurrences de deux caractères successifs" ===== | ===== Exo 2 : procédure "compter occurrences de deux caractères successifs" ===== | ||
===== Exo 3 : procédure "rechercher un palindrome" ===== | ===== Exo 3 : procédure "rechercher un palindrome" ===== | ||