1 Les arbres binaires en Java

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "1 Les arbres binaires en Java"

Transcription

1 Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours. 1 Les arbres binaires en Java L orientation Objet de Java impose de compliquer légèrement la structure des pointeurs qui décrivent les arbres binaires. En effet, avec les déclarations générales données dans le cours : type T_arbre = pointeur sur T_noeud T_noeud = article : T_élément gauche, droite = T_arbre finarticle procédure insérer (donnée-résultat a : T_arbre, x : T_élément) début si a = alors a = nouveau (x,, ) sinonsi x a. alors insérer (a.gauche, x) sinon { x > a. insérer (a.droite, x) fin la transmission en donnée-résultat est essentielle lors de la première 1 insertion dans un arbre vide (qui est représenté par le pointeur ). Mais ce mode de transmission n existe pas en Java et on ne peut pas non plus s en sortir avec une fonction d instance du style : Tree insert (Element x) { if (this == null) return new Tree(x, null, null) ; else { if (x.compareto(content) <= 0) left = left.insert(x) ; else right = right.insert(x) ; return this ; qui, avec la plus grande naïveté, suppose qu une expression comme null.insert(x) possède le moindre sens! 1. Dans les insertions suivantes, a n est plus modifié. 1

2 Comme vous l avez déjà vu avec les listes chaînées et pour les mêmes raisons il faudra donc mettre à distance la racine de l arbre et disposer de deux classes, une classe Node qui s occupe de gérer tout ce qui est récursif (chaque nœud a deux sous-nœuds) et où les références null jouent leur rôle normal de marqueurs d inexistence, et une classe Tree qui gère un nœud unique, la racine. Un arbre vide ne sera donc pas un arbre inexistant (il ne vaudra pas null) mais un arbre sans (sa racine vaudra null). Mais, à la différence de ce que vous avez vu avec les listes, et pour vous apprendre un peu plus de Java, on ne mettra pas ces deux classes dans des fichiers distincts car, somme toute, la classe Node ne présente aucun intérêt en dehors de la classe Tree (elle n est pas réutilisable ailleurs). On le déclarera donc en classe interne, à l intérieur du fichier BinaryTree.java ; on la déclarera naturellement private mais aussi static car cette classe est commune à tous les arbres et pas à une instance particulière. En plus de cette localisation logique, un intérêt de cette présentation sera l inutilité de définir des accesseurs pour les attributs de Node : étant à la maison, ils seront accessibles dans l ensemble de la classe Tree! Le compilateur considèrera cependant cette classe comme une entité à part entière et, quand vous compilerez le fichier BinaryTree.java, vous verrez que, outre BinaryTree.class, il produira un fichier BinaryTree$Node.class qui contiendra le code de la classe Node ainsi que ses liens d import/export. Pour résumer, ces déclarations seront simplement équivalentes à la déclaration dans le même programme des types : type T_noeud = pointeur sur T_descripteurDeNoeud T_descripteurDeNoeud = article : T_élément gauche, droite = T_noeud finarticle T_arbre = pointeur sur T_descripteurDeArbre T_descripteurDeArbre = article racine : T_noeud finarticle Et l insertion se fera au moyen de deux procédures, l une récursive au niveau des nœuds : procédure insérersousnoeud (données a : T_noeud, x : T_élément) { Antécédent : a début si x a. alors si a.gauche = alors a.gauche nouveau(x,, ) sinon insérersousnoeud(a.gauche, x) sinon { x > a. si a.droite = alors a.droite nouveau(x,, ) sinon insérersousnoeud(a.droite, x) fin l autre, non récursive, au niveau des arbres, démarrant simplement le processus : 2

3 procédure insérer (données t : T_arbre, x : T_élément) { Antécédent : t initialisé (t ) début si t.racine = alors { arbre vide t.racine nouveau(x,, ) sinon { arbre non vide insérersousnoeud(t.racine, x) fin où l on remarque que toutes les transmissions se font maintenant sur le mode donnée. Un schéma mettra en évidence cette technique «Objet» de mise à distance de la racine. On montre deux états du chaînage à partir d une variable t de type T_arbre : arbre non vide t arbre vide t racine racine Isabelle gauche droite Frédéric gauche droite Patricia gauche droite Dimitri gauche droite Irène gauche droite Vlad gauche droite 2 Statistiques sur les arbres Le squelette qui vous est fourni dans le fichier BinaryTree.java contient des moyens d évaluation du nombre de nœuds d un arbre. Vous pouvez constater que ces moyens sont constitués de deux méthodes d instance nbnodes : l une dans la classe Node, récursive et pri- 3

4 vée, l autre dans la classe Tree, globale et exportée, doit traiter à part le cas root == null (car null.nbnodes() n aurait aucun sens) mais reste une méthode d instance car, dès qu il existe en tant qu objet, un arbre, même vide, ne vaut jamais null. a. Sur le même modèle, écrivez des méthodes height qui calculent la hauteur et nbleaves qui comptent le nombre de feuilles. 3 Arbres binaires de consultation Ces arbres, qu on appelle parfois en abrégé «BST» (Binary Search Tree) satisfont une condition récursive forte sur la répartition des clefs, condition simple 2 mais qu il n est pas si facile d écrire avec justesse : b. (difficile, donc facultatif) Faites renvoyer un résultat exact à la méthode isbst de la classe Node. Cependant, ce test n est pas ici un réel problème puisque, ne pouvant fabriquer des arbres qu avec le constructeur d arbre vide et des utilisations successives de la méthode insert, on est assuré que la condition est satisfaite 3! Les méthodes d insertion, simples traductions des algorithmes donnés dans la première section, ainsi que les méthodes de recherche figurent dans le squelette fourni mais ces dernières présentent une bizarrerie qu il faudrait bien expliquer. c. (subtil) Quelle est cette bizarrerie? 4 Les parcours d arbres Java propose un mécanisme général pour parcourir toute collection d objets comme tableaux, listes ou arbres. Il consiste à associer à chaque collection un objet qu on appelle une «énumération» ou un «itérateur». Cet objet sera une instance d une classe qui proposera trois outils de base : un constructeur «initialise l énumération» qui prend la collection en argument ; une méthode d instance «il y en a encore» qui renvoie vrai si le parcours n est pas terminé ; une méthode d instance «donne le prochain» qui renvoie le composant suivant et, par effet de bord, le retire de l énumération. Il devra bien sûr exister une telle classe pour chaque type de collection (listes et arbres ne se parcourent pas de la même façon) mais, comme elles proposeront toutes les outils ci-dessus, on trouve pratique de les considérer comme héritières d un même modèle de classe afin de fixer une fois pour toutes les noms de leurs méthodes d instance. Cette notion de modèle de classe existe en Java sous le nom de interface et l API de Java en propose deux pour le parcours des collections : Enumeration et Iterator. Vous pourrez les chercher dans l API mais voici la déclaration de la plus simple d entre elles : public interface Enumeration { public boolean hasmoreelements () ; public Object nextelement () ; 2. Toutes les clefs du sous-arbre gauche sont inférieures à la clef de la racine, elle-même inférieure à toutes les clefs du sous-arbre droit. 3. Ce ne sera quand même pas inutile de disposer d une méthode isbst quand, plus tard, on se livrera à de l arboriculture plus tordue et qu on voudra vérifier qu on ne fait pas n importe quoi! 4

5 Et, pour qu une classe MyEnumeration hérite de ce modèle, il suffira qu elle soit déclarée de la façon suivante : public class MyEnumeration implements Enumeration { // Attribut // (souvent une collection partielle intermédiaire) public MyEnumeration (...) { // corps du constructeur : initialise l attribut // à partir de la collection passée en paramètre public boolean hasmoreelements () { // corps : l attribut est-il vide? public Object nextelement () { // corps : retire un élément de l attribut // en ajoute éventuellement d autres // et renvoie l élément retiré Enfin, pour faire le parcours d une collection en traitant chaque élément, il suffira, utilisant complètement la notion d héritage, d écrire : Enumeration foo = new MyEnumeration(myCollection) ; while (foo.hasmoreelements()) deal(foo.nextelement()) 4.1 Parcours en profondeur Les trois parcours d arbre en profondeur, préfixe, infixe et postfixe, ne donneront pas lieu à exercices puisqu on fait simplement de la récupération. En effet, la classe Vector que vous connaissez déjà propose une méthode d instance elements() qui renvoie un objet de type Enumeration. Il nous suffira donc de recopier un BinaryTree dans un Vector, ce que font récursivement les méthodes fillprefixed, fillinfixed et fillpostfixed de la classe Node et d appeler simplement la méthode elements() sur ce vecteur pour obtenir les trois énumérations dans la classe BinaryTree. Regardez comment on fait et comment ces énumérations sont utilisées dans la classe TestBinaryTree. 4.2 Parcours en largeur Malheureusement, la technique ne marche plus pour le parcours en largeur car on ne voit pas bien comment recopier un arbre dans un vecteur en suivant cet ordre bizarre qui ne cesse de sauter de branche en branche! La solution est d utiliser une file d attente comme collection intermédiaire, file d attente qui varie au cours de l énumération. Les diverses façons d implémenter la notion de file d attente n ont pas encore été traitées en cours mais vous avez déjà fait la queue à la poste ou attendu chez le dentiste et vous connaissez bien le principe : on quitte la file quand on est devenu le premier et, quand on arrive, on se met en dernier! Une classe Queue qui implémente 4 cette notion vous est 4. On a choisi une implémentation (avec des pointeurs) un peu sophistiquée pour que vous ne soyiez pas tentés de vous y intéresser pour l instant! 5

6 fournie dans les Documents de cours avec ses trois méthodes d instance isempty, enqueue (arriver) et dequeue (sortir) et vous n aurez aucune difficulté à l utiliser. L algorithme du parcours en largeur est alors le suivant : initialisation: on crée une queue vide on y met la racine de l arbre à chaque étape : on fait sortir le premier (c est lui qui sera renvoyé) ; on met à la queue son sous-nœud gauche et son sous-nœud droit (ils attendront que la fin du niveau supérieur et le début de leur niveau soient sortis pour sortir à leur tour). Pour changer un peu (et parce que ses méthodes ont des noms plus simples) on a choisi d utiliser le modèle de classe Iterator pour définir une classe BreadthIterator. Comme la classe Node, elle sera interne à la classe BinaryTree, privée (elle ne sert que là) et statique (il n y en a pas une pour chaque instance d arbre mais une seule, commune à tous les arbres). d. Implémentez la classe BreadthIterator et la méthode breadthtraversal de telle sorte que les lignes 50 à 54 de la classe TestBinaryTree fassent leur travail. Vous vous servirez du schéma général d implémentation et de l algorithme donnés plus haut. Remarque : En allant regarder dans l API pour savoir ce qu il faut mettre dans cette classe vous verrez qu un objet Iterator permet aussi de supprimer des éléments de la collection pendant le parcours. Comme il est hors de question de le faire ici, vous utiliserez pour cette méthode l implémentation suivante qui coupera court à toute mauvaise tentation : public void remove () { throw new UnsupportedOperationException(" removing not allowed ") ; 5 Squelette Le squelette, trop long pour être reproduit ici est composé de quatre classes : Queue : outil du parcours en largeur, elle n est pas à étudier : vous pourrez y revenir plus tard quand vous aurez eu le cours sur les files d attente ; Key : elle encapsule la notion générale de clef et en donne une implémentation avec des chaînes de caractères : utilisée par les classes suivantes, elle ne donne lieu à aucun exercice ; BinaryTree : c est votre classe de travail, beaucoup est fourni (mais à étudier et comprendre) et il ne reste que quelques trous à combler... TestBinaryTree : elle vous permettra de tester votre travail ; il vous suffira de retirer les marques de commentaires au fur et à mesure que vous aurez écrit les méthodes correspondantes. Toutes ces classes sont compilables et TestBinaryTree est exécutable en l état. 6

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

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

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

Objets Avancées Semestre 3 Année 2015-2016. Projet

Objets Avancées Semestre 3 Année 2015-2016. Projet Conception et Programmation IUT d Aix-Marseille Dép. INFO Aix Objets Avancées Semestre 3 Année 2015-2016 Projet André Abramé - andre.abrame@univ-amu.fr Sophie Nabitz - sophie.nabitz@univ-avignon.fr Petru

Plus en détail

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique 1er juin 2007 Durée : 3 heures. Seule la documentation des classes java.util.list et java.util.arraylist distribuée est autorisée.

Plus en détail

Catégories, extensions et sécurité

Catégories, extensions et sécurité 11 Catégories, extensions et sécurité Au sommaire de ce chapitre Catégories Extensions Contrôle des accès aux variables d instance Contrôle des accès aux méthodes Espaces de noms Sécurité Appeler des fonctions

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

PC* Structure de pile

PC* Structure de pile Structure de pile I. Définition........................................... 2 I.1 Introduction..................................... 2 I.2 Opérations caractérisant une structure de pile...................

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Analyse lexicale 2014-2015

Analyse lexicale 2014-2015 Analyse (lexicale, syntaxique) L3 MIAGE Analyse lexicale Université de Lille, France 2014-2015 1 Rappels Rôle de l analyse lexicale Outils 2 Mise en oeuvre Lexème Vers l analyseur syntaxique Codage d un

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit :

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit : UNIVERSITÉ DE MONTRÉAL FACULTÉ DES ARTS ET DES SCIENCES DIRECTION DE L ENSEIGNEMENT DE SERVICE EN INFORMATIQUE COURS : IFT 1170 EXAMEN INTRA DATE : 4 juin 2009 CHARGÉ DE COURS : Michel Reid DURÉE : 2 heures

Plus en détail

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR Créer une simple application Java avec ECLIPSE Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l IDE

Plus en détail

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

TP banque. On se propose d'utiliser la classe Compte (cf. TP Comptes) afin de gérer également les mouvements bancaires.

TP banque. On se propose d'utiliser la classe Compte (cf. TP Comptes) afin de gérer également les mouvements bancaires. TP banque Auteur : Xavier Coelembier On se propose d'utiliser la classe Compte (cf. TP Comptes) afin de gérer également les mouvements bancaires. Pour commencer, vous aller récupérer la classe Compte (légèrement

Plus en détail

Prendre un bon départ

Prendre un bon départ Chapitre A Prendre un bon départ 1 - Avant-propos Un ordinateur sait très bien faire deux choses : Calculer, d oùle nomcomputer en anglais que l on pourrait traduire par calculateur. Placer des données

Plus en détail

Logiciel de statistiques pour le Volley-ball

Logiciel de statistiques pour le Volley-ball Lucas society Logiciel de statistiques pour le Volley-ball Partie Modèle Anthony 13 Table des matières I) Préambule...2 1) Motivation...2 2) Contrainte...2 II) Introduction...3 1) Le travail en équipe...3

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

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Informatique PLAN DE COURS. Programmation structurée 420-414-GR 1-3-2. Hiver 2011

Informatique PLAN DE COURS. Programmation structurée 420-414-GR 1-3-2. Hiver 2011 Informatique PLAN DE COURS Programmation structurée 420-414-GR 1-3-2 Hiver 2011 Jie Yang Bureau : A-312 Téléphone : 372-6614 ext. 1525 jyang@cegepgranby.qc.ca www.cegepgranby.qc.ca PRÉSENTATION Ce cours

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Plate-forme de formation Moodle Manuel de l'enseignant

Plate-forme de formation Moodle Manuel de l'enseignant Premiers pas SIME Plate-forme de formation Moodle Manuel de l'enseignant Présentation 3 Vous souhaitez créer un cours sur Moodle. 4 Première inscription sur la plate-forme Moodle 4 Modifier votre profil.

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

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

INF 431, COMPOSITION D INFORMATIQUE. Partie I, Ensembles de chaînes

INF 431, COMPOSITION D INFORMATIQUE. Partie I, Ensembles de chaînes INF 431, OMPOSITION INFORMTIQU Luc Maranget et Nicolas Sendrier 2 mai 2007 Partie I, nsembles de chaînes Le but de cette partie est la réalisation d une classe StringSet des ensembles de chaînes qui suit

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

Groupe Eyrolles, 2006, ISBN : 2-212-11771-X

Groupe Eyrolles, 2006, ISBN : 2-212-11771-X Groupe Eyrolles, 2006, ISBN : 2-212-11771-X Création de pages dynamiques courantes CHAPITRE 3 169 Figure 3-39 La boîte de dialogue de l objet Liste/Menu permet de configurer les options de l affichage

Plus en détail

Créer des documents XML

Créer des documents XML 1 Créer des documents XML La spécification XML définit comment écrire un document au format XML. XML n est pas un langage en lui-même mais, en revanche, un document XML est écrit dans un langage à balises

Plus en détail

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Critères de sélection pour remplir un panier de lecteurs Explications

Critères de sélection pour remplir un panier de lecteurs Explications A.-M. Cubat Onglet Circulation Paniers de lecteurs Page 1 Critères de sélection pour remplir un panier de lecteurs Explications 1. au moins un emprunt depuis jusqu à aujourd hui 2. au moins un emprunt

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

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

Cours/TD n 3bis : les boucles

Cours/TD n 3bis : les boucles Cours/TD n 3bis : les boucles Découpons le problème Nous avons plusieurs utilisations des boucles C est précisément ce qui rend difficile leur création. Vu la difficulté, nous allons séparer les différentes

Plus en détail

Devoir Surveillé informatique MP, PC, PSI

Devoir Surveillé informatique MP, PC, PSI NOM : Classe : Devoir Surveillé informatique MP, PC, PSI L utilisation des calculatrices n est pas autorisée pour cette épreuve. Le langage de programmation choisi est Python. L espace laissé pour les

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données 1.1 Algorithmique et Structures de Données Jean-Charles Régin Licence Informatique 2ème année 1.2 Itérations Jean-Charles Régin Licence Informatique 2ème année Itération : définition 3 En informatique,

Plus en détail

Université Joseph Fourier UFR IMA Module Système. TP Systèmes n 1 Programmation concurrente

Université Joseph Fourier UFR IMA Module Système. TP Systèmes n 1 Programmation concurrente TP Systèmes n 1 Programmation concurrente Titre Simulation du comportement de processus producteurs et de processus consommateurs avec tampon intermédiaire borné. Organisation Binôme Durée de réalisation

Plus en détail

LEI FRANCHE-COMTÉ. Gestion des disponibilités et mises à jour des fiches par les prestataires. (Support mis à jour le 30 septembre 2015)

LEI FRANCHE-COMTÉ. Gestion des disponibilités et mises à jour des fiches par les prestataires. (Support mis à jour le 30 septembre 2015) LEI FRANCHE-COMTÉ Gestion des disponibilités et mises à jour des fiches par les prestataires (Support mis à jour le 30 septembre 2015) LEI FRANCHE-COMTÉ : Gestion des disponibilités et MAJ par les prestataires

Plus en détail

TP n 5 - Correction. IUP2 Année 2004-2005

TP n 5 - Correction. IUP2 Année 2004-2005 Université Paris 7 Programmation objet IUP2 Année 2004-2005 TP n 5 - Correction Héritage Exercice 1 Le cas d école modifié 1. Ecrivez une classe Figure. Cette classe a des attributs privés abcisse et ordonnée,

Plus en détail

Programmation : Exercices

Programmation : Exercices Programmation : Exercices IUT de Villetaneuse R&T 1 ère année Laure Petrucci 6 novembre 2007 1 Premiers programmes Exercice 1.1 : Machine à dessiner On souhaite écrire un programme pour afficher des dessins.

Plus en détail

Gestion centralisée des utilisateurs locaux. (Compatible avec Magret 6.4x, Magret 7 et Magret 8)

Gestion centralisée des utilisateurs locaux. (Compatible avec Magret 6.4x, Magret 7 et Magret 8) Gestion centralisée des utilisateurs locaux. (Compatible avec Magret 6.4x, Magret 7 et Magret 8) Cet outil permet de créer des utilisateurs locaux. modifier les mots de passe des utilisateurs locaux. Cet

Plus en détail

Implémentation dans Active Tags d'un module Web pour XUnit

Implémentation dans Active Tags d'un module Web pour XUnit Implémentation dans Active Tags d'un module Web pour XUnit Table des matières 1. Introduction... 2 2. Application Web interactive en Reflex... 2 3. Module Web pour XUnit... 3 3.1. Principes... 3 3.2. Implémentation

Plus en détail

INTRODUCTION À OMP PROBLÈME D USINAGE 1 Préambule

INTRODUCTION À OMP PROBLÈME D USINAGE 1 Préambule 1 Préambule 1 sur 7 Le logiciel OMP est un produit de OM Partners. Le version mise à disposition est la version 9.27. OMP comporte : un compilateur de modèles et de données ; un optimiseur ; un générateur

Plus en détail

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 Ce qu il faut rendre : A la fin du TP il faudra archiver et compresser l ensemble de votre travail (y compris le rapport avec vos noms) avec la commande

Plus en détail

Manuel d utilisation du logiciel «Extracteur d équations»

Manuel d utilisation du logiciel «Extracteur d équations» Manuel d utilisation du logiciel «Extracteur d équations» Ce logiciel a pour but d aider les élèves à vérifier leurs réponses en ce qui a trait aux circuits RLC, dans le domaine «s», ainsi qu à faire l

Plus en détail

TUTORIAL : Créer le setup d un programme VB 6

TUTORIAL : Créer le setup d un programme VB 6 TUTORIAL : Créer le setup d un programme VB 6 NIVEAU : INITIES Pré requis pour comprendre ce tutorial : - Connaître les fichiers nécessaires à l installation d un programme VB - Connaître le système de

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

Commission Réseau Sémantique Universel Étude de cas n 1 : routage postal

Commission Réseau Sémantique Universel Étude de cas n 1 : routage postal Commission Réseau Sémantique Universel Étude de cas n 1 : routage postal La meilleure méthode pour mettre au point une méthode étant de la tester sur le plus grand nombre possible de cas concrets, voici

Plus en détail

Créer un document maître Word à partir de plusieurs documents

Créer un document maître Word à partir de plusieurs documents Créer un document maître Word à partir de plusieurs documents Il vous arrive de créer de longs documents Word? Pour vous y retrouver plus facilement, il est souvent plus pratique de les couper en plusieurs

Plus en détail

Génie Logiciel Industriel - Travaux pratiques

Génie Logiciel Industriel - Travaux pratiques - Travaux pratiques TP1 : Recherche par dichotomie I. Introduction. L objectif de ce TP est de mettre en pratique des notions de base du langage C (entrées/sorties, structure de contrôle, fonctions, ).

Plus en détail

Licence Bio Info Année 2004-2005. Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur

Licence Bio Info Année 2004-2005. Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur Université Paris 7 Programmation objet Licence Bio Info Année 2004-2005 TD n 7 - Correction Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur Le TD d aujourd

Plus en détail

Tableaux et manipulation d images «bitmap»

Tableaux et manipulation d images «bitmap» T.P. numéro VII Tableaux et manipulation d images «bitmap» Ce T.P. va faire intervenir les notions suivantes : lecture/écriture de fichiers binaires ; images bitmap ; tableaux de données. 1 Fichiers binaires

Plus en détail

Routage compact. 1 Préambule. 2 Détail du sujet. Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr. 2.1 Un modèle de routage

Routage compact. 1 Préambule. 2 Détail du sujet. Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr. 2.1 Un modèle de routage Routage compact Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr URL de suivi : http://www.enseignement.polytechnique.fr/profs/informatique/ Gilles.Schaeffer/INF431/projetX06.html

Plus en détail

Configuration du contrôles à distance de KDE. Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard

Configuration du contrôles à distance de KDE. Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard Configuration du contrôles à distance de KDE Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard 2 Table des matières 1 Introduction 5 1.1 Conditions préalables....................................

Plus en détail

Créer mon premier squelette

Créer mon premier squelette Créer mon premier squelette Avec ce tutoriel, découvrez progressivement le fonctionnement de SPIP en construisant votre premier squelette. Pas à pas, comment créer un SPIP qui défie les limites. Créer

Plus en détail

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception

Patrons de conception : Iterator. Patrons de conception. Problèmes récurrents. Patron de conception Patrons de conception : Iterator Théorie et pratique de la programmation Michel Schinz 203-03-25 Patrons de conception 2 Problèmes récurrents En programmation, comme dans toute discipline, certains problèmes

Plus en détail

Les sous-programmes : exercices résolus en C Corrigé

Les sous-programmes : exercices résolus en C Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Exercices résolus en C, Semaine 3 avril mai 2013 Corrigé Objectifs Savoir écrire des sous-programmes ; Comprendre les modes de passage de paramètres ; Faire la

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

Plus en détail

liblapin Documentation

liblapin Documentation liblapin Documentation Version 1.5 The liblapin Hackers 27 November 2015 Table des matières 1 Introduction 1 1.1 Exemples................................................. 1 2 Installation 3 2.1 Téléchargement.............................................

Plus en détail

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

Persistance en Php. Note : les problèmes d accès concurrents, de sécurité et de login sont laissés de côté.

Persistance en Php. Note : les problèmes d accès concurrents, de sécurité et de login sont laissés de côté. Persistance en Php Objectif : faire un site pour gérer des articles par catégorie. Chaque catégorie a un nom, chaque catégorie est constitué d articles (titre, auteur, texte), un article est dans une seule

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

Répertoire adresses sous Excel

Répertoire adresses sous Excel I. Première feuille : la liste des membres 1) Créer les titres de colonnes a. Saisir : i. En B1 Civilité ii. En C1 Nom iii. En D1 Prénom iv. En E1 Numéro et rue v. En F1 Lieu-dit vi. En G1 Code postal

Plus en détail

Reprise en main du programme d Affectation de transport en commun

Reprise en main du programme d Affectation de transport en commun Reprise en main du programme d Affectation de transport en commun Modifications indispensables pour bonne compilation : Utilisation de visual C++ express pour avoir accès à un débuggeur et un compilateur

Plus en détail

Un petit tutoriel pour utiliser Wordpress (LeRepaire)

Un petit tutoriel pour utiliser Wordpress (LeRepaire) Un petit tutoriel pour utiliser Wordpress (LeRepaire) I. Pour écrire un article : Il faut déjà avoir un compte qui permette de le faire (ce n est pas un compte par défaut, il faut demander un accès à l

Plus en détail

IFT 1020 Programmation II

IFT 1020 Programmation II Département d informatique et de recherche opérationnelle Été 2005 IFT 1020 Programmation II Etienne Bergeron 7 juillet 2005 1 Explications générales Travail pratique #4 Technique de recherche, Entrées/Sorties

Plus en détail

Révision de la section sur la Sérialisation dans le manuel Visual Basic.NET Avancé : Programmation objet

Révision de la section sur la Sérialisation dans le manuel Visual Basic.NET Avancé : Programmation objet Révision de la section sur la Sérialisation dans le manuel Visual Basic.NET Avancé : Programmation objet Copyright 2011 Jacques Bourgeois Sérialisation La sérialisation est une technique qui permet de

Plus en détail

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule.

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule. TP Mock Pour faire ce TP il faut récupérer la "bibliothèque" mockito-all-x.x.x.jar. Vous pouvez la trouver à partir de https://code.google.com/p/mockito/downloads/list (pour mockito- 1.9.5.zip). Anciennement

Plus en détail

LES RÈGLES D OR DE LA MISE EN PAGE D UN DOCUMENT

LES RÈGLES D OR DE LA MISE EN PAGE D UN DOCUMENT LES RÈGLES D OR DE LA MISE EN PAGE D UN DOCUMENT 1 TABLE DES MATIÈRES INTRODUCTION...3 1. LES DIFFÉRENTS TYPES DE DOCUMENTS...3 2. LES 5 PRINCIPES POUR STRUCTURER VOS DOCUMENTS...3 2.1. Premier principe

Plus en détail

IUT Nice-Côte d Azur Informatique appliquée 2005 2006. TP N o 4. Tableur : affichage et impression

IUT Nice-Côte d Azur Informatique appliquée 2005 2006. TP N o 4. Tableur : affichage et impression 1 IUT Nice-Côte d Azur TC-Nice 1 re année Informatique appliquée 2005 2006 TP N o 4 Tableur : affichage et impression I Options d affichage Les options concernant l affichage dans les feuilles de calcul

Plus en détail

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Cours Informatique II (SV) Jamila Sam ÉC

Plus en détail

Initiation à Powerpoint

Initiation à Powerpoint Initiation à Powerpoint Powerpoint est un logiciel de PréAO, c est à dire de Présentation Assistée par Ordinateur. Il vous permet de créer et de mettre en page des présentations susceptibles d être projetées

Plus en détail

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet Initiation à la Programmation avec Java Semestre 1-2008/2009 Compte rendu final du Projet Jean-Baptiste Leprêtre Groupe Y1 Chargé de TD : Fabienne Thomarat 1 SOMMAIRE : I) Cahier des Charges II) Analyse

Plus en détail

Algorithmique Programmation Objet Python

Algorithmique Programmation Objet Python Algorithmique Programmation Objet Python Andrea G. B. Tettamanzi Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.fr Andrea G. B. Tettamanzi, 2015 1 CM - Séance 7 Listes

Plus en détail

IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008. Gestion de stocks à la sauce C++! Mohamed Lokbani

IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008. Gestion de stocks à la sauce C++! Mohamed Lokbani IFT1166 TP3 Été 2008 1/5 IFT1166 TRAVAIL PRATIQUE #3 18 juin 2008 Gestion de stocks à la sauce C++! Mohamed Lokbani Équipes : le travail peut-être fait en binôme mais vous ne remettez qu un travail par

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

TP5 : Réalisation d un CV

TP5 : Réalisation d un CV TP5 : Réalisation d un CV Pour cette séance de TP, je vous propose de réaliser votre CV. Comme vous êtes par binôme, je vous demande à ce que chaque étudiant fasse son propre CV. Word propose des modèles

Plus en détail

Luc PONSONNET Lycée Bonaparte 83000 Toulon Académie de Nice TRAAM 2013-2014 Page 1

Luc PONSONNET Lycée Bonaparte 83000 Toulon Académie de Nice TRAAM 2013-2014 Page 1 Luc PONSONNET - Académie de Nice - TraAM 2013-2014 " L ENORME SAUT DE THIERRY NEUVILLE AU RALLYE DE FINLANDE" Niveau de la classe : première scientifique Testée avec une classe de première scientifique

Plus en détail

Installation de Windows 8 sur une machine virtuelle avec Parallels Desktop 7

Installation de Windows 8 sur une machine virtuelle avec Parallels Desktop 7 Installation de Windows 8 sur une machine virtuelle avec Parallels Desktop 7 Table des matières Installation de Windows 8 sur une machine virtuelle avec Parallels Desktop 7... 1 I Introduction... 2 II

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

Étiquettes, enveloppes et publipostage

Étiquettes, enveloppes et publipostage Chapitre 10 Étiquettes, enveloppes et publipostage Vous vous mariez ou vous organisez un baptême? Récupérez votre liste d adresses à partir de votre téléphone portable ou des contacts de votre messagerie

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Chapitre 9 Gestion de la mémoire Durant l exécution d un programme, les éléments manipulés par le programme sont stockés dans différents types de mémoire. La pile d exécution contient des éléments dont

Plus en détail

VII- Enumérations dans l ordre alphabétique

VII- Enumérations dans l ordre alphabétique VII- Enumérations dans l ordre alphabétique Prenons un dictionnaire. Comment savoir si un mot se trouve avant ou après un autre? On commence par comparer la première lettre de ces deux mots. Si elles sont

Plus en détail

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts - La notion de fonction est fondamentale car elle permet d'atteindre deux objectifs: principe d'abstraction: offrir une vue

Plus en détail

Guide d'utilisation du X360Key Xkey V2

Guide d'utilisation du X360Key Xkey V2 Guide d'utilisation du X360Key Xkey V2 Sommaire : Comment utiliser votre X360Key V2 aussi appelé Xkey v2 Mode d'emploi Réalisé par Joss Xbox 8 Av. Philippe Auguste 75011 PARIS - Tel : 06-15-86-49-04 Modifications

Plus en détail

Module 26 : Techniques de modélisation

Module 26 : Techniques de modélisation Module 26 : Techniques de modélisation 26.0 Introduction Ce module enseigne une série de techniques qui constituent une trousse à outils bien pratique quand il s agit de construire des modèles dans Excel

Plus en détail

THÈME. Méthodologie. 1 Les conditions de l épreuve. 2 L étude d une situation pratique. A En quoi consiste l étude de cas?

THÈME. Méthodologie. 1 Les conditions de l épreuve. 2 L étude d une situation pratique. A En quoi consiste l étude de cas? Méthodologie THÈME 1 1 Les conditions de l épreuve Les conditions d examen : «épreuve écrite portant sur l étude d une ou de plusieurs situations pratiques et/ou le commentaire d un ou plusieurs documents

Plus en détail

INFO-F-302 Informatique Fondamentale Examen Session de Juin 2014

INFO-F-302 Informatique Fondamentale Examen Session de Juin 2014 INFO-F-302 Informatique Fondamentale Examen Session de Juin 2014 CORRIGÉ Documents non autorisés, durée: 2h45 1 Questions de cours (6 points) Question 1 (2pts) Donner quatre méthodes vues en cours pour

Plus en détail

Web & XML. Evaluation 1/2. ENSEIRB Programmation Web / XML. Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP. Page 1/9

Web & XML. Evaluation 1/2. ENSEIRB Programmation Web / XML. Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP. Page 1/9 Web & XML ENSEIRB Programmation Web / XML Evaluation 1/2 Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP Page 1/9 Historique : Version Date Origine de la mise à jour Rédigée par Validée par

Plus en détail

Projet (partie graphes)

Projet (partie graphes) Projet (partie graphes) G. Richomme gwenael.richomme@univ-montp3.fr Université Paul Valéry Montpellier 3 Licence AES parcours Misahs cours 2013-2014 1 Objectifs et MCC Objectifs : construire une (mini-)application

Plus en détail

Présentation L ÉDITEUR D ÉTAT SUR PÉRICLÈS 5

Présentation L ÉDITEUR D ÉTAT SUR PÉRICLÈS 5 Présentation L ÉDITEUR D ÉTAT SUR PÉRICLÈS 5 Sommaire Questions fréquentes (Cliquez sur la question pour accéder directement à la réponse.) - Introduction... 3 - Présentation de la barre d outils... 4

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

Drag&Drop sous Flex. <mx:text x="151" y="29" text="1) Drag&Drop entre deux composants le gérant nativement" width="508" height="22" fontsize="13"/>

Drag&Drop sous Flex. <mx:text x=151 y=29 text=1) Drag&Drop entre deux composants le gérant nativement width=508 height=22 fontsize=13/> Drag&Drop sous Flex Bonjour. Dans ce tutorial je vais vous expliquer comment utiliser les méthodes de Drag&Drop sous Flex. En effet, bien que la mise en œuvre soit très simple si on s en tient aux composants

Plus en détail

MANUEL UTILISATEUR estat'clics

MANUEL UTILISATEUR estat'clics MANUEL UTILISATEUR estat'clics Médiamétrie-eStat Buropolis, Bât 3 1240, route des Dolines Sophia Antipolis 06560 Valbonne Tél : 04 92 38 38 20 Fax : 04 92 96 91 25 E-mail : serviceclient@mediametrie-estat.com

Plus en détail

TP ARDUINO : FAIRE UNE ANIMATION SPACE INVADERS SUR LCD

TP ARDUINO : FAIRE UNE ANIMATION SPACE INVADERS SUR LCD TP ARDUINO : FAIRE UNE ANIMATION SPACE INVADERS SUR LCD Eskimon 06 janvier 2016 Table des matières 1 Introduction 5 2 Matériel nécessaire et mise en route 7 2.1 Le matériel.....................................

Plus en détail

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016 2015/2016 Exercice 1 : Pile renversée Corrigé Consignes Pour tous les exercices de cette planche on aura préalablement écrit l implémentation des piles à capacité limitée ou illimitée vue en cours, et

Plus en détail