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 →
Ceci est une ancienne révision du document !
Soit une chaîne de caractères terminée par un caractère '.'.
Donnez l'algorithme d'un programme qui compte la longueur de cette chaîne (“.” non compris).
chaine de caractères —→| calcul des caractères de la chaîne |—> nombre de lettres de la phrase
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
chainedecaractère | nombredelettre |
---|---|
“.” | 0 |
“a.” | 1 |
“ab.” | 2 |
(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)
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
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”.)
CONSTANTES point = '.' // caractère d'arrêt nbremax = 100 // nombre max de caractères TYPES chaine = tableau [n] caractere VARIABLES chainedecaractere : chaine nombredelettre : entier PROCEDURES 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
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
Rechercher si deux lettres choisies par l'utilisateur sont dans une phrase entrée par l'utilisateur.
schéma procédure | | phrase ----------->|cherche si deux |------> si caractère1 ET caractère2 sont dans la phrase et successifs | | alors terminateur |lettres succ | deuxlettres = VRAIE caractère 1 ------->| dans | caractère 2 ------> | cette phrase |
CONSTANTES\\ terminateur = '.' // caractère d'arrêt\\ TYPES\\ chainetableau tableau[MAX] caractère\\ VARIABLES\\ phrase : caractère\\ car1 : caractère\\ car2 : caractère\\ nbr : entier\\
phrase | terminateur | caractère1 | caractère2 | nombre |
---|---|---|---|---|
blablobli. | '.' | “l” | “r” | 0 |
bonjour. | '.' | “b” | “.” | 0 |
blablo. | '.' | “b” | “l” | 2 |
blablobli. | '.' | “b” | “l” | 3 |
vérifier si une phrase contient deux lettres
PROCEDURE
procédure DeuxLettresID ( entrée phrase : chainetableau ;\\ sortie nbreoccurrence : entier )\\ // CompterDeuxLettres : procédure qui recherche deux lettres successives et définies extérieurement dans une phrase terminée par un point\\ // phrase : phrase saisie par l'utilisateur\\ //nbreoccurrence : décompte du nombre d'occurrence de mot contenant deux lettres successives\\
chainetableau
: c'est le type créé
CONSTANTES max = 100 TYPES chaine tableau[MAX] caractère VARIABLES phrase : chaine lettre 1 : caractère lettre 2 : caractère nbreoccurrence : entier début écrire ("entrez une phrase terminée par un point") lire (phrase) écrire ("entrez une première lettre") lire (lettre 1) écrire ("entrez une deuxième lettre") lire (lettre 2) DeuxLettresID ( entrée phrase : chainetableau , sortie nbreoccurrence : entier ) écrire ("le nombre d'occurrences des lettres choisies dans la phrase donnée est", nbreoccurrence") fin
CompterDeuxLettres( lettre phrase chaine entrée car1 : caractère car2 : caractère FIN : caractère sortie occurrence : entier VARIABLE i : entier occurrence : 0 début i := 1 occurrence := 0 tantque (phrase [i] <> FIN) si (phrase[i] = car1) si (phrase [i + 1] = car2 occurrence + 1 finsi finsi i := i + 1 fintantque fin
Procédure pour déterminer si une chaîne de caractère terminée par un point est un palindrome.
chaîne. —> | recherche palindrome | —> palindr : booléen (Vrai ou FAUX)
i (indice ->) 1 2 3 4 5 | 6 |... | MAX ---------------------------------- | L | A | V | A | L | . | j (indice <-|.| )
'.' | 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 |
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.
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