Énoncé
Saisir N avec 1 ≤ N ≤ 100 et remplir un tableau C de N enregistrements Eleve. Chaque élève a un nom non vide composé uniquement de lettres A à Z (majuscules ou minuscules), de type Chaîne et une moyenne réelle entre 0 et 20. Écrire dans admis.txt les élèves ayant une moyenne ≥ 10, puis afficher leur nombre.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Saisir N, puis pour chaque élève son nom et sa moyenne. Une moyenne hors de [0..20] ou un nom vide ou non alphabétique est redemandé.
Pour une chaîne, ne tapez pas les guillemets. Pour "", validez une saisie vide.
N = 3 c[0].nom = "Amel" c[0].moyenne = 15 c[1].nom = "Youssef" c[1].moyenne = 9 c[2].nom = "Yasmine" c[2].moyenne = 10
2
Amel : 15 Yasmine : 10
N = 1 c[0].nom = "Rania" c[0].moyenne = 8
0
Complétez les modules marqués par un commentaire dans le code de départ. Les modules déjà écrits permettent de saisir vos données. Exécutez les cas de test et comparez la sortie attendue, ou ouvrez directement l’onglet Correction.
Code algorithmique
| 1 | algorithme enregistrements_admis |
| 2 | debut |
| 3 | saisir(n) |
| 4 | remplir(c, n) |
| 5 | ecrireadmis(c, n, nombre) |
| 6 | afficher(nombre) |
| 7 | fin |
| 8 | |
| 9 | procedure saisir(@n : entier) |
| 10 | debut |
| 11 | repeter |
| 12 | ecrire("N = ") |
| 13 | lire(n) |
| 14 | jusqua 1 ≤ n ≤ 100 |
| 15 | fin |
| 16 | |
| 17 | fonction alphabetique(ch : chaine) : booleen |
| 18 | debut |
| 19 | si long(ch) = 0 alors |
| 20 | retourner faux |
| 21 | fin si |
| 22 | pour i de 0 à long(ch) - 1 faire |
| 23 | si non (majus(ch[i]) ∈ ["A".."Z"]) alors |
| 24 | retourner faux |
| 25 | fin si |
| 26 | fin_pour |
| 27 | retourner vrai |
| 28 | fin |
| 29 | |
| 30 | procedure remplir(@c : classe, n : entier) |
| 31 | debut |
| 32 | pour i de 0 à n - 1 faire |
| 33 | repeter |
| 34 | ecrire("c[" + convch(i) + "].nom = ") |
| 35 | lire(c[i].nom) |
| 36 | jusqua alphabetique(c[i].nom) |
| 37 | repeter |
| 38 | ecrire("c[" + convch(i) + "].moyenne = ") |
| 39 | lire(c[i].moyenne) |
| 40 | jusqua 0 ≤ c[i].moyenne ≤ 20 |
| 41 | fin_pour |
| 42 | fin |
| 43 | |
| 44 | procedure ecrireadmis(c : classe, n : entier, @nombre : entier) |
| 45 | debut |
| 46 | // compléter le traitement demandé dans l’énoncé. |
| 47 | fin |
| 48 | |
| 49 | procedure afficher(resultat : entier) |
| 50 | debut |
| 51 | ecrire_nl(resultat) |
| 52 | fin |
| 1 | algorithme enregistrements_admis |
| 2 | debut |
| 3 | saisir(n) |
| 4 | remplir(c, n) |
| 5 | ecrireadmis(c, n, nombre) |
| 6 | afficher(nombre) |
| 7 | fin |
| 8 | |
| 9 | procedure saisir(@n : entier) |
| 10 | debut |
| 11 | repeter |
| 12 | ecrire("N = ") |
| 13 | lire(n) |
| 14 | jusqua 1 ≤ n ≤ 100 |
| 15 | fin |
| 16 | |
| 17 | fonction alphabetique(ch : chaine) : booleen |
| 18 | debut |
| 19 | si long(ch) = 0 alors |
| 20 | retourner faux |
| 21 | fin si |
| 22 | pour i de 0 à long(ch) - 1 faire |
| 23 | si non (majus(ch[i]) ∈ ["A".."Z"]) alors |
| 24 | retourner faux |
| 25 | fin si |
| 26 | fin_pour |
| 27 | retourner vrai |
| 28 | fin |
| 29 | |
| 30 | procedure remplir(@c : classe, n : entier) |
| 31 | debut |
| 32 | pour i de 0 à n - 1 faire |
| 33 | repeter |
| 34 | ecrire("c[" + convch(i) + "].nom = ") |
| 35 | lire(c[i].nom) |
| 36 | jusqua alphabetique(c[i].nom) |
| 37 | repeter |
| 38 | ecrire("c[" + convch(i) + "].moyenne = ") |
| 39 | lire(c[i].moyenne) |
| 40 | jusqua 0 ≤ c[i].moyenne ≤ 20 |
| 41 | fin_pour |
| 42 | fin |
| 43 | |
| 44 | procedure ecrireadmis(c : classe, n : entier, @nombre : entier) |
| 45 | debut |
| 46 | nombre ← 0 |
| 47 | ouvrir("admis.txt", f, "w") |
| 48 | pour i de 0 à n - 1 faire |
| 49 | si c[i].moyenne ≥ 10 alors |
| 50 | ecrire_nl(f, c[i].nom + " : " + convch(c[i].moyenne)) |
| 51 | nombre ← nombre + 1 |
| 52 | fin si |
| 53 | fin_pour |
| 54 | fermer(f) |
| 55 | |
| 56 | fin |
| 57 | |
| 58 | procedure afficher(resultat : entier) |
| 59 | debut |
| 60 | ecrire_nl(resultat) |
| 61 | fin |
Méthode
- Déclarer Eleve comme enregistrement, puis Classe comme tableau d’Eleve.
- Parcourir le tableau et écrire les élèves qui satisfont la condition.