Vous êtes sur la page 1sur 3

INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE NABEUL

DEPARTEMENT TECHNOLOGIE DE L’INFORMATIQUE

DEVOIR SURVEILLE
Matière: ALGORITHME ET PROGRAMMATION Documents: Non autorisés
Enseignants : H. Haddaji, A. Fkiri, S. Refai, H. Mhafdhi, N. Ferjani, A. Ezzaich Durée: 1h00'
Classes : TI.11, 12, 13, 14, 15, 16 Date : 25 /04/2022

Il vous est demandé d’apporter un soin particulier à la présentation de votre copie.

EXERCICE 1 : PILE 8 PTS

Une maîtresse d’école décide d’instaurer un système de points correspondant à la


participation des élèves. A chaque élève, est associée une pile qui mémorise les
évaluations pour ces différentes réponses.
• Si un élève répond bien à une question, alors un feu vert représenté par le
caractère V est empilé sur sa pile.
• Si un élève répond de façon approximative, alors un feu orange représenté par
le caractère O est empilé sur sa pile.
• Si un élève répond mal à une question, alors un feu rouge représenté par le
caractère R est empilé sur sa pile.
• On donne la déclaration des types suivants :
struct cellule
{
char info ;
struct cellule *suivant ;
};
Struct cellule Cellule;
Cellule *Pile ;
1- Ecrire en C, la fonction dépiler qui permet la suppression d’un élément de la
pile : (2,5 pts)
PILE dépiler(PILE P, char *e)
2- Ecrire en C, la fonction empiler sachant que : (3 pts)
- A l’empilement de la couleur rouge, on dépile la couleur verte s’il existe au
sommet de la pile et vise versa.
PILE empiler(PILE P, char e)

Année Universitaire 2019/2020 Sem.1 Page 1/3


INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE NABEUL

DEPARTEMENT TECHNOLOGIE DE L’INFORMATIQUE

3- Écrire en C, la fonction qui prend en entrée la pile d’un élève et qui calcule le
nombre des points associée à cet élève. (2.5 pts)
int nbPoint(PILE P)
Sachant qu’un élève a 0 point initialement, puis les points sont comptés de la
façon suivante :
• Si l’élément de la pile est de couleur vert, le nombre de points est incrémenté
de 10,
• Si l’élément la pile est de couleur orange, le nombre de points est incrémenté
de 5.
• Si l’élément la pile est de couleur rouge, le nombre de points est décrémenté de
10.

EXERCICE 2 : LES LISTES CHAINEES 12PTS

Un restaurant désire informatiser et sauvegarder la liste des plats de son menu :


1- Déclarer les types suivants : (2 pts)
-Un enregistrement t_plat qui contient les champs :
• Numéro (entier)
• Nom (chaine)
• Composition (chaine)
• Prix (réel).
-ListePlat qui est une liste simplement chainée des plats.
2- Le gérant du restaurant désire faire une remise de 1DT sur certains plats. Ecrire
une procédure remisePLat qui modifie le prix de tous les plats qui coûtent
plus que 10 dinars. (3 pts)
Procédure remisePLat(var L :ListePlat)
3- Le gérant du restaurant désire mettre à jour le menu de restaurant en
supprimant le plat pizza (on suppose qu’il existe un seul plat ayant pour nom

Année Universitaire 2019/2020 Sem.1 Page 2/3


INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE NABEUL

DEPARTEMENT TECHNOLOGIE DE L’INFORMATIQUE

« pizza »). Ecrire une procédure SuppPLat qui supprime le plat dont le nom
est pizza. (3 pts)
Procédure SuppPlat(var L :ListePlat)
4- Ecrire une procédure copierPlat qui prend comme paramètres la tête de la liste
et un tableau T. Elle permet de copier dans le tableau T les plats de la liste qui
coûtent moins de 20 dinars. (4 pts).
Procédure copierPlat(L:ListePlat, var T:tableau[1..100] de t_plat, var n:entier)

Remarque :
Utiliser la fonction compare-chaine(Ch1,Ch2) sans la définir, pour comparer deux
chaines de caractères, la fonction retourne -1 si Ch1<Ch2, 1 si Ch1>Ch2 et 0 en cas
d’égalité.

Bon travail

Année Universitaire 2019/2020 Sem.1 Page 3/3

Vous aimerez peut-être aussi