Devoir de contrôle n°2 : fonctions et procédures
Les sous-programmes s'écrivent en notation algorithmique (DEF FN pour une fonction, DEF PROC pour une procédure), les programmes en Python. Barème sur 20 points.
Exercice 1 : nombres premiers (7 pts)
On veut afficher tous les nombres premiers inférieurs ou égaux à un entier n. Un entier est premier s'il a exactement deux diviseurs : 1 et lui-même.
- Écrire une fonction nb_diviseurs(n) qui retourne le nombre de diviseurs de l'entier n.
- Écrire une fonction premier(n) qui retourne vrai si n est premier, en utilisant nb_diviseurs.
- Écrire le programme principal : il lit n avec saisie contrôlée (n ≥ 2), affiche les nombres premiers de 2 à n (un par ligne), puis leur nombre.
Pour n = 10 :
2
3
5
7
Nombre de premiers : 4
- 1) Analyse et TDO du programme principal (2 pts).
- 2) Les deux fonctions en notation algorithmique (3 pts).
- 3) Le programme complet en Python (2 pts).
Exercice 2 : un rectangle de caractères (6 pts)
On veut dessiner un rectangle plein fait d'un même caractère, puis donner son aire et son périmètre.
- Écrire une procédure ligne(c, k) qui affiche le caractère c répété k fois sur une même ligne.
- Écrire une procédure rectangle(h, l, c) qui dessine h lignes de l caractères c, en utilisant ligne.
- Écrire deux fonctions aire(h, l) et perimetre(h, l).
- Écrire le programme principal qui lit h, l (entiers positifs) et un caractère c, dessine le rectangle puis affiche l'aire et le périmètre.
Pour h = 3, l = 5 et c = « # » :
#####
#####
#####
Aire : 15
Périmètre : 16
- 1) Quelle différence y a-t-il entre une fonction et une procédure ? Laquelle est ligne ? (1 pt)
- 2) Les sous-programmes en notation algorithmique (3 pts).
- 3) Le programme en Python (2 pts).
Exercice 3 : statistiques d'un tableau de notes (7 pts)
On veut analyser les notes d'une classe. Le problème est décomposé en modules :
- Procédure saisir(T, n) : remplit les n premières cases du tableau T avec des notes lues au clavier.
- Fonction moyenne(T, n) : retourne la moyenne des n notes.
- Fonction maximum(T, n) : retourne la plus grande note.
- Fonction nb_sup(T, n, v) : retourne le nombre de notes strictement supérieures à v.
Le programme principal lit n (1 ≤ n ≤ 30, saisie contrôlée), appelle saisir, puis affiche la moyenne, le maximum et le nombre de notes supérieures à la moyenne. Pour les notes 10, 12, 14, 16 :
Moyenne : 13.0
Maximum : 16.0
Au-dessus de la moyenne : 2
- 1) Donner le rôle de chaque module et le TDO du programme principal (2 pts).
- 2) Écrire les quatre modules en notation algorithmique (3 pts).
- 3) Écrire le programme complet en Python (2 pts).
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.
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, dans le style des devoirs de contrôle du 2e trimestre (analyse modulaire).
Tout le programme : 2ème année Technologies de l'informatique (TI)