Vous êtes sur la page 1sur 2

Ministère de l’enseignement supérieur

et de la recherche scientifique
****
Institut Supérieur d’Informatique
Examen ASD1 - ARS
Janvier 2019 – Durée : 2h Documents : non autorisés

Exercice (6 points)
Ecrire deux versions d’une fonction récursive qui permet la recherche de la valeur maximale
dans un tableau d’entiers. Expliquez votre principe pour chaque version.

Problème (14 points)


Il s’agit d’écrire un algorithme qui permet de gérer un « jukebox ». Un jukebox est un appareil
public capable de jouer automatiquement de la musique enregistrée (des chansons relatives
à un album). Pour ce faire on vous demande de suivre les étapes ci-après :

1. Déclaration et Définition des structures de données


a. Déclarer deux constantes Max_chanson à 30 et Max_album à 10
b. Définir la structure de données Chanson_t relative à une chanson qui est
caractérisée par un titre (titre une chaine de caractères) et une durée en secondes
(duree_sec entier)
c. Définir la structure de données Album_t relative à un album qui est caractérisée par
un titre et artiste (titre, artiste chaine de caractères), année de parution et nombre de
chansons (annee et nb_chanson des entiers) et une liste de chansons (list un tableau
de taille Max_chanson de chansons (Chanson_t)).
d. Définir la structure de données jukebox_t qui se caractérise par un propriétaire
(pror chaine de caractères), nombre d’albums (nbr_album entier) et catalogue d’album
(Tcatalogue tableau de taille Max_album d’albums (album_t)).
e. Faire un schéma pour représenter cette structure.Faire un schéma pour représenter
ces structures.

2. Saisie d’une chanson


Ecrire une Procédure Saisie_chanson qui permet la saisie des propriétés d’une chanson.

3. Affichage d’une chanson


Ecrire une Procédure Affiche_chanson qui permet l’affichage des propriétés d’une
chanson.

4. Saisie d’un album


Ecrire une Procédure Saisie_album qui permet la saisie des propriétés d’un album.
La liste des chansons est saisie en faisant appel à la Procédure Saisie_chanson. Au
fur et à mesure de la saisie, trier la liste des chansons de l’album en utilisant comme clé
la durée.

1/3
5. Affichage d’un album
Ecrire une Procédure Affiche_album qui permet l’affichage des propriétés d’un
album. Faire appel à la procédure Affiche_chanson.

6. Durée totale d’un album


Ecrire une fonction duree_Totale qui renvoie la durée totale en secondes d’un album
donné en paramètres.

7. Saisie d’un jukebox


Ecrire une Procédure Saisie_jukebox qui permet la saisie des propriétés d’un
jukebox. Faire appel aux procédures et fonctions précédentes si besoin.

8. Album le plus long


Ecrire une fonction Plus_long_album qui étant donnée un jukebox juk renvoie
l’indice de l’album dont la durée totale est la plus longue.

9. Insertion d’un album


Ecrire une fonction booléenne Insérer_album qui reçoit en paramètres un album A
et un jukebox Juk. La fonction mémorise l’album A à la fin du catalogue de jukebox et
renvoie vrai si l’insertion est possible, sinon renvoie faux.

10. Insertion d’un album suivant un tri


On suppose que les albums dans le jukebox sont triés selon l’année de parution.
Ecrire une fonction booléenne Insérer_album_tri qui reçoit en paramètres un
album A et un jukebox Juk. La fonction Insérer_album_tri mémorise l’album A
en choisissant l’ordre de recopie afin que le catalogue soit trié suivant l’année. Cette
fonction renvoie vrai si l’insertion est possible, sinon renvoie faux.

11. Fusion de jukeboxs


Ecrire une la procédure fusion_jukebox, qui étant donnée un nouveau propriétaire
et deux jukebox triés juk1 et juk2 selon l’année de parution des albums. La procédure
recopie tous les albums de juk1 et tous les albums de juk2 dans un jukebox juk3 de
sorte que juk3 soit trié.

Bon Travail

2/3

Vous aimerez peut-être aussi