Vous êtes sur la page 1sur 2

Institut Supérieur des Etudes Technologiques de Sousse Année universitaire :

Département de Technologies d'informatique 2021/2022


Licence appliquée en Technologies d'informatique Semestre : 2
Date : Juin 2022
EXAMEN Durée : 1h30

Documents : Unité d’enseignement : Programmation Structurée Classe : TI1.*


Non autorisés Matière : Algorithmique & programmation II Nb. Pages : 02

Enseignants :
Mr Mourad HADHRI, Mr Adel DAHMANE, Mme Ons BEN ROMDHANE, Mr hichem ZORGATI, Mme Hedia JEGHAM

EXERCICE 1 : ARBRE BINAIRE [6,5 POINTS]


On vous donne la liste des nœuds en ordres préfixé et infixé d’un même arbre binaire de caractères,
et on vous demande de faire la représentation graphique de cet arbre (expliquer comment peut-on
identifier les nœuds du sous-arbre droit).

Liste des nœuds selon le parcours préfixé (RGD) : g b d i m h j n e c a k f l

Liste des nœuds selon le parcours infixé (GRD) : i d m b j h n g a c e f k l

EXERCICE 2 : LISTE & FILE [13,5 POINTS]


On désire implémenter les fonctions nécessaires à la gestion d'un «spool» d'impression. Un
spool est une liste de requêtes (demandes) d’impressions. Ces requêtes, lancées sur une
même imprimante, sont classées dans le spool par rapport à leurs priorités.

Le spool est défini par une liste de requêtes. Une requête d'impression est définie par:
 Le nom du fichier à imprimer, qui est une chaîne de caractères.
 La priorité du fichier, qui est un entier supérieur strictement à 0.
 L'état de la requête, qui est un booléen (si état = vrai, la requête est valide sinon, la
requête est non valide).
Un fichier ne peut être imprimé que si l'état de sa requête est égal à VRAI.
Avant d'être imprimé, un processus "scanSpool" parcours la liste et charge les différentes
requêtes valides dans une FILE de fichiers (composée uniquement par les noms des fichiers)
en commençant par la requête la plus prioritaire (celle possédant la priorité la plus basse.
Par exemple, un fichier de priorité 1 est plus prioritaire qu’un fichier de priorité 3).
On donne les déclarations suivantes :

Structure requête Structure celluleListe Structure celluleFile


nomFichier : chaine Info : requête nomFichier : chaine
priorité : entier suiv : ^celluleListe suiv : ^celluleFile
etat : booléen Fin Structure Fin Structure
ISETSO Juin 2022 - Examen d’Algorithmique II Page 1 sur 2
Fin Structure

NB : Vous pouvez utiliser les fonctions de manipulation des Files sans les développer (Enfiler et Défiler).

Travail demandé :

1. Ecrire une procedure créerSpoolValide() qui étant donnée une liste L de requêtes, crée
une autre liste LV contenant uniquement les requêtes valides. [3,5 points]
Procedure creerSpoolvalide (L : ^celluleListe, var LV : ^celluleListe)

2. Ecrire une fonction prioritéMin() qui permet de retourner l’adresse de la requête ayant la
priorité minimale dans la liste des requêtes valides LV, cette requête sera la plus
prioritaire dans l’impression. [4 points]
Fonction prioritéMin (LV : ^celluleListe) : ^celluleListe

3. Déduire la procedure scanSpool(), qui étant donné la liste des requêtes valides LV,
permet de charger la file F par les noms des fichiers à imprimer en commençant par le
plus prioritaire. [4 points]
Procedure scanSpool (LV : ^celluleListe, var F : ^celluleFile)

NB : Penser à utiliser la fonction prédéfinie supprimer (sans la développer) qui supprime


de la liste L la cellule pointée par p et retourne le nouveau pointeur L.
Fonction supprimer (L : ^celluleListe, p : ^celluleListe) : ^celluleListe

4. Ecrire la procédure imprimerFichier() qui imprime tous les fichiers chargés dans la file F et
affiche le nombre de fichiers imprimés (Imprimer un fichier revient simplement à afficher
son nom et le supprimer de la file en utilisant défiler). [2 points]
Procédure imprimer (var F: ^celluleFile)

BON TRAVAIL

ISETSO Juin 2022 - Examen d’Algorithmique II Page 2 sur 2

Vous aimerez peut-être aussi