Devoir de synthèse n°2 : chaînes, tableaux et sous-programmes
Les sous-programmes s'écrivent en notation algorithmique (DEF FN / DEF PROC), les programmes en Python. Barème sur 20 points.
Exercice 1 : l'envers d'une phrase (7 pts)
On travaille sur une chaîne de caractères ch. Écrire :
- une fonction inverse(ch) qui retourne ch écrite à l'envers, sans utiliser de fonction toute faite (parcourir la chaîne) ;
- une fonction palindrome(ch) qui retourne vrai si ch se lit pareil dans les deux sens, sans tenir compte des majuscules ;
- une fonction voyelles(ch) qui retourne le nombre de voyelles (a, e, i, o, u, y, en majuscule ou en minuscule) ;
- le programme principal : il lit une chaîne et affiche son inverse, si c'est un palindrome (Oui ou Non) et son nombre de voyelles.
Pour Radar :
Inverse : radaR
Palindrome : Oui
Voyelles : 2
- 1) Analyse et TDO du programme principal (2 pts).
- 2) Les trois fonctions en notation algorithmique (3 pts).
- 3) Le programme en Python (2 pts).
Exercice 2 : chercher dans un tableau (7 pts)
On dispose d'un tableau T de n entiers (n ≤ 30). Écrire :
- une fonction position(T, n, x) qui retourne la position de la première apparition de x dans T (les positions commencent à 1), ou 0 si x est absent ;
- une fonction occurrences(T, n, x) qui retourne le nombre de fois où x apparaît ;
- une fonction trie(T, n) qui retourne vrai si les valeurs sont rangées dans l'ordre croissant (chaque valeur est supérieure ou égale à la précédente) ;
- le programme principal : il lit n (saisie contrôlée, 1 ≤ n ≤ 30), remplit T, lit x puis affiche la position (ou « Absent »), le nombre d'occurrences et « Trié : Oui » ou « Trié : Non ».
Pour T = 3, 8, 3, 1, 3 et x = 3 :
Position : 1
Occurrences : 3
Trié : Non
- 1) Dérouler position(T, 5, 8) sur ce tableau (1 pt).
- 2) Les trois fonctions en notation algorithmique (3 pts).
- 3) Le programme complet en Python (3 pts).
Exercice 3 : PGCD, PPCM et fraction irréductible (6 pts)
Écrire :
- une fonction pgcd(a, b) qui retourne le plus grand diviseur commun de a et b (algorithme d'Euclide) ;
- une fonction ppcm(a, b) qui retourne leur plus petit multiple commun, en utilisant pgcd ;
- une procédure simplifier(a, b) qui affiche la fraction a/b simplifiée ;
- le programme principal : il lit deux entiers a et b strictement positifs et affiche le PGCD, le PPCM et la fraction simplifiée.
Pour a = 12 et b = 18 :
PGCD : 6
PPCM : 36
Fraction simplifiée : 2/3
- 1) Dérouler l'algorithme d'Euclide pour pgcd(12, 18) (1 pt).
- 2) Les sous-programmes en notation algorithmique (3 pts).
- 3) Le programme 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 synthèse du 2e trimestre.
Tout le programme : 2ème année Technologies de l'informatique (TI)