ISI - MP2L - Programmation Java - A. Khalfallah
Exercice 1
Une file de priorité est une structure de données qui permet de stocker un ensemble
d’informations par rapport à leurs priorités d’une part et par rapport à leurs ordres d’entrée
dans la file d’autre part. Soient deux informations I1 et I2 : la priorité de la première étant
P1 et la priorité de la seconde étant P2. Il y a deux cas de figures :
- P1=P2 : dans ce cas si I1 est entré dans la file avant I2 alors il doit en sortir
avant I2 sinon I2 sort avant I1
Advertisement
- P1P2 : dans ce cas l’information de priorité la plus élevée sort avant l’autre
indépendamment de l’ordre d’entrée de I1 et I2.
La priorité se définit comme un entier : la priorité la plus élevée est 0, la priorité la plus basse
est 10.
On souhaite implanter une classe FilePrio qui offre les méthodes suivantes :
- Entrer : qui étant donnée une information et sa priorité permet de faire entrer
l’information dans la file de priorité.
- Sortir : qui retourne l’information qui doit sortir de la file et supprime
Advertisement
l’information de la file.
- Consulte : qui étant donnée une priorité retourne d’une part le nombre
d’informations de la file ayant cette priorité et d’autre part un tableau contenant
les informations de la file ayant cette priorité.
Question : Donner le code de la classe FilePrio. Cette classe devra être générique par
rapport au type de l’information stockée dans la file.
Exercice 2
On souhaite simuler un carrefour constitué de quatre rues : les rues A, B, C et D dans
Advertisement
lesquelles arrivent des véhicules. On distingue deux sortes de véhicules : les voitures et les
ambulances. Les ambulances doivent sortir du carrefour avant les voitures indépendamment
de la rue dans laquelle elles se trouvent et dans l’ordre ou elles sont arrivées dans le carrefour.
Les voitures doivent sortir du carrefour dans l’ordre où elles sont arrivées mais en tenant
compte du fait que les voitures de la rue A sont plus prioritaires que les voitures de la rue B
qui sont plus prioritaires que les voitures de la rue D qui sont plus prioritaires des voitures de
la rue D.
On introduit une classe Carrefour qui offre les méthodes suivantes :
Advertisement
- Entrer qui étant donné un véhicule défini par son numéro d’immatriculation qui
est un entier, son type voiture ou ambulance et la rue par laquelle il arrive A, B, C
ou D permet de faire enter le véhicule dans le carrefour.
- Sortir qui retourne le véhicule qui doit sortir du carrefour et le fait sortir du
carrefour.
Question : Donner le code de la classe carrefour. Il convient pour cela d’introduire une classe
Véhicule et d’utiliser la classe FilePrio de l’exercice 1.