0% ont trouvé ce document utile (0 vote)
136 vues10 pages

Examen Java Final

L'examen de programmation orientée objet en Java à l'Université Moulay Ismaïl couvre des concepts tels que la modélisation de classes, l'encapsulation, et les méthodes pour manipuler des objets. Les étudiants doivent créer des classes pour des voitures autonomes, gérer des tableaux d'objets, et résoudre des problèmes de code. L'examen inclut également des exercices pratiques sur la gestion des erreurs et la manipulation de collections.

Transféré par

medamine.meftoul
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
136 vues10 pages

Examen Java Final

L'examen de programmation orientée objet en Java à l'Université Moulay Ismaïl couvre des concepts tels que la modélisation de classes, l'encapsulation, et les méthodes pour manipuler des objets. Les étudiants doivent créer des classes pour des voitures autonomes, gérer des tableaux d'objets, et résoudre des problèmes de code. L'examen inclut également des exercices pratiques sur la gestion des erreurs et la manipulation de collections.

Transféré par

medamine.meftoul
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Moulay Ismaïl 2021-2022

Durée : 2h
ENSAM – Meknès S2 / 3 ième Année / TC

Examen Programmation Orienté Objet


Java
Instructions :

• Aucun document n’est autorisé.


• Il est strictement interdit d’échanger du matériels (blanco, stylo…) entre étudiants lors de l’examen.
• Aucune question n’est autorisée.
• Vous devez répondre aux exercices de cet énoncé dans la feuille A3.
• Une note de zéro sera attribuée à la feuille qui ne contient pas : nom ou prénom ou code ENSAM.
• Un point est réservé à la clarté et l’indentation du code source.

Note : [Link]() peut être replacée par sysout() dans vos réponses.

Exercice 1 :
La classe Car modélise l’état et le comportement de voitures autonomes virtuelles. Chaque voiture correspond
à un objet qui est une instance à cette classe.

Chaque Car :

• a un designation (chaîne de caractères).


• a une position : donnée par les attributs entiers x et y, sachant que x augmente en allant vers l’Est et y
augmente en allant vers le Nord.
• a une destination : donnée par l’attribut direction qui prend une des valeurs "Nord", "Est", "Sud" ou
"Ouest".
• Peut parcourue une distance d’un pas : avec la méthode sans paramètres mobile().
• Peut tourner à droite de 90° pour changer de direction (si sa direction était "Nord" elle devient "Est", si
c’était "Est" elle devient "Sud", etc.) : avec la méthode sans paramètres right(). Les voitures ne
peuvent pas tourner à gauche.
• Peut afficher son état en détails (avec de simple [Link]()).

La désignation, la position et la destination d’une voiture lui sont donnés au moment de sa création. La
désignation est obligatoire mais on peut ne pas spécifier la position et la destination, qui sont définis par défaut
(0,0) et "Est".

1. Écrire les instructions qui permettent de définir la classe Car avec tous les constructeurs possibles, en
respectant les principes de l’encapsulation.

2. On veut améliorer ces voitures en créant une Nouvelle Génération, les CarNG qui ne remplacent pas
les anciennes voitures mais peuvent cohabiter avec eux.
Les CarNG savent faire la même chose, mais aussi :
• Avancer d’une distance en une seule fois (i.e. plusieurs pas) grâce à la méthode mobile()
qui prend en paramètre la distance parcourue.
• Tourner à gauche de 90° grâce à la méthode left().
• Faire un demi-tour grâce à la méthode halfturn().

Ecrire cette nouvelle classe en spécialisant celle de la première question, sans modifier celle-ci :

a- Les nouvelles méthodes appellent les anciennes méthodes pour implémenter le nouveau
comportement : avancer d’une distance se fait en avançant de 1 pas n fois, "tourner à gauche"
se fait en tournant 3 fois à droite, faire demi-tour se fait en tournant 2 fois.

POO Java 1 /4 ENSAM-Meknès


b- Solution plus efficace qui change directement l’état de l’objet sans faire appel aux anciennes
méthodes.

3. On veut mettre ensemble dans un tableau des objets de type Car et de type CarNG.
1- Comment déclarer un tableau de type Car et CarNG?
2- Comment afficher l’état de tous les voitures contenues dans le tableau?

4. Modifier la classe CarNG pour activer un mode "Turbo" et le désactiver. Dans ce mode chaque pas
est multiplié par 3. L’appel à la méthode afficher() devra indiquer à la fin si la voiture est en
mode Turbo ou pas.

5. Pour des besoins de reporting, on crée un fichier "car_all.txt", stocké dans l’arborescence de la
machine (partition C) rempli avec le contenu suivant (les noms des voitures) :

Travail à faire :

Écrire un programme java qui lit le fichier "car_all.txt" et écrit les noms contenant "NG" dans un
fichier séparé nommé "car_NG.txt" et les autres dans un autre fichier séparé nommé "[Link]".
Exercice 2 :
Soient les quatre programmes suivants :

Programme 1 :

Programme 2 :

POO Java 2 /4 ENSAM-Meknès


Programme 3 :

Programme 4 :

Travail à faire :
1. Quel est le résultat de l’exécution du Programme 1 ?
2. Que fait le Programme 2 ?
3. Quel est le résultat de l’exécution du Programme 3 ?
4. Programme 4 :
a. Ce programme donne une erreur lors de son exécution, donner la raison de l’erreur ?
b. Ajouter un block try/catch afin de gérer cette erreur ? Vous devez ajouter un message
personnalisé.

POO Java 3 /4 ENSAM-Meknès


Exercice 3 :
On dispose d’un objet tab déclaré ainsi : ArrayList tab ;

Écrire les instructions, dans une classe Driver au sien d’une fonction main, réalisant les actions suivantes sur
les valeurs de tab :

1. Initialisation du tab par la liste suivante : {0, 1, 2, -10, 12, 17, 20, -4, 7, -1}.
2. Affichage dans l’ordre naturel.
3. Affichage dans l’ordre inverse.
4. Affichage des éléments de rang pair (0, 2, 4…).
5. Mise à zéro des éléments de valeur négative.

Good Luck

POO Java 4 /4 ENSAM-Meknès


Nom Prénom Code Note /7

Examen Programmation Oriente Object JAVA


Duré de Réalisation 30 min
Exercice 1 : (7 points)

1. Donner le code de la classe Etudiant défini par les champs nom, prénom, code et note. Il faut indiquer
correctement les types des champs, les niveaux de visibilités, les constructeurs et les autres éléments
indispensables. (2 points)

…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
…………………………………………………………………………. ………………………………………………………………………….
2. Donner le code java qui permet de créer un tableau nommé « tab » contenant 4 objets de types
étudiants qu’il faut instancier de votre choix. (2 points)

…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………

3. Donner le code source de la fonction rechercher qui permet de chercher un étudiant dans un tableau
via son code et de retourner null s’il est introuvable. (2 points)

POO Java 5 /4 ENSAM-Meknès


…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………
4. Donner le code source de la fonction tri qui permet de trie un tableau d’étudiant en fonction de la
note, cette fonction retourne le tableau trié. (3 points)

…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………

POO Java 6 /4 ENSAM-Meknès


NOM & PRENOM : ……………………………….…………..……………………. CODE : …………………………

Université Moulay Ismaïl 2021-2022


Feuille de Réponses
ENSAM – Meknès S2 / 3 ième Année / TC
Exercice 1 :

Question 1 :
……………………………………………….…………………………………….……………………………………….
…………………………………….…………………………………….………………………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 2.a :

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
POO Java 7 /4 ENSAM-Meknès
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 2.b :

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 3.a :

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 3.b :

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 4 :
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
POO Java 8 /4 ENSAM-Meknès
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

Question 5 :
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
Exercice 2 :
5. Quel est le résultat de l’exécution du Programme 1 ?

……………………………………………….…………………………………….……………………………………….

6. Que fait le Programme 2 ?

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

7. Quel est le résultat de l’exécution du Programme 3 ?

……………………………………………….…………………………………….……………………………………….

8. Programme 4 :
a. Ce programme donne une erreur lors de son exécution, donner la raison de l’erreur ?

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

b. Ajouter un block try/catch afin de gérer cette erreur ? Vous devez ajouter un message personnalisé.

……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

POO Java 9 /4 ENSAM-Meknès


……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
Exercice 3 :
1. La class Driver et la fonction main :
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
2. Instruction (s) d’initialisation du tab par la liste suivante : {0, 1, 2, -10, 12, 17, 20, -4, 7, -1}.
……………………………………………….…………………………………….………………………………………
…………………………………….…………………………………….…………………………………………………
………………………….…………………………………….……………………………………………………………

3. Instruction (s) qui permet d’afficher dans l’ordre naturel les éléments de la liste.
…………………………………………………………….…………………………………….…………………………
………………………………………………….…………………………………….……………………………………
……………………………………….…………………………………….………………………………………………
…………………………….…………………………………….…………………………………………………………

4. Instruction (s) qui permet d’afficher dans l’ordre inverse les éléments de la liste.
…………………………………………………………….…………………………………….…………………………
………………………………………………….…………………………………….……………………………………
……………………………………….…………………………………….………………………………………………
…………………………….…………………………………….…………………………………………………………

5. Instruction (s) qui permet d’afficher les éléments de rang pair (0, 2, 4,…).
………………………………………………………………….…………………………………….……………………
……………………………………………………….…………………………………….………………………………
…………………………………………….…………………………………….…………………………………………
………………………………….…………………………………….……………………………………………………
……………………….…………………………………….………………………………………………………………

6. Instruction (s) de mise à zéro des éléments de valeur négative.


……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….
……………………………………………….…………………………………….……………………………………….

POO Java 10 /4 ENSAM-Meknès

Vous aimerez peut-être aussi