Julien Sopena

TP 05 – Les types complexes

Exercice 1: Les types énumérés

Question 1.1 )

Déclarer un type énuméré nommé t_ufr comportant 5 termes qui correspondent aux 5 années de la scolarité ( L1, L2, L3, M1, M2, D). Puis, déclarer le type t_tabUfr qui permet d'enregistrer le nombre d'inscrits dans chacune des années du LMD.

Correction (cliquer ici)

Question 1.2 )

Les valeurs d'un type énuméré n'étant pas des chaînes de caractères, il faut faire une fonction d'affichage pour le type t_ufr. Ce sous programme afficherLMD affichera par exemple la chaîne "L1" si on lui passe la valeur L1 en argument.

Correction (cliquer ici)

Question 1.3 )

Écrire un sous-programme saisirEffectif qui permette de saisir au clavier les différentes valeurs d'un tableau tel que celui déclaré dans la question précédente. Il contient l'effectif de toutes les années d'enseignement du LMD.

Correction (cliquer ici)

Question 1.4 )

Écrire un sous-programme effectifTotalUfr qui calcule la somme des éléments d'un tableau contenant les effectifs de l'UFR.

Correction (cliquer ici)

Question 1.5 )

Écrire un sous-programme anneeEffectifMax qui retourne à partir d'un tableau d'effectif l'année de LMD comportant le plus d'inscrits.

Correction (cliquer ici)

Question 1.6 )

Ecrire un programme utilisant les sous-programmes et les déclarations précédents, qui permette :
  • de saisir les effectifs d'une UFR.
  • d'afficher le nombre total d'inscrit.
  • d'afficher l'année ayant le plus d'étudiant.
  • d'afficher les variations (hausse-régression) d'effectif.

Correction (cliquer ici)

Exercice 2: Les intervalles

Question 2.1 )

Donnez les types permetant de décrire une date : seconde, minute, heure, jour, années.

Correction (cliquer ici)

Question 2.2 )

Écrire un sous-programme afficherDate qui permet à l'utilisateur d'afficher un nombre de seconde sous la forme d'une date : AAAA année(s) JJJ jour(s) et HH:MM:JJ

Correction (cliquer ici)

Question 2.3 )

Écrire un programme qui demande de saisir un nombre de secondes et qui affiche la date correspondante tant que l'utilisateur n'entre pas de valeur nulle.

Correction (cliquer ici)

Exercice 3: Les ensembles

On dispose d'un tableau contenant les noms des étudiants inscrits (Il y sont au plus 30 étudiants inscrits). On dispose aussi de deux tableaux contenant leurs notes d'examen respectivement en mathématiques et en informatique. Pour étudier leurs résultats on souhaite réaliser des ensembles d'étudiants suivant plusieurs critères.

Question 3.1 )

Quels sont les types nécessaires à la réalisation d'un tel programme ?

Correction (cliquer ici)

Question 3.2 )

Écrire un sous-programme sairsirNoms qui permet à l'utilisateur d'entrer les noms des étudiants et qui retourne le nombre d'étudiants. La saisie s'arrête lorsque l'utilisateur entre une chaîne vide, mais l'on doit s'assurer qu'il entre au moins un nom. (La longueur d'une chaîne est accessible depuis la fonction length).

Correction (cliquer ici)

Question 3.3 )

Écrire un sous-programme sairsirNotes qui permet à l'utilisateur d'entrer l'ensemble notes d'une UE. On suppose que tous les étudiants inscrits ont une note.

Correction (cliquer ici)

Question 3.4 )

Écrire un sous-programme afficherUnEnsemble qui permet d'afficher les noms d'un ensemble d'étudiants.

Correction (cliquer ici)

Question 3.5 )

Écrire un sous-programme admis qui permet de construire les ensembles de ceux qui ont eu la moyenne en mathématiques et de ceux qui ont eu la moyenne en informatique .

Correction (cliquer ici)

Question 3.6 )

A l'aide de ces fonctions faire un programme qui peremette de saisir les noms et les notes des étudiants, puis affiche successivement les ensembles :
  • de tous les étudiants
  • des étudiants admis en mathématiques
  • des étudiants admis en informatique
  • des étudiants admis en mathématiques et en informatique
  • des étudiants qui ne sont pas admis mathématiques
  • des étudiants admis ni en mathématiques, ni en informatique
  • des étudiants qui n'ont été admis qu'à une seule des 2 UE

Correction (cliquer ici)

Designed by OWSD.org. Valid CSS & XHTML
Ce site et l'ensemble de son contenu est mis à disposition sous un contrat Creative Commons.
Creative Commons License