Devoir de synthèse n°2 (série C) : nombres d'Armstrong, rotation d'un tableau, anagrammes
Chaque problème se découpe en modules : fonctions (DEF FN) et procédures (DEF PROC). Les algorithmes s'écrivent en notation algorithmique, les programmes en Python. Barème sur 20 points.
Exercice 1 : les nombres d'Armstrong (6 pts)
Un entier n de k chiffres est un nombre d'Armstrong s'il est égal à la somme de ses chiffres élevés à la puissance k. Exemples : 153 = 1³ + 5³ + 3³ (3 chiffres) ; 1634 = 1⁴ + 6⁴ + 3⁴ + 4⁴ (4 chiffres) ; tous les nombres d'un chiffre sont des nombres d'Armstrong.
- 1) Écrire la fonction NbChiffres(n) (1 pt).
- 2) Écrire la fonction Puissance(x, k) qui renvoie x^k sans utiliser ** ni pow (1 pt).
- 3) Écrire la fonction Armstrong(n) qui utilise les deux fonctions précédentes (2 pts).
- 4) Écrire le programme qui lit b (10 ≤ b ≤ 10000, saisie contrôlée) et affiche les nombres d'Armstrong de 1 à b sur une ligne (2 pts).
Pour b = 1000, le programme affiche : 1 2 3 4 5 6 7 8 9 153 370 371 407
Exercice 2 : faire tourner un tableau (7 pts)
Faire tourner un tableau d'une position vers la droite, c'est décaler chaque élément d'une case vers la droite, le dernier revenant en première position : 1 2 3 4 5 devient 5 1 2 3 4.
- 1) Écrire la procédure Remplir(T, n) (1 pt).
- 2) Écrire la procédure Tourner(T, n) qui fait tourner T d'une position vers la droite, sans second tableau (3 pts).
- 3) Écrire la procédure Afficher(T, n) (1 pt).
- 4) Écrire le programme qui lit n (2 ≤ n ≤ 20), les n éléments et un entier k ≥ 0, fait tourner le tableau k fois et l'affiche. Pourquoi peut-on remplacer k par k mod n ? (2 pts)
Pour n = 5, les éléments 1, 2, 3, 4, 5 et k = 2, le programme affiche : 4 5 1 2 3
Exercice 3 : les anagrammes (7 pts)
Deux mots sont des anagrammes s'ils sont formés exactement des mêmes lettres, chacune le même nombre de fois, dans un ordre différent ou non : « chien » et « niche », « marie » et « aimer ».
- 1) Écrire la fonction Occurrences(c, ch) qui renvoie le nombre d'apparitions du caractère c dans ch, sans utiliser count (1,5 pt).
- 2) Écrire la fonction Anagrammes(m1, m2) : les deux mots doivent avoir la même longueur, et chaque lettre de m1 doit apparaître autant de fois dans m1 que dans m2 (3 pts).
- 3) Écrire la fonction Valide(ch) qui renvoie Vrai si ch est non vide et formée de lettres minuscules (1 pt).
- 4) Écrire le programme qui lit deux mots valides (saisies contrôlées) et affiche s'ils sont anagrammes (1,5 pt).
Pour chien et niche, le programme affiche : chien et niche sont des anagrammes
Correction détaillée
La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.
Connecte-toi d'abord : créer un compte ou me connecter.
Tu as encore 0 correction(s) gratuite(s) à utiliser.
Il te faut un abonnement actif pour les autres corrections. Voir les tarifs ou demander un code sur WhatsApp, Instagram ou Facebook.
Mission Carthage est en période de test : le site s'ouvre avec un code d'accès. Demande ton code sur WhatsApp, Instagram ou TikTok, puis tape-le sur missioncarthage.tn.
Cette correction n'est pas encore publiée. Reviens bientôt.
Impossible de charger la correction. Vérifie ta connexion et réessaie.
Sujet original écrit pour Mission Carthage, troisième série d'entraînement pour le devoir de synthèse du 2e trimestre (analyse modulaire).
Tout le programme : 2ème année Technologies de l'informatique (TI) · Revoir le cours · Tous les devoirs