TD1 - LISIC

Transcription

TD1 - LISIC
Structure de données et algorithmique avancée
TD 1: Listes statiques
1
Description
Dans ce TD on souhaite modéliser un train. Un train est représenté par :
– Une suite de wagons (au maximum NB_MAX wagons) représentée par une liste
statique.
– Une taille (entier correspondant au nombre de wagons).
Un wagon est représenté par :
–
–
–
–
Un numéro (entier)
Un nombre de places assises (entier)
Un nombre de places debout (entier)
Un identifiant permettant de savoir s’il s’agit d’un wagon restaurant (=1 si restaurant, =0 sinon)
– Un identifiant permettant de savoir s’il s’agit d’une locomotive (=1 si locomotive,
=0 sinon)
2
Exercice 1
Ecrire en C la structure wagon (struct wagon) comprenant les variables numero, nbPlacesAssises, nbPlacesdebout, restaurant, locomotive, puis définir la structure train.
Créer une variable globale "monTrain" qui sera utilisée pour la suite du TD.
3
Exercice 2
Ecrire en C les fonctions et procédures suivantes :
–
–
–
–
–
–
wagon creerWagon(entier, entier, entier, entier, entier)
insererLocomotive(wagon)
insererWagonEnTete(wagon)
insererWagonEnFin(wagon)
afficherTrain()
verifierCoherenceTrain()
La procédure insererLocomotive insère le wagon “locomotive” en début de train.
La procédure wagonEnTete insère le wagon en début de train s’il n’y a pas de locomotive, et juste derrière la locomotive si elle est présente.
La procédure afficherTrain affichera :
–
–
–
–
–
le numéro du wagon
le nombre de places totales s’il s’agit d’un wagon voyageur
"locomotive" s’il s’agit d’une locomotive
"restaurant" s’il s’agit d’un wagon restaurant
Les wagons sont séparés par "–"
Exemple d’affichage : 12 locomotive – 11 54 – 34 restaurant – 9 43 – 7 54.
La procédure verifierCoherenceTrain vérifiera :
–
–
–
–
–
–
que la locomotive est bien en tête de train
qu’il y a une et une seule locomotive
que pour chaque wagon, le nb de places est >0
que le nb de places pour le wagon restaurant est de 0
que le nb de places pour la locomotive est de 0
qu’un wagon est soit voyageur, soit une locomotive, soit un wagon restaurant
Si tout est bon la valeur de retour est de 1 sinon 0.
4
Exercice 3
Ecrire un programme principal permettant d’utiliser et de vérifier les fonctions précédentes.