IUT R&T - 1ère année - Informatique
Programmation et algorithmique 2
TD n°3 - Types structurés, fichiers
Chaque fonction en C de ce TD sera précédée d'un commentaire constitué de la description
algorithmique (à un plus ou moins haut niveau) de la fonction.
EXERCICE 1 (version du 18/02/2020)
1.1. Définir en C un type structuré Etudiant
composé d'un Nom,
d'un Prénom, d'une date de Naissance, d'un numéro de Groupe, d'un relevé de six Notes (sur 20),
et d'une moyenne.
N.B. Combien de caractères prévoir pour le Nom, le Prénom ?
1.2. Définir une procédure Inscrire(Etudiant *E)
qui demande à l'utilisateur un nom, un prénom et une date de naissance, et modifie en conséquence l'Etudiant (*E).
Les autres champs de la structure Etudiant seront mis à 0.
N.B. Pour utiliser cette fonction avec un Etudiant X (défini comme variable globale), l'appel sera de la forme Inscrire(&X)
(passer l'adresse de X pour qu'il soi modifié par "effet de bord").
1.3. Définir une procédure Noter(Etudiant *E)
qui saisit les six notes qu'un Etudiant (*E) a obtenues.
1.4. Définir une procédure Moyenner(Etudiant *E)
qui attribue une moyenne à un Etudiant (*E) en fin d'année (avec les six notes qu'il a obtenues).
1.5. Définir une variable Promotion
constitué d'au plus 64 Etudiants, et une variable Effectif
destinée à contenir le nombre d'étudiants dans une promotion (Effectif≤64).
1.6. Définir une fonction Score
qui prend en paramètres une
Promotion de n≤64 Etudiants en fin d'année et un numéro de groupe et qui retourne la
moyenne générale de tous les étudiants de ce groupe (moyenne des moyennes).
Si le numéro de groupe est 0, le calcul se fera sur toute la promotion.
1.7.1. A faire hors TD : Ecrire une fonction PrepareJury
qui prend
en paramètres une Promotion de n≤64 Etudiants en fin d'année et qui enregistre dans un fichier
promotion.txt
la liste des étudiants (Nom, Prénom, Moyenne, séparés par un espace).
Il y aura dans le fichier une ligne par étudiant.
1.7.2. A faire hors TD : Tester ces fonction en créant une Promotion contenant 3 étudiants
placés dans 3 groupes différents 1, 2 et 3.
EXERCICE 2 (version du 18/02/2020)
2.1. Ecrire en C une fonction sauveDate(Date d)
qui enregistre dans un
fichier nommé "Date.txt" les trois valeurs d'une Date d ( type défini dans le TD précédent).
La fonction retournera le nombre de dates sauvegardées (1 ou 0) ou −1 en cas de problème
avec le fichier.
2.2. Ecrire en C une fonction sauveListeDates
qui enregistre dans
un fichier "ListeDate.txt" un tableau de n Dates. La fonction retournera le nombre de dates
sauvegardées ou −1 en cas de problème.
2.3. Ecrire en C une fonction afficheFichierDates
qui lit dans un
fichier une liste de dates et qui affiche à l'écran chaque date lue sous la forme JJ/MM/AAAA.
La fonction retournera le nombre de dates lues ou −1 en cas de problème.
2.4. Ecrire une fonction transfertFichierDates
qui effectue la même
chose que afficheFichierDates mais les dates, au lieu d'être affichées à l'écran, seront transférées
sous la forme JJ/MM/AAAA dans un autre fichier (dont le nom sera passé aussi en paramètre).
2.5. Ecrire une fonction chargeListeDates
qui effectue la même
chose que afficheListeDates mais les dates, au lieu d'être affichées à l'écran, seront placées dans
un tableau de n Dates.
N.B. Que faire s'il y a moins de n dates dans le fichier ? plus de n
dates ?