📝 Exercice 1 : (2.5 points)
1. Donner le rôle des instructions suivantes :
| Séquence 1 : | Séquence 2 : |
|---|---|
|
N ← 2 * aléa(0,10)
Ecrire(N)
Rôle : |
ch ← "OIYEAUoiyeau"
C ← ch[aléa(0, long(ch)-1)]
Ecrire(C)
Rôle : |
2. Vérification des algorithmes de génération de chaînes :
Mettre vrai si l'algorithme permet de générer une chaîne ch par n lettres majuscules aléatoires, Faux sinon.
| Algorithme CHM1 | Algorithme CHM2 | Algorithme CHM3 |
|---|---|---|
|
DEBUT
ch ← ""
Pour i de 0 à long(ch)-1 Faire
ch ← ch+chr(aléa(65,90))
Finpour
Ecrire (ch)
FIN
Vrai/Faux : ............ |
DEBUT
ch ← ""
Pour i de 0 à n-1 Faire
ch ← ch+chr(aléa(ord("A"),ord("Z")))
Finpour
Ecrire (ch)
FIN
Vrai/Faux : ............ |
DEBUT
ch ← ""
cha ← "ABCDEFGHJKLIOUPRMNWQXSTZVY"
Pour i de 1 à n faire
ch ← ch+cha[aléa(0,long(cha)-1)]
Finpour
Ecrire(ch)
FIN
Vrai/Faux : ............ |
✅ Solution 1
1. Rôle des instructions :
| Séquence 1 : | Séquence 2 : |
|---|---|
|
Rôle : Cette séquence génère un nombre aléatoire pair entre 0 et 20 inclus.
|
Rôle : Cette séquence sélectionne un caractère aléatoire dans la chaîne "OIYEAUoiyeau" et l'affiche.
|
2. Analyse des algorithmes :
| Algorithme | Vrai/Faux | Justification |
|---|---|---|
| CHM1 | Faux |
|
| CHM2 | Vrai |
|
| CHM3 | Vrai |
|
📝 Exercice 2 : (1.5 points)
Nombre de diviseurs d'un entier
On veut déterminer et afficher le nombre de diviseurs d'un entier n strictement positif.
Séquences d'instructions :
| Séquence 1 | Séquence 2 | Séquence 3 |
|---|---|---|
|
C ← 0
Pour k de 1 à n Faire
Si (n mod k =0) Alors
C ← C+1
Finsi
Finpour
|
C ← 1
Pour k de 2 à (n div 2) Faire
Si (n mod k=0) Alors
C ← C+1
Finsi
Finpour
|
C ← 2
Pour k de 2 à (n -1) Faire
Si (n mod k =0) Alors
C ← C+1
Finsi
Finpour
|
1. Compléter pour n=12 :
| Séquence | Valeur de la variable C |
|---|---|
| 1 | ............ |
| 2 | ............ |
| 3 | ............ |
2. Séquence incorrecte :
..............................................................................
..............................................................................
✅ Solution 2
Analyse des séquences pour n=12 :
Diviseurs de 12 : {1, 2, 3, 4, 6, 12} → 6 diviseurs
| Séquence | Valeur de C | Explication |
|---|---|---|
| 1 | 6 |
|
| 2 | 4 |
|
| 3 | 6 |
|
Justification de la réponse à la question 2 :
La séquence 2 ne permet pas d'afficher correctement le nombre de diviseurs car :
- Elle commence avec C = 1 (compte le diviseur 1)
- Elle s'arrête à (n div 2) = 6
- Elle ne vérifie pas le diviseur n lui-même (12)
- Pour n=12, elle donne 4 au lieu de 6
- Elle fonctionnerait seulement pour les nombres premiers
📝 Exercice 3 : (3.5 points)
Algorithme "Quoi" :
1. Valeur de T :
| N | Valeur de T |
|---|---|
| 123854679 | ............ |
| 154383962 | ............ |
2. Tableau de déclaration des objets :
| Objet | Type/Nature |
|---|---|
| N | .................................... |
| ch | .................................... |
| i | .................................... |
| T | .................................... |
3. Rôle de l'algorithme et message :
Rôle : ..............................................................................
Message ligne ❶ : ..............................................................................
4. Transformation de la boucle :
Transformer la boucle (instruction❷) Tant que...Faire par la boucle Répéter....Jusqu'à.
..............................................................................
..............................................................................
✅ Solution 3
1. Valeur de T :
| N | Valeur de T | Explication |
|---|---|---|
| 123854679 | Faux |
|
| 154383962 | Faux |
|
Note : L'algorithme vérifie si tous les chiffres de 1 à 9 sont présents dans N.
2. TDO complet :
| Objet | Type/Nature | Rôle |
|---|---|---|
| N | Entier / Variable | Nombre à analyser |
| ch | Chaîne / Variable | Chaîne conversion de N |
| i | Entier / Variable | Compteur de chiffres (1 à 9) |
| T | Booléen / Variable | Vrai si i=10 (tous chiffres 1-9 trouvés) |
3. Rôle et message :
Rôle : Vérifier si le nombre N contient tous les chiffres de 1 à 9.
Message à la ligne ❶ : "Le nombre contient tous les chiffres de 1 à 9"
4. Transformation boucle Répéter :
📝 Problème : Conjugueur de verbes (10 points)
Contexte :
Plusieurs élèves rencontrent un problème pour conjuguer un verbe à un temps donné. Pour cela on a décidé de les aider et on veut créer une application intitulée "conjugueur" qui conjugue n'importe quel verbe à n'importe quel temps et modes.
Travail demandé :
Écrire l'algorithme (+TDO) d'un programme qui :
- Saisit un verbe à l'infinitif et vérifie qu'il est du premier groupe (se termine par "er")
- Permet de conjuguer ce verbe au futur de l'indicatif ou au présent de l'indicatif (selon le choix de l'utilisateur 1 : présent ou 2 : futur)
Rappels :
- Tous les verbes du premier groupe se terminent par la terminaison "er" sauf le verbe "aller" qui est du troisième groupe
- On ne traite pas les verbes du deuxième ou troisième groupe
- Pour conjuguer un verbe au présent de l'indicatif :
- On extrait d'abord sa base (on supprime la terminaison du verbe à l'infinitif "er")
- À laquelle on ajoute les terminaisons suivantes : "e", "es", "e", "ons", "ez" et "ent"
- Pour conjuguer un verbe au futur de l'indicatif :
- Il suffit de lui ajouter les terminaisons suivantes : "ai", "as", "a", "ons", "ez" et "ont"
Exemple d'exécution :
Exemple 1 :
Exemple 2 :
À compléter :
Écrivez votre algorithme complet ici :
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..............................................................................
✅ Solution Problème : Conjugueur
Algorithme complet :
Tableau de Déclaration des Objets (TDO) :
| Objet | Type/Nature | Rôle |
|---|---|---|
| verbe | Chaîne | Verbe à conjuguer (entré par l'utilisateur) |
| base | Chaîne | Base du verbe (sans terminaison "er") |
| choix | Entier | Choix du temps (1: présent, 2: futur) |
| valide | Booléen | Indique si le verbe est valide |
| i | Entier | Compteur de boucle |
Explications importantes :
- Validation du verbe :
- Vérifie que le verbe a au moins 2 caractères
- Vérifie que les deux derniers caractères sont "e" et "r"
- Exclut spécifiquement le verbe "aller" qui est du 3ème groupe
- Extraction de la base :
- La base = verbe sans les 2 derniers caractères ("er")
- Exemple : "jouer" → base = "jou"
- Exemple : "parler" → base = "parl"
- Conjugaison au présent :
- On ajoute à la base : "e", "es", "e", "ons", "ez", "ent"
- Exemple : "jou" + "e" = "joue"
- Conjugaison au futur :
- On ajoute au verbe entier : "ai", "as", "a", "ons", "ez", "ont"
- Exemple : "jouer" + "ai" = "jouerai"