Accueil › Devoirs › Bac Maths-Sc-Tech
Devoir de synthèse n°1 (série B) : nombres parfaits, classement par sélection, compression d'une chaîne
Les algorithmes s'écrivent en notation algorithmique, les programmes en Python. Les indices des tableaux commencent à 0. Barème sur 20 points.
Exercice 1 : nombres parfaits (6 pts)
Un entier n ≥ 2 est parfait s'il est égal à la somme de ses diviseurs autres que lui-même. Par exemple 28 est parfait : 1 + 2 + 4 + 7 + 14 = 28.
- 1) Écrire la fonction SommeDiv(n) qui renvoie la somme des diviseurs de n autres que n (2 pts).
- 2) Écrire la fonction Parfait(n) (1 pt).
- 3) Écrire le programme qui lit deux entiers a et b (2 ≤ a < b, saisie contrôlée) et affiche les nombres parfaits compris entre a et b, puis leur nombre (3 pts).
Pour a = 2 et b = 500, le programme affiche :
6
28
496
3 nombre(s) parfait(s)
Exercice 2 : classement des candidats (8 pts)
Pour un test d'entrée dans le club d'informatique du lycée, on enregistre les n candidats (5 ≤ n ≤ 40) : leur nom dans un tableau Nom et leur score (entier de 0 à 100) dans un tableau Score.
- 1) Écrire la procédure Remplir avec les saisies contrôlées (2 pts).
- 2) Écrire la procédure Classer qui trie les candidats du meilleur score au plus faible avec le tri par sélection (3 pts).
- 3) Écrire la fonction Rang(Score, n, s) qui renvoie le rang (à partir de 1) du premier candidat ayant le score s dans le tableau classé, ou 0 si aucun candidat n'a ce score. On utilisera une recherche séquentielle qui s'arrête dès que les scores deviennent plus petits que s (2 pts).
- 4) Le programme affiche le classement (rang, nom, score) puis lit un score s et affiche son rang (1 pt).
Pour les candidats Ali 70, Sana 92, Hedi 55, Nour 92, Taha 81, puis s = 81, le programme affiche :
1 Sana 92
2 Nour 92
3 Taha 81
4 Ali 70
5 Hedi 55
Rang du score 81 : 3
Exercice 3 : compresser une chaîne (6 pts)
Pour gagner de la place, on remplace chaque suite de caractères identiques par le nombre de répétitions suivi du caractère. Par exemple « aaabccdddd » devient « 3a1b2c4d ».
- 1) Écrire la fonction Valide(ch) qui renvoie Vrai si ch est non vide et formée uniquement de lettres minuscules (1 pt).
- 2) Écrire la fonction Compresser(ch) qui renvoie la chaîne compressée (3 pts).
- 3) Écrire le programme qui lit une chaîne valide (saisie contrôlée), affiche sa forme compressée et le gain, c'est-à-dire la différence entre la longueur de départ et la longueur compressée (2 pts).
Pour la chaîne aaabccdddd, le programme affiche :
3a1b2c4d
Gain : 2
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, deuxième série d'entraînement pour le devoir de synthèse du 1er trimestre du bac (Maths, Sciences expérimentales, Technique).
Tout le programme : Bac Mathématiques, Sciences expérimentales et Technique · Revoir le cours · Tous les devoirs