Fichiers & enregistrements

Enregistrements : liste des admis

É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.

Entrée
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
Sortie attendue
2
Fichier admis.txt
Amel : 15
Yasmine : 10
Entrée
N = 1
c[0].nom = "Rania"
c[0].moyenne = 8
Sortie attendue
0
Fichier admis.txt

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

enregistrements_admis.algo
1algorithme enregistrements_admis
2debut
3 saisir(n)
4 remplir(c, n)
5 ecrireadmis(c, n, nombre)
6 afficher(nombre)
7fin
8
9procedure saisir(@n : entier)
10debut
11 repeter
12 ecrire("N = ")
13 lire(n)
14 jusqua 1 ≤ n ≤ 100
15fin
16
17fonction alphabetique(ch : chaine) : booleen
18debut
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
28fin
29
30procedure remplir(@c : classe, n : entier)
31debut
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
42fin
43
44procedure ecrireadmis(c : classe, n : entier, @nombre : entier)
45debut
46 // compléter le traitement demandé dans l’énoncé.
47fin
48
49procedure afficher(resultat : entier)
50debut
51 ecrire_nl(resultat)
52fin

Méthode

  1. Déclarer Eleve comme enregistrement, puis Classe comme tableau d’Eleve.
  2. Parcourir le tableau et écrire les élèves qui satisfont la condition.
À retenir :

Utiliser le point pour accéder à un champ : c[i].moyenne. CONVCH transforme la moyenne en chaîne pour composer une ligne.