175 exercices corrigés - Couvre Java 8 (Noire) (French Edition)
Conçu pour les étudiants en informatique ce recueil d'exercices corrigés est fondements de la programmation orientée objet ou de caractéristiques plus ...
UE Programmation Orientée Objet Devoir Surveillé
14 mai 2013 Université Lille 1 – Licence Informatique. 2012-2013 ... La classe Horaire définie dans le premier exercice est utilisée dans le second.
TD Exercices sur les interfaces
Université de Lille – Sciences et Technologies – Licence 2 Informatique. 2020–2021. UE Programmation Orientée Objet. TD Exercices sur les interfaces.
Ecole Nationale dIngénieurs de Brest Programmation Orientée
28 janv. 2014 Exercice de synth`ese —. 85. 12 Exercice : Gaia ... Les enseignements d'informatique S4-POO de l'ENIB sont dispensés lors de 21h de séances.
Introduction aux méthodes Orientées Objets
http://www.nawouak.net/?cat=informatics+lang=fr (informatique et C++) Langage de POO utilisé dans le cours: C++ ... Exemple sur exercice DeptGE.
Option Informatique – U.E. POO
31 août 2005 U.F.R. des Sciences Jean Perrin. Option Informatique – U.E. POO. Examen – 2 heures – Documents de Cours autorisés. Exercice 1 : Le cinéma.
1 Reprise brève de la POO : listes 2 Piles
Enseigner l'informatique au lycée 1 Reprise brève de la POO : listes ... Exercice : En se basant sur la classe Liste créer une classe Pile avec :.
BACCALAURÉAT GÉNÉRAL NUMÉRIQUE ET SCIENCES
NUMÉRIQUE ET SCIENCES INFORMATIQUES Chaque exercice est noté sur 4 points. ... Cet exercice porte sur les arbres et la programmation orientée objet.
UE Programmation Orientée Objet - TD Exercices sur lhéritage
Université de Lille – FST – dépt Informatique – Licence 2 Informatique UE Programmation Orientée Objet ... Exercice 2 : Biens immobiliers (mai 2015).
Ecole Nationale dIngénieurs de Brest Programmation Orientée
28 janv. 2014 12 Exercice : Gaia. 85. 13 Correction : GAIA. 89. Références. 98. Informatique. S4-POO. Programmation Orientée Objet. — Concepts —.
Ecole Nationale d'Ing
enieurs de Brest| Cours d'Informatique S4 |Programmation Orientee Objet
(Concepts) C edric BUCHE buche@enib.fr version du 28 janvier 2014 1Table des matieres
| Cours | 3Avant-propos 3
1 Justication du modele objet (1 UC) 8
2 Concepts fondateurs (1 UC) 16
3 Encapsulation (1 UC) 25
4 Hierarchie (1 UC) 35
5 Collaborations entre objets (1 UC) 44
6 Pour aller plus loin 51
| Labo | 617 Rappels python (1 UC) 61
8 Concepts fondateurs (1 UC) 67
9 Encapsulation (1 UC) 74
10 Collaboration et heritage (1 UC) 77
11 Pour aller plus loin 82
| Exercice de synthese | 8512 Exercice : Gaia 85
13 Correction : GAIA 89
| Solutions Labo | 9814 Rappels python (1 UC) 98
15 Concepts fondateurs (1 UC) 102
16 Encapsulation (1 UC) 104
17 Collaboration et heritage (1 UC) 106
18 Pour aller plus loin (1 UC) 111
References 113Informatique S4-POO
Programmation Orientee Objet
- Concepts -Cedric Buche
Ecole Nationale d'Ingenieurs de Brest (ENIB)
28 janvier 2014
C´edric Buche (ENIB)POO28 janvier 20141 / 137Ces notes de cours accompagnent les enseignements d'informatique du 4
iemesemestre (S4) de Programmation Orientee Objet (POO) de l'Ecole Nationale d'Ingenieurs de Brest (ENIB : www.enib.fr). Leur lecture ne dispense en aucun cas d'une presence attentive aux cours ni d'une participation active aux travaux diriges. 2 CoursAvant-propos
SommaireObjectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Objectifs pour la suite du cursus . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Equipe pedagogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Seances de cours et de laboratoire . . . . . . . . . . . . . . . . . . . . . . . . . 5 Planning previsionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 3Objectifs
Objectifs du cours
L'objectif principal des enseignements d'informatique S4-POO de l'ENIB est l'acquisition des notions fondamentales de laprogrammation orientee objet. Plus precisement, nous etudierons successivement :Denition 0.1.Programmation orientee objet : ou programmation par objet, est un paradigme de programmation informatique qui consiste en la denition et l'assemblage de briques logicielles appelees objets; un objet represente un concept, une idee ou toute entite du monde physique, comme une voiture, une personne ou encore une page d'un livre.Denition 0.2.UML : (en anglais Uni-
ed Modeling Language, " langage de modelisation unie ") est un langage gra- phique de modelisation des donnees et des traitements. C'est une formalisation tres abou- tie et non-proprietaire de la modelisation objet utilisee en genie logiciel.1.Le mo deleob jet: .Objet .Classe .Encapsulation .Collaboration .Heritage .Abstraction 2.La partie statique du langage UM L:
.Diag. de cas d'utilisation .Diag. de classes .Modele d'interactionDiag. de sequence
Diag. de communication
Objectifs pour la suite du cursus
Les notions de POO seront necessaires pour le metier d'ingenieur en informatique, ainsi que pour la suite de vos etudes d'ingenieurs notamment pour les modules suivants : .Prog. par objets (Java) en S5/S6 .Prog. par objets (C++) en S5/S6 .Modeles pour l'ingenierie des systemes (UML) en S6 .Stage en entreprise en S8/S10 4Organisation
Equipe pedagogique
BosserAnne-GwenCours + Laboratoirebosser@enib.fr
DesmeullesGiregCours + Laboratoiredesmeulles@enib.frSeances de cours et de laboratoire
Les enseignements d'informatique S4-POO de l'ENIB sont dispenses lors de 21h de seances de coursTD et de seances de laboratoire : .Les cours ont lieu chaque semaine a raison de 3h toutes les 2 semaines .Les seances de laboratoire ont lieu a raison de 3h toutes les 2 semaines. Elles se deroulent en salle informatique.Planning previsionnel
5 Module :Programmation Orient´ee Objet - POO2013 Responsable : C´edricBuche(CERV, bureau 30, tel : 02 98 05 89 66, email :buche@enib.fr)S4Intervenants : C.Buche(cb)
Semaine
LABOCTD
37POO - Justification mod`ele objet
ctdcb 37POO - Concepts fondateurs
ctdcb 38POO - Rappels python
labocb 38POO - Concepts fondateurs
labocb 39POO - Encapsulation
ctdcb 39POO - Collaboration et hi´erarchie
ctdcb 40POO - Encapsulation
labocb 40POO - Collaboration et h´eritage
labocb 41UML - G´en´eralit´es
ctdcb 41UML - Classes
ctdcb 42UML - Classes
labocb 42UML - Classes
labocb 43UML - Classes
ctdcb 43UML - Classes
ctdcb 44Vacances
Toussaint
Semaine
LABOCTD
45UML - Classes
labocb 45UML - Classes
labocb 46UML - Use Case (diag.)
ctdcb 46UML - Use Case (sc´enarios)
ctdcb 47UML - Use Case (diag.)
labocb 47UML - Use Case (sc´enarios)
labocb 48UML - Interactions (com)
ctdcb 48UML - Interactions (seq)
ctdcb 49UML - Interactions (com)
labocb 49UML - Interactions (seq)
labocb 5050
51
51
6
EvaluationFigure 0.1.Exemple de QCMTypes de contr^oleL'evaluation des connaissances et des competences acquises par lesetudiants
repose sur 3 types de contr^ole : les contr^oles d'attention, les contr^oles de TD et les contr^oles de
competences. .Contr^ole d'attention :il s'agit d'un QCM (questionnaire a choix multiples) auquel il faut repondre individuellement sans document, en 5' en n de cours, et dont les questions portent sur des points abordes pendant ce cours. Ce type de contr^ole teste directement l'acquisition de connaissances. Il permet d'evaluer " a chaud " la capacite d'attention des etudiants et les incite a une presence attentive an de benecier au maximum des heures de presence aux cours. .Contr^ole de TD :il s'agit ici d'inciter les etudiants a reviser et a preparer activement les seances de laboratoire. En debut de chaque seance de laboratoire, chaque eleve doit repondre sans document en 5' aux questions d'un exercice ou d'un QCM portant sur les notions du laboratoire et du cours precedent. .Contr^ole de competences :les contr^oles de competences (ou DS) durent 80' pendant une seance de cours. Notation des contr^oles d'attention et de TDQuel que soit le type de contr^ole, un exercice cherche a evaluer un objectif particulier. Aussi, la notation exprimera la distance qui reste aparcourir pour atteindre cet objectif :Figure 0.2.Notation : metaphore de la cible0 : " en plein dans le mille! "!l'objectif est atteint
1 : " pas mal! "!on se rapproche de l'objectif
2 : " juste au bord de la cible! "!on est encore loin de l'objectif
3 : " la cible n'est pas touchee! "!l'objectif n'est pas atteint
Ainsi, et pour changer de point de vue sur la notation, le contr^ole est reussi lorsqu'on a 0! Il n'y a pas non plus de 1/2 point ou de 1/4 de point : le seul bar^eme possible ne comporte que 4 niveaux : 0, 1, 2 et 3. On ne cherche donc pas a " grappiller " des points : .on peut avoir 0 (objectif atteint) et avoir fait une ou deux erreurs benignes en regard de l'objectif recherche; .on peut avoir 3 (objectif non atteint) et avoir quelques elements de reponse corrects mais sans grand rapport avec l'objectif. 71 Justication du modele objet (1 UC)
Sommaire1.1 Complexite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91.1.1 Complexite des problemes . . . . . . . . . . . . . . . . . . . . . . . . . .
91.1.2 Diculte du contr^ole du processus de developpement . . . . . . . . . . .
91.1.3 Consequences d'une complexite sans limites . . . . . . . . . . . . . . . .
91.1.4 Qualite du logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91.2 Programmation procedurale . . . . . . . . . . . . . . . . . . . . . . . .
101.2.1 Paradigme de programmation procedurale . . . . . . . . . . . . . . . . .
101.2.2 Limites de la programmation procedurale . . . . . . . . . . . . . . . . .
101.3 Vers la Programmation Orientee Objet (POO) . . . . . . . . . . . .
121.3.1 Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121.3.2 Objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121.3.3 Constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 Objectifs du Cours 1 / Labo 2:
.Justier le modele objet .Notion de classe : denition constructeur .Notion d'objet : instanciation manipulation81.1 Complexite
1.1.1 Complexite des problemes
Les problemes que les logiciels doivent solutionner comportent souvent des elements extr^e- mement complexes. Considerons les exigences auxquelles doit satisfaire l'electronique d'un avion a reacteur ou d'un robot autonome. Le fonctionnement de ces systemes est deja dicile a cerner, et pourtant il faut y ajouter des exigences non fonctionnelles (et surtout implicites) telles que la facilite d'emploi, les performances, le co^ut, la robustesse ...1.1.2 Diculte du contr^ole du processus de developpement
La t^ache fondamentale de l'equipe de developpement de logiciel est de promouvoir une illusion de simplicite an de proteger l'utilisateur de cette complexite externe arbitraire. Aussi, la taille n'est s^urement pas la principale vertu du logiciel. Ainsi, nous nous eorcons d'ecrire moins decode, cependant nous avons parfois a faire face a un enorme volume de specications.Denition 1.1.Systeme d'exploitation (SE, en
anglais Operating System ou OS) est un en- semble de programmes responsables de la liaison entre les ressources materielles d'un ordinateur et les applications informatiques de l'utilisateur.Figure 1.1.La t^ache de l'equipe de
developpement de logiciel est de donnerl'illusion de la simplicite [Booch, 1992]Exemple 1.1.Un systeme d'exploitation : Tout le monde sait utiliser un systeme d'exploitation,
pour donner un ordre de grandeur il y a 6 millions de lignes de code pour le noyau Linux 2.6.01.1.3 Consequences d'une complexite sans limites
Plus un systeme est complexe, plus il est susceptible d'eondrement[Peter, 1986] Est ce qu'un entrepreneur songe a ajouter une nouvelle assise a un immeuble de 100 etages existant? Ce genre de considerations est pourtant demande par certains utilisateurs de logiciels.1.1.4 Qualite du logiciel
Le logiciel produit doit presenter les qualites suivantes :1.Extensibilite :faculte d'adaptation d'un logiciel aux changements de specication.
.simplicite de la conception: une architecture simple sera toujours plus facile a modier qu'une architecture complexe. .decentralisation: plus les modules d'une architecture logicielle sont autonomes, plus il est probable qu'une modication simple n'aectera qu'un seul module, ou un nombre restreint de modules, plut^ot que de declencher une reaction en cha^ne sur tout le systeme. 92.Reutilisabilite :aptitude d'un logiciel a ^etre reutilise en tout ou en partie pour de
nouvelles applications. L'idee a retenir est de "ne pas reinventer la roue!". Il s'agit de programmermoinspour pro- grammermieux. C'est la nalite du modele objet en programmation!! Il apporte une semantique facilitant ce processus en programmation.1.2 Programmation procedurale
Remarque 1.1.Paradigme : maniere d'orga-
niser l'information1.2.1 Paradigme de programmation procedurale
En S1, vous avez appris a manipuler les concepts du paradigme de programmation procedurale. Dans ce modele, les donnees et le code sont separes. Concretement, on utilise :1.des variables (globales)qui
.contiennent vos donnees .sont utilisees par des fonctions/procedures.2.des fonctionsqui
.peuvent modier une variable .peuvent passer cette variable a une autre fonction/procedure.1.2.2 Limites de la programmation procedurale
Prenons l'exemple d'une entreprise situee a Biarritz. Robert (num de secu 10573123456), est employe sur un poste de technicien. Voici comment il est possible d'implementer cette situation en programmation procedurale :1###########################################2#V ersion1 :
3#v ariablesg lobales
5#r obert
6numsecurobert = 10573123456
7nomrobert = "Robert"
8qualificationrobert = "Technicien"
9lieudetravailrobert = " Biarritz "
Maintenant, nous souhaitons ajouter un autre employe "Bernard" 101#b ernard
2numsecubernard = 2881111001
3nombernard = "Bernard"
4qualificationbernard = "Ingenieur"
5lieudetravailbernard = " Biarritz "
6 78#. . . Ce code devient vite fastidieux.
Une autre solution est d'utiliser des conteneurs.1###########################################2#V ersion2 :
3#u tilisationd ec onteneurs
56tabrobert =[10573123456 ,
7"robert" ,
8"Technicien" ,
9" Biarritz " ]
10tabmickey =[14456464443 ,
11"mickey" ,
12"Ingenieur" ,
13"Brest" ]
14tab =[]
15tab . append( tabrobert )
16tab . append( tabmickey )
17printt ab[ 0 ] [ 0 ] #n ums ecur obertSans ^etre le concepteur, comment interpreter facilement les donnees de chaque conteneur?
Cela reste delicat. Le paradigme objet propose des reponses. 111.3 Vers la Programmation Orientee Objet (POO)
En POO, nous pouvons denir une structure de donnee particuliere par la notion declasse.Ici :Denition 1.2.Classe: une classe d eclaredes
proprietes communes a un ensemble d'objets.1###########################################2#V ersion3 : s tructurationd esd onnees
45classEmploye :
6numsecu
7nom8qualification
9Lieudetravail
1.3.1 Classe
On appelleclasseun ensemble d'objets partageant certaines proprietes. Il s'agit d'un concept abstrait, comme par exemple les plans d'une maison.Denition 1.3.Attribut: les attributs sont desentites qui denissent les proprietes d'objets.Exemple 1.2.La classeVoiturepossede les proprietes suivantes (lesattributs ) :
.couleur .puissance1.3.2 Objet
Un objet est une denition de caracteristiques propres a un element particulier. Il s'agit d'un elementconcretqui contient les proprietes de sa classe, comme une maison qui suit les plans denis prealablement. Exemple 1.3.Objets : exemple instance de la classeVoiture1.Voiture "Clio 2007 version roland garros"
.couleur: verte .puissance: 70 Ch2.Voiture "307 blue lagoon"
.couleur: bleue .puissance: 90 Ch 12 Mise en place d'objetsconcrets ( instancesde classe)Denition 1.4.Objet: un objet est l' instancia- tion d'une classe. Un objet est une denition de caracteristiques propres a un element.Denition 1.5.Instance: on app elleinstanc e
d'une classe un objet avec un comportement et un etat, tous deux denis par la classe.1#r obert2e1=Employe ()#o bjete 1: i nstanced el ac lasseE mploye
3e1 . numsecu = 10573123456
4e1 .nom = "Robert"
5e1 . qualification = "Technicien"
6e1 . Lieudetravail = " Biarritz "
78print( e 1. n umsecu ,
9e1 .nom,
10e1 . qualification ,
11e1 . Lieudetravail )
12 1314#m ickey
15e2=Employe ()#o bjete 2: i nstanced el ac lasseE mploye
16e2 . numsecu = 14456464443
17e2 .nom = "Mickey"
18e2 . qualification = "Inge"
19e2 . Lieudetravail = "Brest"
1.3.3 Constructeur
Si on considere une nouvelle instance :1#n orbert
2e3=Employe ()
34print( e 3. n umsecu ,#E RREUR
5e3 .nom,
6e3 . qualification ,
7e3 . Lieudetravail )
Ce code amene a une erreur puisque les valeurs de ces attributs ne sont pas precisees. 13 Les attributs doivent ^etres initialises avec une valeur par defaut, nous faisons alors appel a une "fonction" particuliere : le constructeur .Pour les puristes,initest une initialisateur. Pour simplier, nous l'appellerons constructeur.En python, !le constructeur s'ecrit en utilisant la "fonction"init !le premier argument est toujoursselfEn python, !initappelee implicitement a la creation d'un objetEn python, !le constructeur peut posseder plusieurs arguments (en plus deself)Exercice 1.1.Classe et instances
.Ecrire la classeVoitureen python. .Ecrire son son contructeur avec la possibilite de preciser les valeurs de certains attributs a l'instanciation. .Instancier 3 objets issus de la classeVoitureExercice 1.2.Manipulation d'instances
.Creer un tableau contenant les instances de la classeVoiture .Acher la valeur de l'attributcouleurde chaque instance en parcourant ce tableau1classEmploye :2defi n i t(s e l f ) :#C onstructeurd el ac lasseE mploye
quotesdbs_dbs29.pdfusesText_35[PDF] Corrigé exercice : Qualité Énoncé : Dans une entreprise on veut
[PDF] TD03 : Quantité économique Eléments de correction
[PDF] 1IMRT, Exercices et problèmes de radioactivité (corrigés) ( feuille 2
[PDF] CORRIGE EXERCICES
[PDF] Réciproque du théorème de Pythagore Exercices corrigés
[PDF] CORRIGÉ DES EXERCICES DU CHAPITRE 5 Partie 1 51
[PDF] Redresseurs ? diodes
[PDF] Temps et relativité restreinte Exercice 1 - Channel Progress
[PDF] TD : Saut ? l 'élastique - KlubPrepa
[PDF] Corrigé Exercice 1 : LIAISONS ÉLÉMENTAIRES ( )
[PDF] Livre d 'exercices EduKit PA Module de projet - Festo Didactic
[PDF] TD de Traitement d images EI3 Année 2009-2010 - LISIC
[PDF] correction evaluation seisme 4e - Sciences et cetera
[PDF] on considere deux processus p1 et p2 - Ummto