Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Dimension: px
Commencer à balayer dès la page:

Download "Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions"

Transcription

1 Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM) Arbres binaires / 43

2 Arbres Arbres en informatique Intérêt structurer des informations selon un principe de division effectuer certains traitements de manière efficace (par exemple une recherche d information) FMIN220 (UM) Arbres binaires / 43

3 Arbres Un arbre est un graphe particulier Graphe Un graphe orienté G = (V, E) est un couple composé d un ensemble de noeuds / sommets V et d un ensemble d arcs E V V. Cet ensemble d arcs représente donc une relation entre les éléments de V. Un arc est un couple (s, t) Dans un graphe non orienté, V contient des paires {s, t plutôt que des couples et on parle d arêtes plutôt que d arcs FMIN220 (UM) Arbres binaires / 43

4 Arbres Un arbre est un graphe particulier Arbre, arborescence Un arbre est un graphe non orienté, connexe (on peut aller d un noeud à un autre par un chemin dans V) et dans lequel on ne trouve pas de cycle (aucun chemin ne part d un sommet pour y revenir) Un arbre enraciné est un arbre dans lequel on distingue l un des noeuds comme étant sa racine Une arborescence est un arbre orienté les feuilles sont les nœuds qui n ont qu un voisin FMIN220 (UM) Arbres binaires / 43

5 Arbre http ://www.cooncept.fr/ascent.php Arbres Arbre enraciné https ://krapooarboricole.wordpress.com/ Arborescence http ://espacemultimedia.cc-canton-rocheserviere.fr/ FMIN220 (UM) Arbres binaires / 43

6 Arbres Arbre de décision Arbre de décision arbres enracinés représenter de manière graphique une procédure de classification d un ensemble d objets modéliser une hiérarchie de tests sur des attributs des objets les nœuds internes sont étiquetés par les tests les arcs issus d un nœud correspondent aux réponses possibles les feuilles représentent les décisions (ou les classes dans lesquelles se rangent les objets) Arbre de décision binaire un nœud interne n a que deux successeurs, correspondant aux réponses "vrai" ou "faux" FMIN220 (UM) Arbres binaires / 43

7 Arbres Arbre de décision binaire FMIN220 (UM) Arbres binaires / 43

8 Arbres Apprentissage des arbres de décision binaire à partir d exemples vertébré (squel. interne) plumes poils coquille autruche x x canard x x lézard x musaraigne x x coccinelle saumon x escargot x crevette FMIN220 (UM) Arbres binaires / 43

9 Arbres Interface arbre de décision initiale Opérations du type abstrait p u b l i c i n t e r f a c e IADB<E> { b o o l e an e s t V i d e ( ) ; E g e t E t i q u e t t e ( ) ; IADB<E> g e t S o u s A r b r e V r a i ( ) ; IADB<E> getsousarbrefaux ( ) ; FMIN220 (UM) Arbres binaires / 43

10 Arbres p u b l i c ADB(E e t i q u e t t e, ADB<E> s o u s A r b r e V r a i, ADB<E> sousarbrefaux ) { t h i s. e t i q u e t t e = e t i q u e t t e ; t h i s. s o u s A r b r e V r a i = s o u s A r b r e V r a i ; t h i s. sousarbrefaux = sousarbrefaux ;.... FMIN220 (UM) Arbres binaires / 43 Classe arbre de décision p u b l i c c l a s s ADB<E> implements IADB<E> { p r i v a t e E e t i q u e t t e ; p r i v a t e ADB<E> s o u s A r b r e V r a i, sousarbrefaux ; p u b l i c ADB( ) { // c r e e un a r b r e v i d e p u b l i c ADB(E e t i q u e t t e ) { // c r e e une f e u i l l e t h i s. e t i q u e t t e = e t i q u e t t e ;

11 Arbres Classe arbre de décision p u b l i c c l a s s ADB<E> implements IADB<E> {.... p u b l i c b o olean e s t V i d e ( ) { r e t u r n t h i s. e t i q u e t t e==n u l l ; p u b l i c E g e t E t i q u e t t e ( ) { r e t u r n t h i s. e t i q u e t t e ; p u b l i c IADB<E> g e t S o u s A r b r e V r a i ( ) { r e t u r n t h i s. s o u s A r b r e V r a i ; p u b l i c IADB<E> getsousarbrefaux ( ) { r e t u r n t h i s. sousarbrefaux ; p u b l i c b o olean e s t F e u i l l e ( ) { r e t u r n t h i s. s o u s A r b r e V r a i==n u l l && t h i s. sousarbrefaux==n u l l ; FMIN220 (UM) Arbres binaires / 43

12 Arbres Classe arbre de décision Parcours d un arbre Enumérer les étiquettes dans un certain ordre un parcours en largeur énumère par niveaux Vertebre?-Plumes?- Coquille?-oiseau-Poils?-mollusque-arthropode-mammifere-poisson/reptileun parcours en profondeur énumère une branche avant de passer à la suivante suivant un ordre : préfixe (étiquette, gauche, droite) Vertebre?-Plumes?-oiseau-Poils?-mammifere-poisson/reptile- Coquille?-mollusque-arthropodesuffixe (gauche, droite, étiquette) oiseau-mammifere-poisson/reptile- Poils?-Plumes?-mollusque-arthropode-Coquille?-Vertebre?- infixe (gauche, étiquette, droite) oiseau-plumes?-mammifere-poils?- poisson/reptile-vertebre?-mollusque-coquille?-arthropode- FMIN220 (UM) Arbres binaires / 43

13 Arbres Classe arbre de décision Parcours préfixe d un arbre (étiquette, gauche, droite) p u b l i c S t r i n g t o S t r i n g ( ) { i f ( t h i s. e s t F e u i l l e ( ) ) r e t u r n ""+ t h i s. g e t E t i q u e t t e ( ) ; e l s e r e t u r n t h i s. g e t E t i q u e t t e ()+ " \n"+ t h i s. g e t S o u s A r b r e V r a i ( ). t o S t r i n g ()+ " \n"+ t h i s. getsousarbrefaux ( ). t o S t r i n g ( ) ; FMIN220 (UM) Arbres binaires / 43

14 Bornes Généricité bornée Contraintes sur le type passé en paramètre les objets du type doivent fournir certains services (opérations, plus rarement attributs) les objets du type correspondent à une certaine abstraction (copiables, peuvent être écrits dans un flux, etc.) FMIN220 (UM) Arbres binaires / 43

15 Bornes Arbre de décision interactif : classification d un objet public void classification() { if (!this.estvide()){ Scanner c = new Scanner(System.in) ; IADB<E> arbrecourant = this ; while (! arbrecourant.estfeuille()){ E etiquettecourante = arbrecourant.getetiquette() ; String reponse = etiquettecourante.interagit(c) ; if (reponse.equals("vrai")) arbrecourant = arbrecourant.getsousarbrevrai() ; else arbrecourant = arbrecourant.getsousarbrefaux() ; System.out.println("classe " + arbrecourant.getetiquette().tosring()) ; Posséder interagit(c) est une contrainte FMIN220 (UM) Arbres binaires / 43

16 Bornes Posséder une méthode interagit public interface ObjetInteractif { String interagit(scanner c); public abstract class NoeudInteractif { private String etiquette; public NoeudInteractif(String etiquette) {this.etiquette = etiquette; public String getetiquette() {return this.etiquette; public void setetiquette(string etiquette) {this.etiquette = etiquette; public String tosring(){return this.etiquette; FMIN220 (UM) Arbres binaires / 43

17 Bornes Posséder une méthode interagit public class NoeudQuestion extends NoeudInteractif { public NoeudQuestion(String etiquette) {super(etiquette); public String interagit(scanner c){ System.out.println("votre objet a-t-il la propriété" +this.getetiquette()); return c.next(); public class NoeudClasse extends NoeudInteractif { public NoeudClasse(String etiquette) {super(etiquette); public String interagit(scanner c) {return "pas d interaction avec ce noeud"; FMIN220 (UM) Arbres binaires / 43

18 Bornes Arbre de décision avec noeuds interactifs Une "borne" est donnée sur le paramètre de généricité public class ADBinteractif<E extends NoeudInteractif> extends ADB<E> { public ADBinteractif() { public ADBinteractif(E etiquette) {super(etiquette); public ADBinteractif(E etiquette, ADB<E> sousarbrevrai, ADB<E> sousarbrefaux) { super(etiquette,sousarbrevrai,sousarbrefaux); public void classification() {... String reponse = etiquettecourante.interagit(c);... FMIN220 (UM) Arbres binaires / 43

19 Bornes Arbre de décision avec noeuds interactifs public static void main(string[] args) { NoeudQuestion npo = new NoeudQuestion("Poils?"); NoeudQuestion npl = new NoeudQuestion("Plumes?"); NoeudQuestion ncoq = new NoeudQuestion("Coquille?"); NoeudQuestion nvert = new NoeudQuestion("Vertebre?"); NoeudClasse nmam = new NoeudClasse("mammifere"); NoeudClasse npois = new NoeudClasse("poisson/reptile"); NoeudClasse nois = new NoeudClasse("oiseau"); NoeudClasse nmoll = new NoeudClasse("mollusque"); NoeudClasse nart = new NoeudClasse("arthropode"); ADBinteractif<NoeudInteractif> m = new ADBinteractif<>(nmam); ADBinteractif<NoeudInteractif> pr = new ADBinteractif<>(npois); ADBinteractif<NoeudInteractif> o = new ADBinteractif<>(nois); ADBinteractif<NoeudInteractif> mo = new ADBinteractif<>(nmoll); ADBinteractif<NoeudInteractif> a = new ADBinteractif<>(nart); ADBinteractif<NoeudInteractif> po = new ADBinteractif<>(npo,m,pr); ADBinteractif<NoeudInteractif> pl = new ADBinteractif<>(npl,o,po); ADBinteractif<NoeudInteractif> c = new ADBinteractif<>(ncoq,mo,a); ADBinteractif<NoeudInteractif> v = new ADBinteractif<>(nvert,pl,c); v.classification(); FMIN220 (UM) Arbres binaires / 43

20 Bornes Bornes multiples L interface Serializable permet de sauvegarder les objets dans des fichiers binaires. public class ADBinteractif <E extends ObjetInteractif & Serializable> extends ADB<E> {... public interface IADB<E> extends Serializable {... public abstract class NoeudInteractif implements ObjetInteractif, Serializable {... FMIN220 (UM) Arbres binaires / 43

21 Bornes Bornes multiples L interface Serializable permet de sauvegarder les objets dans des fichiers binaires. ObjectOutputStream flots = new ObjectOutputStream (new FileOutputStream ("fichieradb2015.txt")); flots.writeobject(v); flots.close(); ObjectInputStream flote = new ObjectInputStream (new FileInputStream ("fichieradb2015.txt")); Object v1 = flote.readobject(); ADBinteractif<NoeudInteractif> arbrerecupere = (ADBinteractif<NoeudInteractif>) v1; flote.close(); System.out.println(v1); FMIN220 (UM) Arbres binaires / 43

22 Bornes Bornes dans les paramètres des méthodes Méthode pour mettre une étiquette dans une liste externe public void metetiquettedans(arraylist<e> coll){ coll.add(this.getetiquette()); public static void main(string[] args){ ADB<String> m = new ADB<>("mammifere"); //... ADB<String> v = new ADB<>("Vertebre?",pl,c); ArrayList<Object> liste_objets = new ArrayList<Object>(); v.metetiquettedans(liste_objets); Le main ne compile pas car dans ce contexte la méthode est : void metetiquettedans(arraylist<string> coll) FMIN220 (UM) Arbres binaires / 43

23 Bornes Bornes dans les paramètres des méthodes Solution en utilisant le caractère Joker? public void metetiquettedans(arraylist<? super E> coll){ coll.add(this.getetiquette()); public static void main(string[] args){ ADB<String> m = new ADB<>("mammifere"); //... ADB<String> v = new ADB<>("Vertebre?",pl,c); ArrayList<Object> liste_objets = new ArrayList<Object>(); v.metetiquettedans(liste_objets); Le main compile car dans ce contexte la méthode est : void metetiquettedans(arraylist<? super String> coll) FMIN220 (UM) Arbres binaires / 43

24 Bornes Bornes dans les paramètres des méthodes Méthode pour prendre une étiquette dans une liste externe public void prendetiquettedans(arraylist<e> coll){ this.setetiquette(coll.get(0)); public static void main(string[] args){ ADB<Object> m1 = new ADB<>("mammifere"); //... ADB<Object> v1 = new ADB<>("Vertebre?",pl1,c1); ArrayList<String> liste_strings = new ArrayList<String>(); v1.prendetiquettedans(liste_strings); Le main ne compile pas car dans ce contexte la méthode est : void prendetiquettedans(arraylist<object> coll) FMIN220 (UM) Arbres binaires / 43

25 Bornes Bornes dans les paramètres des méthodes Solution en utilisant le caractère Joker? public void prendetiquettedans(arraylist<? extends E> coll){ this.setetiquette(coll.get(0)); public static void main(string[] args){ ADB<Object> m1 = new ADB<>("mammifere"); //... ADB<Object> v1 = new ADB<>("Vertebre?",pl1,c1); ArrayList<String> liste_strings = new ArrayList<String>(); liste_strings.add("animaux?"); v1.prendetiquettedans(liste_strings); Le main compile car dans ce contexte la méthode est : void metetiquettedans(arraylist<? extends Object> coll) FMIN220 (UM) Arbres binaires / 43

26 Bornes Joker? Il permet de donner un super-type à toutes les invocations. ADB<String> m = new ADB<>("mammifere"); //... ADB<String> v = new ADB<>("Vertebre?",pl,c); ADB<Object> m1 = new ADB<>("mammifere"); //... ADB<Object> v1 = new ADB<>("Vertebre?",pl1,c1); // Aucune des affectations suivantes ne fonctionne v = v1; v1 = v; // Mais on peut écrire ADB<?> vjoker; vjoker = v1; vjoker = v; System.out.println(vjoker.prefixe()); // Reste impossible car dépend du type vjoker.setetiquette("animal?"); FMIN220 (UM) Arbres binaires / 43

27 Synthèse assertions et exceptions Conception par contrat - Types abstraits Techniques en Java Interfaces (types) Assertions (axiomes) Exceptions (préconditions) FMIN220 (UM) Arbres binaires / 43

28 Synthèse assertions et exceptions Assertions Rôle Vérification de propriétés (axiomes des types abstraits) Arrêt du programme en cas de non respect Peuvent être inhibées (pour réduire le coût d exécution) assert conditionquidoitetrevraie ; assert conditionquidoitetrevraie : objet ; FMIN220 (UM) Arbres binaires / 43

29 Synthèse assertions et exceptions Type abstrait Arbre de décision binaire Types ADB E Opérations composer(e étiquette, ADB vrai, ADB faux) : arbre sousarbrevrai() : ADB sousarbrefaux() : ADB estvide() : boolean getetiquette() : E FMIN220 (UM) Arbres binaires / 43

30 Synthèse assertions et exceptions Type abstrait Arbre de décision binaire Axiomes composer(e, v, f).valeur().getetiquette() = e composer(e, v, f).sousarbrevrai() = v composer(e, v, f).sousarbrefaux() = f composer(a.getetiquette(), a.sousarbrevrai(), a.sousarbrefaux()) = a (quand a.estvide()=false) FMIN220 (UM) Arbres binaires / 43

31 Synthèse assertions et exceptions Assertions pour représenter les axiomes Exemple d assertions sur la composition public ADB(E etiquette, ADB<E> sousarbrevrai, ADB<E> sousarbrefaux) { this.etiquette = etiquette; this.sousarbrevrai = sousarbrevrai; this.sousarbrefaux = sousarbrefaux; assert this.etiquette == etiquette : "pb init etiquette"; assert this.sousarbrevrai == sousarbrevrai : "pb init sousarbrevrai"; assert this.sousarbrefaux == sousarbrefaux : "pb init sousarbrevrai"; FMIN220 (UM) Arbres binaires / 43

32 Synthèse assertions et exceptions Assertions Bonnes pratiques invariant d algorithme à la fin de l itération i dans la recherche du minimum la variable min contient la plus grande valeur rencontrée entre 0 et i invariant de flux ce point de programme ne peut être atteint posconditions à la fin d une fonction de tri le tableau est trié invariants de classe une voiture a 4 roues FMIN220 (UM) Arbres binaires / 43

33 Synthèse assertions et exceptions Assertions Mauvaises pratiques Il ne faut pas.. vérifier les paramètres d une méthode à l aide d assertions car ces paramètres viennent d ailleurs et peuvent vraisemblablement être faux (donc ne pas sortir en échec, traiter plutôt le problème) vérifier les résultats d interactions avec un utilisateur (vont souvent comporter des erreurs, à traiter) créer d effets de bord, de modification de l état du programme avec les assertions (dans aucune des deux expressions) FMIN220 (UM) Arbres binaires / 43

34 Synthèse assertions et exceptions Assertions Sous eclipse, à mettre dans "Arguments / VM arguments" d une configuration (à créer) Activation Activation (désactivées par défaut car elles ont un certain coût) -ea sur certaines classes ou packages java ea :banque AppliTest Désactivation Désactivation -da Désactivation sur certaines classes ou packages java ea :banque -da :banque.comptebancaire AppliTest FMIN220 (UM) Arbres binaires / 43

35 Synthèse assertions et exceptions Exceptions Rôle classe qui représente une erreur à l exécution FMIN220 (UM) Arbres binaires / 43

36 Synthèse assertions et exceptions Exceptions Rôle classe qui représente une erreur à l exécution FMIN220 (UM) Arbres binaires / 43

37 Synthèse assertions et exceptions Exception Pratique Vérification des préconditions Etat de l objet (ne pas dépiler une pile vide) Valeur des paramètres (ne pas accepter un paramètre égal à -25 pour un âge) Vérification des interactions Une différence importante avec les assertions est qu une exception se rattrape ce qui permet d éviter un échec du programme FMIN220 (UM) Arbres binaires / 43

38 Synthèse assertions et exceptions Type abstrait Arbre de décision binaire Préconditions sousarbrevrai, sousarbrefaux et getetiquette() s appliquent seulement sur un arbre non vide FMIN220 (UM) Arbres binaires / 43

39 Synthèse assertions et exceptions Définition d une classe Exception A réaliser lorsqu une classe n est pas déjà présente dans l API Java pour représenter l exception public class ADBVideException extends Exception { public ADBVideException() { public ADBVideException(String message) { super("adb vide" + message); FMIN220 (UM) Arbres binaires / 43

40 Synthèse assertions et exceptions Déclaration de signalement Pour les exceptions qui ne sont pas sous-classes de RuntimeException et Error Dire que getetiquette() peut être interrompue par une exception de type ADBVideException Déclaration avec throws public E getetiquette() throws ADBVideException { //... Toute autre méthode qui appelle getetiquette doit à son tour déclarer ou capturer l exception FMIN220 (UM) Arbres binaires / 43

41 Synthèse assertions et exceptions Signalement Instruction throw public E getetiquette() throws ADBVideException { if (this.estvide()) throw new ADBVideException("pb dans getetiquette"); return this.etiquette; FMIN220 (UM) Arbres binaires / 43

42 Synthèse assertions et exceptions Capture Structure de contrôle try{..instructions.. catch(..paramètre..){..instructions.. try{ ADB<String> m2 = new ADB<>(); System.out.println(m2.getEtiquette()); catch(exception e) { System.out.println("erreur : "+e.getmessage()); System.out.println("le programme reprend ici"); FMIN220 (UM) Arbres binaires / 43

43 Synthèse assertions et exceptions Capture Structure de contrôle try{... catch(...){... ADB<String> m2; try{ m2 = new ADB<>(); System.out.println(m2.getEtiquette()); catch(adbvideexception e) { m2 = new ADB<>("Question générale?"); System.out.println(m2.getEtiquette()); catch(exception e) {System.out.println("erreur : "+e.getmessage()); System.out.println("le programme reprend ici"); FMIN220 (UM) Arbres binaires / 43

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector l tutorial Interfaces. l Stack

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

2. lancer (throw) une exception consiste à la signaler

2. lancer (throw) une exception consiste à la signaler Cours 7 Exceptions 1 1. Une exception est un signal qui indique que quelque chose d'exceptionnel (par exemple une erreur) s est produite qui interrompt le flot d exécution normal du programme 2. lancer

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

LES FICHIERS. 1-169169 JAVA Christine BONNET

LES FICHIERS. 1-169169 JAVA Christine BONNET 12 LES FICHIERS 1-169169 JAVA Christine BONNET LES FLOTS Package java.io La gestion des E/S s'effectue à l'aide des flots. Un stream (flot) représente un canal de communication ( écran, fichier, pipe,

Plus en détail

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Chapitre 7. Exceptions

Chapitre 7. Exceptions Chapitre 7 Exceptions 1 Exceptions en Java Séparation exécution normale/gestion des erreurs Inspiration : C++ et Ada Un composant peut : prendre en charge le problème signaler le problème en levant une

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 7 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Facult e des Sciences - Univ. Artois Janvier 2011 Exceptions

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Flux de données Lecture/Ecriture Fichiers

Flux de données Lecture/Ecriture Fichiers Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP RMI : Remote Method Invocation Appel de méthodes à distance TD/TP Patrice Torguet torguet@irit.fr Université Paul Sabatier But l But du TD/TP : application répartie permettant de gérer des comptes bancaires.

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13 Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 GUILLAUME HANROT ET JEAN-JACQUES LÉVY On se propose de résoudre le problème de l affectation de k tâches à n employés (k > 0, n >

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

1 ère PARTIE : COURS (sans document) Durée: 1h15

1 ère PARTIE : COURS (sans document) Durée: 1h15 Examen 1 ère session 2012-2013 page 1 NFA 032 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 032 Mercredi 25 Juin 2014 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session NFA

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Arbres Binaires de Recherche : Introduction

Arbres Binaires de Recherche : Introduction Arbres Binaires de Recherche : Introduction I. Guessarian cours ISN 11 janvier 2012 LIAFA, CNRS and University Paris Diderot 1/13 Arbre Binaire de Recherche Un Arbre Binaire de Recherche (ABR) est un arbre

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Sérialisation sur le système de fichiers. Gestion des exceptions en Java.

Sérialisation sur le système de fichiers. Gestion des exceptions en Java. Sérialisation sur le système de fichiers. Gestion des exceptions en Java. Christophe Gravier, Frédérique Laforest, Julien Subercaze Télécom Saint-Étienne Université Jean Monnet {pnom.nom}@univ-st-etienne.fr

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

Programmation Java Avancée

Programmation Java Avancée Programmation Java Avancée Module RPCI01 Département R&T IUT de Villetaneuse 2 novembre 2015 Département R&T Programmation Java Avancée 2 novembre 2015 1 / 74 Plan du cours 1 La gestion des exceptions

Plus en détail

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe...

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... Une classe hérite d'une autre classe par le biais du mot clé extends. Une classe ne peut hériter

Plus en détail

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 II. Programmation par objet 1. Motivation 2. Encapsulation 3. Héritage 4. Initiation à la modélisation

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

Les exceptions en Java

Les exceptions en Java Chapitre 6 Les exceptions en Java Lorsqu on conçoit un programme, on essaie évidemment qu il soit correct, c est-à-dire qu il fonctionne parfaitement dans les conditions prévues de son utilisation. L utilisateur

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1 Cours 13 Les classes abstraites Les méthodes abstraites Les interfaces F. Gayral 1 Un exemple pour mieux comprendre Pas d'instanciation d'un humain : un humain, c'est - soit un homme - soit une femme Humain

Plus en détail

Aspects Objets avancés dans le langage Java

Aspects Objets avancés dans le langage Java POO Programmation Impérative Programmation orientée Objet et modélisation UML Aspects Objets avancés dans le langage Java Collections Concepts Objet Avancés Apis Exception classes abstraites Interface

Plus en détail

Programmation Orientée Objet. Exceptions et assertions

Programmation Orientée Objet. Exceptions et assertions Programmation Orientée Objet Exceptions et assertions Julien Provillard http://www.i3s.unice.fr/~provilla/poo/ julien.provillard@unice.fr Robustesse et Exceptions Error, RuntimeException Exceptions (non)

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

Plus en détail

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION Patrick Bellot Télécom ParisTech telecom-paristech.fr 2009 1 Une Calculatrice Électronique 2 3 Notation polonaise inversée Notation infixée

Plus en détail

Projet. Coloration lexicale et indentation de code Java

Projet. Coloration lexicale et indentation de code Java Université Paris Diderot Programmation Orientée Objet L3 Année 2011-2012 Projet Coloration lexicale et indentation de code Java Le but de ce projet est de développer un programme qui prend en entrée un

Plus en détail

cours 4 : programmes fiables

cours 4 : programmes fiables cours 4 : programmes fiables généricité assertions généricité généricité généricité généricité possibilité d écrire des classes paramétrées par d autres classes permet de : écrire un code dépendant d un/de

Plus en détail

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Programmation récursive

Programmation récursive Année 2004-2005 F. Lévy IUT De Villetaneuse Dép t informatique Cours d'algorithmique 2 éme Année Cours 8 Programmation récursive 1. Qu'est-ce que la programmation récursive Définition : la programmation

Plus en détail

POO LES EXCEPTIONS LES EXCEPTIONS

POO LES EXCEPTIONS LES EXCEPTIONS CHAPITRE 7 : LES EXCEPTIONS Objectifs spécifiques 1. Introduire la notion d exception, les règles d utilisation et de définition des exceptions. 2. Distinguer entre les exceptions prédéfinies et les exceptions

Plus en détail

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe CLASSES, INSTANCE,MÉTHODES,... CLASSE EN JAVA, PAS À PAS UTILISER DES CLASSES: C O=NEW C() UTILISER LES MÉTHODES: O.M() UNE CLASSE AVEC PLUSIEURS CONSTRUCTEURS LA SURCHARGE DES

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

this Vs. static Introduction Utilisation de this

this Vs. static Introduction Utilisation de this Introduction this Vs. static Si vous avez essayé d écrire d importants programmes Java multi-classes, vous avez certainement eu des problème de communication entre plusieurs classes. Pour appeler à partir

Plus en détail

Cours JAVA : La fiabilité en Java

Cours JAVA : La fiabilité en Java Cours JAVA : La fiabilité en Java Version 1.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle DANT - 2015/2016

Plus en détail

Solutions du chapitre 14

Solutions du chapitre 14 Solutions du chapitre 14 Traitement des exceptions 14.16 Sous quelles circonstances utiliseriez-vous l instruction suivante? catch ( Exception e ) { throw e; } Cette instruction sert à capturer toute exception

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

API pour XML. Mihaela JUGANARU-MATHIEU mathieu@emse.fr. février 2012. École Nationale Supérieure des Mines de St Etienne.

API pour XML. Mihaela JUGANARU-MATHIEU mathieu@emse.fr. février 2012. École Nationale Supérieure des Mines de St Etienne. API pour XML Mihaela JUGANARU-MATHIEU mathieu@emse.fr École Nationale Supérieure des Mines de St Etienne février 2012 Les outils pour traiter XML (validation, navigation, interrogation) sont puissants

Plus en détail

Les arbres Florent Hivert

Les arbres Florent Hivert 1 de 1 Algorithmique Les arbres Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 1 Algorithmes et structures de données La plupart des bons algorithmes fonctionnent

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 82 Chapitre 5 Programmation orientée objet Amélie Lambert 2014-2015 2 / 82 Plan du cours Analyse, conception et programmation Orientée

Plus en détail

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche N.E. Oussous oussous@lifl.fr FIL USTL SDC - Licence p.1/16 Arbres binaires de recherche Un arbre binaire T est un arbre binaire

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions.

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions. Exception en Java. Exception en Java....1 Le principe général des exceptions...1 La syntaxe des exceptions....1 La hiérarchie des exceptions:...2 Exemple d'exception....3 Exception et signature de service....4

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Java Licence professionnelle CISI 2009-2010

Java Licence professionnelle CISI 2009-2010 Java Licence professionnelle CISI 2009-2010 Cours 10 : Type générique (c) http://manu.e3b.org/java/tutoriels/avance/generique.pdf 1 Introduction La programmation générique - nouveauté la plus significative

Plus en détail

ITI 1521. Introduction à l informatique II

ITI 1521. Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 14 mars 2011 Résumé Listes chaînées (partie 2) Pointeur arrière Listes doublement

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

ENSTA : cours IN204 Introduction à JAVA et UML

ENSTA : cours IN204 Introduction à JAVA et UML ENSTA : cours IN204 Introduction à JAVA et UML Thierry Bommart DASSAULT AVIATION DGT/DPR/EOS thierry.bommart@dassault-aviation.fr 01.47.11.54.93 Page : 1 Plan Ecole Nationale Supérieure de Techniques Avancées

Plus en détail

Chap. VII : arbres binaires

Chap. VII : arbres binaires Chap. VII : arbres binaires 1. Introduction Arbre : collection d objets avec une structure hiérarchique Structure intrinsèque descendants d une personne (elle incluse) A ascendant connus d une personne

Plus en détail

Collections : Tables associatives

Collections : Tables associatives Table associative Collections : Tables associatives Théorie et pratique de la programmation Michel Schinz 2013-03-18 Rappel : une table associative ou dictionnaire (map ou dictionary en anglais) est une

Plus en détail

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013 Nom : Prénom : Contrôle continu n 4 Programmation objet Vous devez répondre dans les cadres aux questions posées. Documents de cours et notes personnelles autorisés. Téléphones portables, ordinateurs et

Plus en détail

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés

Contrôle sur papier. INF441 Modex Programmation efficace juin 2010. 1. Photo de dés Contrôle sur papier INF441 Modex Programmation efficace juin 2010 1. Photo de dés Plusieurs dés ont été lancés sur une table, et une photo a été pris de haut. Cette photo est représentée par une matrice.

Plus en détail

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions Java Java Modeling Language (JML) Arnaud LANOIX Université Nancy 2 Master1 GL Langage de Programmation Orientée Objet développé par Sun Projet OAK (1991), Java (1995),...Java 1.5 (2004) http://java.sun.com/

Plus en détail

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les exceptions Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction Supposez que vous écrivez un programme qui accède

Plus en détail

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1 Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Concept de classes (1) Classes et objets en Java Master Informatique 1 ère année. Concept de classes (2) Concept de classes (3)

Concept de classes (1) Classes et objets en Java Master Informatique 1 ère année. Concept de classes (2) Concept de classes (3) Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Classes et objets en Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

HMIN111M Programmation en Java. Un aperçu des classes

HMIN111M Programmation en Java. Un aperçu des classes HMIN111M Programmation en Java Un aperçu des classes 1. Limites des types primitifs Programme de gestion des comptes bancaires 2 comptes par exemple (on ne connait pas les tableaux) Une classe Banque qui

Plus en détail

Correction DS Java 2005 Classe Produit Classe CD

Correction DS Java 2005 Classe Produit Classe CD Correction DS Java 2005 Classe Produit public abstract class Produit { private static int derniernumeroproduit = 1; private int numeroproduit; // Le prix hors taxe du produit private double prix; //Le

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail