Devoir de synthèse n°1 (série B) : facteurs premiers, fichier de produits, récursivité sur les tableaux
Les algorithmes s'écrivent en notation algorithmique, les programmes en Python. En Python, un enregistrement est représenté par un dictionnaire. Barème sur 20 points.
Exercice 1 : décomposition en facteurs premiers (6 pts)
Tout entier n ≥ 2 s'écrit comme un produit de nombres premiers, par exemple 360 = 2 × 2 × 2 × 3 × 3 × 5.
- 1) Écrire la fonction Premier(n) qui renvoie Vrai si n est premier (1,5 pt).
- 2) Écrire la fonction Decomposer(n) qui renvoie la décomposition de n sous la forme d'une chaîne « 2*2*2*3*3*5 » (2,5 pts).
- 3) Écrire le programme qui lit n (n ≥ 2, saisie contrôlée), affiche « n = décomposition », puis « n est premier » ou « n n'est pas premier » (2 pts).
Pour n = 360 et pour n = 13, le programme affiche respectivement :
360 = 2*2*2*3*3*5
360 n'est pas premier
13 = 13
13 est premier
Exercice 2 : fichier de produits et commande (8 pts)
Un magasin enregistre ses produits dans le fichier texte stock.txt, une ligne par produit sous la forme code;designation;quantite, par exemple « P12;Cahier;40 ».
- 1) Déclarer l'enregistrement Produit (code, designation : chaîne ; quantite : entier) (1 pt).
- 2) Écrire la procédure Creer qui lit n (1 ≤ n ≤ 50) puis les n produits et écrit stock.txt (2 pts).
- 3) Écrire la procédure Charger qui lit stock.txt et remplit un tableau T d'enregistrements Produit (2 pts).
- 4) Écrire la procédure Trier qui trie T par quantité croissante avec le tri par sélection (1,5 pt).
- 5) Écrire la procédure Commander qui lit un seuil s et écrit dans commande.txt la ligne code;designation de chaque produit dont la quantité est inférieure à s (dans l'ordre du tableau trié), puis affiche le contenu de commande.txt (1,5 pt).
Pour n = 4, les produits P1 Cahier 40, P2 Stylo 5, P3 Gomme 12, P4 Regle 3, et le seuil 15, le programme affiche :
P4;Regle
P2;Stylo
P3;Gomme
Exercice 3 : récursivité sur les tableaux (6 pts)
Un tableau T contient n entiers (1 ≤ n ≤ 100). On veut écrire des fonctions récursives, sans aucune boucle, qui travaillent sur les n premiers éléments de T.
- 1) La fonction MaxRec(T, n) renvoie le plus grand des n premiers éléments : c'est le plus grand entre T[n - 1] et le maximum des n - 1 premiers (2 pts).
- 2) La fonction EstTrie(T, n) renvoie Vrai si les n premiers éléments sont rangés dans l'ordre croissant (2 pts).
- 3) La fonction NbPairs(T, n) renvoie le nombre d'éléments pairs parmi les n premiers (1 pt).
- 4) Écrire le programme qui lit n puis les n éléments, et affiche les trois résultats (1 pt).
Pour n = 5 et les valeurs 3, 8, 8, 12, 15, le programme affiche :
Maximum : 15
Trié : Oui
Pairs : 3
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 Sciences de l'informatique.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs