Vous êtes sur la page 1sur 3

EILCO ING 1

Examen d'Algorithmique Avancée


et Programmation
Documents autorisés
Les exercices seront notés indépendamment pour la justesse des algorithmes et pour la justesse
de la syntaxe en langage C ou C++.

Exercice 1 (10 points)


1) a, b et c sont de type int. Indiquez la valeur et le type des expressions suivantes,
en langage C, pour a=0, b=1 et c=2 :
b-a a/2+b a==b a/1.0
(int) a/1.0 'a' "(double) b" (a-b)>(a*c)

2) Ecrire en C :
- une fonction sup50() dont l'objectif est de retourner le nombre d'éléments
supérieurs à 50 dans un tableau d'entier passé en paramètre.
- un programme permettant de créer un tableau d'entiers, de le remplir de valeurs
aléatoires entre 0 et 100, et utilisant la fonction sup50() pour afficher le nombre
d'éléments du tableau supérieurs à 50.

3) Ecrire en C :
- une fonction 𝑓(𝑎, 𝑏) prenant deux réels doubles 𝑎 et 𝑏 en paramètres et
𝑎 𝑏
retournant comme résultat le réel double si 𝑎 est supérieur à 𝑏 et sinon.
𝑏 𝑎

- une fonction principale main() permettant à l'utilisateur d'entrer deux doubles


au clavier, de leur appliquer la fonction et d'afficher le résultat à l'écran.

4) On considère le programme C suivant :


int i=1, n = 2;
printf("i n\n");
while (i < 4) {
do {
n=n+i;
printf("%d %d\n", i, n);
} while (n<3);
n=1;
i++;
printf("%d %d\n", i, n);
}
Indiquez l'affichage écran qui résultera de l'exécution de ce programme.

Le 26/01/2021 1/3
EILCO Examen Algorithmique Avancée et Programmation

Exercice 2 (10 points)


Créer une classe Film dont le but sera la gestion d’une vidéothèque en C++. Un film
sera identifié par son titre, sa durée en minutes, une liste de ses acteurs, une critique (texte) et
une note (entre 0 et 5). La classe suit le diagramme UML et les instructions suivantes :

Film
- titre : string
- duree : int
- acteurs : vector<string>
- critique : string
- note : float
+ Film(string, int)
+ Film(string, int, vector<string>)
+ getTitre() : string
+ getNote() : float
+ setCritique(string)
+ setNote(float)
+ addActeur(string)
+ affiche()

 Le constructeur Film(t,d) permet d’indiquer le titre, la durée et fixe la liste


d’acteurs et la critique à vide et la note à -1.
 Le constructeur Film(t,d,a) permet d’indiquer le titre, la durée, une liste
d’acteurs et fixe la critique à vide et la note à -1.
 La méthode getTitre() retourne le titre du film.
 La méthode getNote() retourne la note du film.
 La méthode setCritique(c) permet de modifier la chaîne de caractère de critique
du film.
 setNote(n) permet de modifier la note du film.
 addActeur(a) permet d’ajouter un acteur à la liste des acteurs du film.
 affiche() affiche à l’écran les différentes informations disponibles sur le film en
respectant le format indiqué dans les exemples ci-dessous. Si aucune note n’a
été saisie, la méthode affiche() devra l’indiquer. L’affichage dépendra
également de si la liste d’acteurs est vide ou non. On montre ci-dessous trois
exemples, le premier pour lequel une liste d’acteurs et une critique ont été
indiquées, le second pour lequel une liste d’acteurs et une note ont été
indiquées et le troisième pour lequel aucun élément n’a été indiqué :
Blade Runner (117min), avec Harrison Ford, Rutger Hauer, Sean Young.
Pas de note. Excellent film, elegant et froid.

26/01/2021 2/3
EILCO Examen Algorithmique Avancée et Programmation
Joker (122min), avec Joaquin Phoenix. 3,8.
Bienvenue chez les Ch’tis (106min). Pas de note.
Ecrire une fonction main() permettant de :
- créer un objet film à l’aide du premier constructeur, puis de lui attribuer deux acteurs,
une note et une critique ;
- créer un objet film à l’aide du second constructeur (avec une liste de deux acteurs) et
lancer deux saisies clavier permettant de lui attribuer une note et une critique.
- afficher les deux films (méthode affiche()), en commençant par le film ayant reçu la
meilleure note.
Vos goûts cinématographiques n’entreront pas en compte dans la notation.

26/01/2021 3/3

Vous aimerez peut-être aussi