Compléments sur des concepts et des idiomes Java

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Compléments sur des concepts et des idiomes Java"

Transcription

1 Compléments sur des concepts et des idiomes Java D. Conan Rev : 951 CSC 4509 ASR4 Télécom SudParis Juin 2013

2 Table des matières Compléments sur des concepts et des idiomes Java D. Conan,, Télécom SudParis, CSC 4509 ASR4 Juin Plan de la présentation 3 1 Contexte : Étude de l application tchat multiclient et multiserveur 3 2 Architecture de l application Architecture des serveurs Architecture des clients Diagramme de classes des serveurs Diagramme de classes des clients Types paramétrés 10 4 Objets immuables et collections immuables 11 5 Blocs de code «static» 12 6 Type énuméré et constructeur de type énuméré 13 7 Classes anomymes 14 Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 2

3 Plan de la présentation # 2 1 Contexte : Étude de l application tchat multiclient et multiserveur Architecture de l application Types paramétrés Objets immuables et collections immuables Blocs de code «static» Type énuméré et constructeur de type énuméré Classes anomymes Contexte : Étude de l application tchat multiclient et multiserveur # 3 Infrastucture du système de tchat multiclient et multiserveur Réalisé pendant les séances de travail personnel Mise à disposition d une solution type par l équipe enseignante Utilisation de concepts avancés et d idiomes Java Quelques compléments de cours sont fournis dans cette présentation Documentation de référence : Tutoriels Java de Oracle/Sun Livre Effective Java, 2nd edition de Joshua Bloch, Addison Wesley, 2008 Ce livre a été traduit en français sous le titre «Java Efficace» Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 3

4 2 Architecture de l application Client 0 Client 1 Server 0 Server 1 # 4 Server 2 Server 3 Client 2 Client 3 Client 4 La figure de cette diapositive présente la configuration utilisée dans nos tests avant de vous fournir cette réalisation de l application de tchat. Les particularités sont les suivantes : test de l aspect multiclient avec deux clients attachés à certains serveurs, test de l aspect multiserveur avec des serveurs connectés à plusieurs voisins, test de la propagation des messages de tchat avec gestion des cycles dans la topologie des serveurs. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 4

5 2.1 Architecture des serveurs 2 Architecture de l application Access to the state of the server through ChatServerState.semaphore # 5 main thread infinite loop call to select() and call to the actions of the state machine ChatSelectorMultiServer thread infinite loop read command lines to control the server La figure de cette diapositive présente l architecture d un serveur multiactivité (en anglais, multithread). L activité principale du serveur est constituée d une boucle infinie organisée autour de l appel à la méthode select. Une seconde activité est ajoutée pour permettre la saisie de commandes à la console afin de contrôler le fonctionnement du serveur, par exemple lors des tests pour démarrer ou arrêter un algorithme réparti entre les serveurs de l application de tchat. Cette seconde activité est donc une boucle infinie de lecture de commandes au clavier. Dans chaque itération de la boucle infinie de l activité principale, le serveur reçoit soit une demande de connexion par un client ou un serveur, soit un message d un client ou d un serveur, puis le seveur exécute une action de réaction à cet événement. Cette action modifie l état du serveur et potentiellement émet des messages vers des clients et des serveurs. La seconde activité du serveur peut aussi modifier l état du serveur et émettre des messages. Donc, l état du serveur rassemblé dans la classe ChatServerState doit être accédé en exclusion mutuelle. C est pourquoi la classe ChatServerState contient un sémaphore qui doit être utilisé par les deux activités concurrentes du serveur. Par ailleurs, la forme des boucles de traitement des événements des deux activités du serveur donnent l indication de l orientation naturelle utilisée pour l insertion d algorithmes répartis : c est l orientation «événement» présentée dans la section 1.2 du cours d algorithmique répartie. Ainsi, les algorithmes répartis présentés selon l orientation «contrôle» doivent d abord être traduits dans une forme orientée «événement» avant d être insérés dans l architecture du serveur. L orientation «événement» suggère l utilisation du patron de conception «machine à états». Aussi, afin de faciliter l insertion d algorithmes répartis dans l architecture initiale, nous ajoutons un mécanisme de machine à états. C est la mise en œuvre de ce patron de conception qui requiert des compléments sur des concepts et des idiomes Java. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 5

6 2.2 Architecture des clients 2 Architecture de l application Access to the state of the client through ChatClientState.semaphore # 6 main thread infinite loop read command lines and send chat message to the server ChatClient thread infinite loop receive messages from the server and display them in the console Pour complétude, la figure de cette diapositive présente l architecture des clients. De manière similaire, les clients sont composés de deux activités : l activité principale pour la lecture des messages de tchat et une seconde activité pour la réception des messages depuis le serveur. Par conséquent, comme pour le serveur, l état du client est accédé en exclusion mutuelle grâce à un sémaphore (cf. l utilisation du sémaphore dans la méthode de classe receivechatmessagecontent de la classe AlgorithmChatActions). En outre, nous mettons en œuvre une machine à états pour insérer les algorithmes répartis entre les clients. Notons dès maintenant qu une des premières questions à se poser lors de l insertion d un algorithme réparti dans l architecture de l application de tchat est de savoir si l algorithme est à insérer dans la machine à états des serveurs ou dans celle des clients. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 6

7 2 Architecture de l application 2.3 Diagramme de classes des serveurs # 7 NB 1 : la figure est peut-être un peu trop petite pour la lecture papier. Elle est affichée à l échelle 1 dans le sujet en ligne. NB 2 : le diagramme de classes est construit (semi-)automatiquement à partir du code en utilisant le greffon Eclipse ObjectAid ( Nous ne détaillons pas ici chaque classe, voire chaque attribut et chaque méthode, car nous avons documenté le code. Merci donc de vous y reporter directement ; mais, attendez la fin de l étude de cette présentation, car nous présentons dans la suite des compléments sur des concepts et des idiomes Java. Remarquons cependant dès maintenant les éléments de modèle suivants : nous retrouvons le point d entrée du serveur (méthode ChatSelectorMultiServerMain.main) ainsi que l activité complémentaire (classes ChatSelectorMultiServer avec la méthode run) ; de nombreuses méthodes sont fournies pour la gestion des connexions et des émissions de messages. Elles ne sont pas toutes utilisées dans l ossature de départ, mais peuvent aider lors de l insertion de certains algorithmes répartis. Donc, pensez-y ; certaines classes sont abstraites car elles factorisent des éléments communs aux deux machines à états (celle du seveur et celle du client) : la classe State est utilisée à chaque fois qu une méthode générique (aux deux machines à états) manipule l état de la machine à états ; la classe AbstractContent est utilisée à chaque fois qu une méthode générique manipule le contenu d un message ; l énumération ListOfAlgorithms permet de collecter tous les algorithmes ; toutes les actions des algorithmes doivent respecter le contrat défini dans l interface AlgorithmAction- Interface, la méthode la plus importante étant la méthode execute qui contient l algorithme de l action à exécuter. Les collections d actions sont indexées par un entier qui est le numéro de l action ; chaque algorithme est déclaré sous la forme d une autre énumération. L exemple fictif mis dans l ossature est la déclaration des actions de l algorithme d élection dans la classe AlgorithmElection. C est d ailleurs le seul algorithme déclaré pour l instant dans la classe ListOfAlgorithms ; la déclaration d un algorithme dans le second type d énumération consiste à lister les types de messages que la machine à états peut recevoir et à définir le code de délégation du traitement de chaque message dans des méthodes de classe. Dans l exemple fictif introduit dans l ossature : AlgorithmElection déclare une action pour un type de messages (classe MyFirstMessageContent non montrée dans le diagramme de classes) ; Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 7

8 2 Architecture de l application l algorithme de l action correspondante est la méthode de classe AlgorithmElectionActions.- treatmyfirstmessage ; Le moteur de la machine à états correspond à la méthode de classe execute de la classe ListOf- Algorithms qui est appelée dans la boucle infinie (méthode loop) de l activité principale du serveur (classe ChatSelectorMultiServerMain). L algorithme de cette méthode consiste à parcourir la liste des actions pour trouver celle correspondant au message reçu, puis à appeler la méthode de même nom sur l action correspondante. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 8

9 2 Architecture de l application 2.4 Diagramme de classes des clients # 8 NB : la figure est peut-être un peu trop petite pour la lecture papier. Elle est affichée à l échelle 1 dans le sujet en ligne. Pour complétude, la figure de cette diapositive présente le diagramme de classes du client. Il est très similaire à celui du serveur ; nous ne le commentons donc pas et vous redirigeons vers les commentaires insérés dans le code. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 9

10 3 Types paramétrés Cf. # 9 Vector<A> n est pas un type parent de Vector<B> (new Vector< Vector<A> >()).add(new Vector<B>()) ne compile pas Type joker : Vector< Vector<? extends A> > Idiome utilisé dans la déclaration des attributs mapofalgorithms et mapofactions de la classe ListOfAlgorithms Idiome utilisé aussi dans la déclaration de l attribut contentclass de la classe AlgorithmElection Vector<A> est un collection contenant des références vers des instances de classe A ou des références vers des instances de classe enfant de A. Mais, en supposant que B soit une classe enfant de A, Java ne permet pas dire que Vector<B> est un sous-type de Vector<A>. Ainsi, dans un v vecteur Vector< Vector<A> >, il n est pas possible d y mettre des références vers des vecteurs de type Vector<B>, car la collection v ne peut contenir que des références vers des vecteurs de type Vector<A>. Java utilise le caractère «?» dans la déclaration Vector<?> (prononcée «vecteur d inconnu» ou en anglais «vector of unknown») qui est le type parent de toutes les Vector. Ce type est appelé un type «joker» (en anglais, «wildcard type»). Le même caractère est utilisé un peu différemment pour déclarer un type joker contraint : Vector< Vector<? extends A> > : le type est contraint au sens où le vecteur peut contenir des références vers des vecteurs contenant des références vers des instances de classe enfant de A. C est la signification du «? extends A». Par exemple, en ayant créé auparavant la classe A et la classe B enfant de A, vous pouvez essayer le code suivant : Vector<Vector<A>> vva = new Vector<Vector<A>>(); Vector<A> va = new Vector<A>(); vva.add(va); Vector<B> vb = new Vector<B>(); // vva.add(vb); KO Vector<Vector<? extends A>> vvabis = new Vector<Vector<? extends A>>(); vvabis.add(va); vvabis.add(vb); // OK Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 10

11 4 Objets immuables et collections immuables Cf. livre Java Efficace : règle 13 # 10 Listes immuables (non modifiables), y compris leur contenu, une fois initialisées Attribut immuable déclaré avec le mot-clef final Contenu de la collection non modifiable une fois initialisé Méthode de classe Collections.unmodifiableList Idiome utilisé pour ListOfAlgorithms.mapOfAlgorithms Idiome utilisé aussi pour AlgorithmElection.mapOfActions Pour des raisons de sécurité, nous souhaitons que la liste des algorithmes dans l énumération ListOfAlgorithms ainsi que la liste des actions (des algorithmes) déclarée dans les seconds types d énumération comme AlgorithmElection soient immuables (en anglais, immutable), c est-à-dire qu une fois créées, les listes ainsi que leur contenu ne puissent pas être modifiés. En d autres termes, nous souhaitons qu aucune méthode hors du code d initialisation de ces énumérations ne puisse modifier les déclarations des algorithmes. La déclaration d un attribut immuable en Java s effectue en ajoutant le mot-clef final. Ainsi, la collection mapofalgorithms de l énumération ListOfALgorithms étant déclarée immuable, une fois la collection créée, elle ne peut pas être remplacée par une autre par inadvertance ou par malignité. Mais, cela n est pas suffisant. En effet, nous souhaitons aussi que le contenu de la collection ne soit pas modifiable une fois qu il a été initialisé. Nous utilisons alors la méthode unmodifiablelist de la classe Collection qui retourne une instance de la classe UnmodifiableList, qui contraint l utilisation de la liste en levant l exception UnsupportedOperationException à chaque fois qu une méthode souhaite modifier le contenu de la liste. Voici un petit exemple de manipulations que vous pouvez essayer : final Vector<String> v = new Vector<String>(); v.add("premier");v.add("deuxieme"); Vector<String> autre = new Vector<String>(); autre.add("troisieme"); v = autre; // KO à la compilation List<String> u = Collections.unmodifiableList(v); u.add("quatrieme"); // KO à l exécution u.remove(0); // KO à l exécution Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 11

12 5 Blocs de code «static» Cf. # 11 Exécution de code lors du chargement d une classe static {... Initialisation des collections immuables sans appel de méthode explicite Idiome utilisé dans la classe ListOfAlgorithm pour initialiser la liste des algorithmes Idiome utilisé aussi dans la classe AlgorithmElection pour initialiser la collection d actions Pour plus de sécurité encore, nous souhaitons initialiser la liste des algorithmes et les collections d actions des algorithmes de manière automatique sans que le développeur ait besoin d appeler une méthode au début de la méthode main. Ainsi, le programmeur ne risque pas d oublier cette initialisation et c est l initialisation que nous avons prévue qui est exécutée. Pour ce faire, nous programmons les créations et les initialisations des collections correspondantes dans des blocs de code dits «static». Ces blocs sont déclarés de la manière suivante dans les classes ListOfAlgorithms et AlgorithmElection : static {... La machine virtuelle Java charge les classes à la demande lors de l exécution. Les attributs de classe sont initialisés lors du chargement et les blocs «static» sont exécutés à la suite. C est pourquoi ces blocs n ont pas besoin d être nommés car ils ne sont pas appelés par le développeur mais exécutés de manière automatique par la machine virtuelle Java lors du chargement des classes. Voici un petit exemple de manipulations que vous pouvez essayer : public class A { private int a; private static int b; static { a = 2; // KO à la compilation car a est un attribut d instance b = 2; public A(final int a) { this.a = a; public String tostring() { return "a = " + a + " et b = " + b; puis, dans un main: A a = new A(1); System.out.println(a); Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 12

13 6 Type énuméré et constructeur de type énuméré Tutoriel Java : Livre Java Efficace : règle 21 # 12 Énumération = classe avec un ensemble d instances défini à la compilation Chaque instance possède une méthode ordinal Entier référençant de manière automatique l instance dans l ensemble Classe = Attributs, constructeurs, et méthodes possibles Utilisé dans ListOfAlgorithms pour collecter les collections d actions des algorithmes Utilisé dans AlgorithmElection pour indiquer le type du message correspondant à l action et pour affecter les numéros des actions Une énumération est une classe qui définit à la compilation des (instances) constantes. Comme ces constantes sont des objets, il est donc possible de les mettre dans des collections. Ainsi, ListOfAlgorithms définit les constantes représentant les algorithmes et chaque algorithme comme AlgorithmElection définit les constantes représentant les actions, une action par type de message de l algorithme. Les énumérations sont des classes. Par conséquent, il est possible de définir un constructeur permettant de construire chaque instance en initialisant des attributs. Nous utilisons cette facilité pour indiquer dans AlgorithmElection le type du message correspondant à l action. Par ailleurs, chaque instance possède de manière automatique la méthode ordinal qui retourne un entier qui est la position de l instance dans l ensemble des instances de l énumération. Nous utilisons ces deux facilités dans les énumérations déclarant les actions des algorithmes comme AlgorithmElection pour calculer l indice des actions à partir d une constante (indice de la première action de l algorithme) et de ordinal. Voici un petit exemple de manipulations que vous pouvez essayer : public enum E { E1(200),E2(127),E3(61); private int a; public E() { // KO à la compilation : constructeur public interdit private E(int a) { this.a = a; public String tostring() { return "name = " + name() + ", ordinal = " + ordinal(); puis, dans un main: for (E e : E.values()) { System.out.println(e); Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 13

14 7 Classes anomymes Cf Class-Definition/0201 Anonymous-inner-class.htm # 13 Classes définies comme des classes enfants et n ayant pas de nom Exemple : dans une instruction, à la suite de l opérateur new class A { some attributes + some methods A b = new A(args) { other attributes + other methods ; Idiome utilisé dans les définitions des instances de l énumération AlgorithmElection Dans sa forme simple, la création d une instance avec l opérateur new est effectuée comme ceci : A a = new A(args ); Grâce au polymorphisme, si la classe B est une classe enfant de la classe A, il est possible d écrire l instruction suivante : A b = new B(args ); Une forme plus évoluée permet, à la suite de l instanciation avec l appel à l opérateur new, de définir une classe enfant qui est aussitôt instanciée. Cette classe enfant est dite «anonyme» (en anglais, anonymous inner class) car elle n est pas repérée par un nom dans le code écrit. Dans l exemple qui suit, les codes des deux colonnes sont équivalents, la colonne de droite utilisant le mécanisme de classe anonyme définie dans la même instruction que l instanciation. class A { some attributes + some methods class B extends A { other attributes + other methods A b = new B(args ); class A { some attributes + some methods A b = new A(args ) { other attributes + other methods ; Les classes anonymes sont souvent utilisées dans les cas suivants : définition de classes enfants instanciées une seule fois : cela permet de ne pas multiplier les fichiers de classes *.java. Cet idiome est très utilisé dans les parties de code de gestion d interfaces graphiques ou encore dans les parties de code mettant en œuvre des threads ; définition de classes enfants dans les énumérations : c est l utilisation que nous en faisons dans l application tchat. Par exemple, les méthodes execute des instances des énumérations comme AlgorithmElection sont définies à la suite de la déclaration de l instance dans l énumération. Cependant, les classes anonymes possèdent des limitations parmi lesquelles les suivantes : il n est pas possible d instancier une classe anonyme hors de l instruction qui la définit ; l opérateur instanceof n est utilisable que sur le type de la classe parent, pas sur le type le plus spécifique, qui ne possède pas de nom ; Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 14

15 la définition de la classe anonyme ne peut ni inclure de déclaration implements, ni de déclaration extends. Voici un petit exemple de manipulations que vous pouvez essayer : en reprenant la classe A présentée ci-avant : A b = new A(2) { private int c; public String tostring() { return super.tostring() + ", c = " + c; ; System.out.println(b instanceof A); System.out.println(b); A c = new A(3) implements Serializable {; // KO à la compilation Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 15

16 À l issu de cette diapositive, nous vous invitons à lire le code des classes de la machine à états. Par exemple pour le serveur, la méthode loop de la classe ChatSelectorMultiServerMain appelle la méthode de classe execute de la classe ListOfAlgorithms ; la machine à états du serveur est initialisée par le bloc de code «static» de la classe ListOfAlgorithms, qui utilise les attributs des instances construites par le constructeur de l énumération qui prend en argument une collection définie en attribut de classe, qui est elle-même construite dans les blocs de code «static» des énumérations déclarant les actions des algorithmes (par exemple l énumération AlgorithmElection) ; ainsi, la méthode execute de la classe ChatSelectorMultiServerMain parcourt les algorithmes pour trouver l action correspondant au type de message (qui est un entier) et appelle la méthode execute de l action trouvée ; comme suggéré par l exemple existant dans la classe AlgorithmElection, ces méthodes d instance execute sont définies comme des délégations vers des méthodes de classes regroupées dans une autre classe : voir par exemple la classe AlgorithmElectionAction ; l effet escompté est de limiter le nombre de lignes de code dans l énumération AlgorithmElection afin de voir cette énumération comme la déclaration d actions, le code des actions étant rassemblé dans une autre classe. Télécom SudParis D. Conan Juin 2013 CSC 4509 ASR4 16

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

Travaux pratiques. Protocoles de la couche transport et de la couche applications

Travaux pratiques. Protocoles de la couche transport et de la couche applications Travaux pratiques Protocoles de la couche transport et de la couche applications Objectif Ce laboratoire se veut une introduction aux protocoles de la couche transport et de la couche application du modèle

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

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

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1 L2 Informatique - gr A HLIN406-25 mars 2015 Nom : Prénom : Numéro d étudiant : Contrôle continu 1 Tous documents sur support papier autorisés. Durée : 1h00. L ensemble des réponses sera à donner sur les

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

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

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

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

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

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

Plus en détail

Première étape : Le modèle client/serveur avec le protocole TCP (client unique)

Première étape : Le modèle client/serveur avec le protocole TCP (client unique) École de technologie supérieure Responsable du cours : Hassan Zeino Département de génie logiciel et des TI Chargés de laboratoire : Fatna Belqasmi (A-3326) Session : Automne 2010 LOG610 - RÉSEAUX DE TELECOMMUNICATION

Plus en détail

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

Plus en détail

Setting Up PC MACLAN File Server

Setting Up PC MACLAN File Server Setting Up PC MACLAN File Server Setting Up PC MACLAN File Server Ce chapitre explique comment paramètrer le Serveur de fichiers PC MACLAN, une fois la procédure d installation terminée. Les sujets sont

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

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

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

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

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

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

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

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

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

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

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

EXAMEN DE JAVA 2010-2011

EXAMEN DE JAVA 2010-2011 NOM : PRÉNOM : TP : G TP EXAMEN DE JAVA 2010-2011 Consignes : avec documents, mais sans téléphone, ordinateur ou autre moyen de communication. Durée : 2h Recommandations : Le code doit être écrit en JAVA

Plus en détail

La gestion des exceptions

La gestion des exceptions La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes

Plus en détail

Mieux programmer en Java

Mieux programmer en Java Mieux programmer en Java Peter Haggar Éditions Eyrolles ISBN : 2-212-09171-0 2000 PARTIE 1 l exécution de l instruction return, cependant, le contrôle est transféré au bloc finally en // 2. Cela provoque

Plus en détail

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15 Table des matières Au sujet de l auteur 1 Introduction 3 édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

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

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

Logiciel de suivi du diabète OneTouch ZOOM Pro avec SnapShot Guide d installation

Logiciel de suivi du diabète OneTouch ZOOM Pro avec SnapShot Guide d installation Logiciel de suivi du diabète OneTouch ZOOM Pro avec SnapShot Guide d installation Procédure d installation 1. Insérez le CD d installation OneTouch Zoom Pro dans le lecteur de CD-ROM. REMARQUE : si vous

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

FORMATION VB.NET Visual Studio 2008

FORMATION VB.NET Visual Studio 2008 FORMATION VB.NET Visual Studio 2008 Livret 1 Introduction à Visuàl Studio Thierry TILLIER http://www.coursdinfo.fr Ce support de cours est réservé à un usage personnel. Toute utilisation et diffusion dans

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

PHP5. Programmation orientée objet. A. Belaïd 1

PHP5. Programmation orientée objet. A. Belaïd 1 PHP5 Programmation orientée objet A. Belaïd 1 La POO en PHP Intérêt Progrès par rapport à la version PHP4 Permet de rassembler autour d un même objet (concept), une définition, des attributs et des méthodes

Plus en détail

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC JDBC est l'acronyme de Java DataBase Connectivity et désigne une API définie par Sun pour permettre un accès aux bases de données avec Java Accès

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

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

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

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

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

Notions d héritage en Java

Notions d héritage en Java EILCO ING 1 - POO Java TP 5 2014/2015 Notions d héritage en Java L héritage est la capacité d une classe (la sous-classe) à hériter des membres (attributs et méthodes) d une autre classe (la super-classe).

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

IN104. Programmation orientée objet Introduction aux objets

IN104. Programmation orientée objet Introduction aux objets IN104 Programmation orientée objet Introduction aux objets Séance de Travaux Dirigés du 24 septembre 2009 B. Monsuez, F. Védrine Exercice 1 Notre compteur en C++ Nous étudions dans cet exercice l exemple

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP Chapitre 9 Dans ce chapitre nous abordons le mécanisme RMI (Remote Method Invocation) permettant le développe ment des systèmes répartis. Nous expliquerons comment les classes d un serveur peuvent être

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

Les tableaux. Chapitre 3

Les tableaux. Chapitre 3 Chapitre 3 Les tableaux 3.1 Généralités Les tableaux en PERL sont identifiés par le symbole @ à l image du $ pour les variables. Comme ces dernières, les tableaux ne sont pas typés et un même tableau peut

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

1 Programmation Client/Serveur basée sur TCP/IP

1 Programmation Client/Serveur basée sur TCP/IP Outils Informatique pour l ingénieur TD 1 Réseau et Web IP, Client/serveur 1 Programmation Client/Serveur basée sur TCP/IP 1.1 Buts de cette réalisation Ce TP sur la programmation client/serveur a pour

Plus en détail

Introduction aux exercices en Java

Introduction aux exercices en Java Introduction aux exercices en Java Avant de commencer les séries proprement dites, nous allons voir quelques informations utiles concernant le langage de programmation principal de ce cours d'informatique

Plus en détail

Héritage, et quelques petits mots-clés de Java

Héritage, et quelques petits mots-clés de Java Héritage, et quelques petits mots-clés de Java Bilan de la séance du 3 février. 1 Champs d instance, champs de classe La situation usuelle pour les attributs et les méthodes est la suivante : La classe

Plus en détail

Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI

Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI Module 19: Développement et déploiement des applications client/serveur TDI2 2012/2013 Formateur:M.AZZI Intégrer les accès aux données dans le client en mode connecté. ADO.NET ADO.NET est constitué d un

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Le service pack 6 (SP6) est le dernier disponible pour visual studio 6. Ce dernier devrait être maintenu par Microsoft jusqu en 2008.

Le service pack 6 (SP6) est le dernier disponible pour visual studio 6. Ce dernier devrait être maintenu par Microsoft jusqu en 2008. 1 CONCEPT DE BASE 1.1 Visual Basic 6 1.1.1 Pour quoi faire? VB est un langage de type RAD : «Rapid Application Development». Il permet de créer des applications rapidement grâce à une conception simple

Plus en détail

Utilisation de SVN. 1 Introduction. 2 Architecture. 3 Références et aide en ligne

Utilisation de SVN. 1 Introduction. 2 Architecture. 3 Références et aide en ligne N7 1IMA TECHNOLOGIE OBJET TP 3 18/02/2015 (Séance TP 2) Objectifs : Comprendre le principe d un outil de gestion de configuration Savoir utiliser SVN (subversion) 1 Introduction Pour travailler en groupe

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Exercice 1. Toute réponse doit être justifiée. Vous proposerez une correction lorsque le code n est pas correct. 1. Le code suivant

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 9 NFP111 Systèmes et Applications Réparties Cours 6 - Remote Method Invocation (RMI)/Partie 2 Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

GRAILS L'ARCHITECTURE GRAILS

GRAILS L'ARCHITECTURE GRAILS GRAILS L'ARCHITECTURE GRAILS Grails est un serveur d'application web basé sur le langage Groovy, et le framework Spring. Il est édité par la société : SpringSource. Une application Grails se décompose

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Réalisation d interfaces graphiques Avec NetBeans. Version 1.0, du mardi 30 octobre 2007

Réalisation d interfaces graphiques Avec NetBeans. Version 1.0, du mardi 30 octobre 2007 Réalisation d interfaces graphiques Avec NetBeans Version 1.0, du mardi 30 octobre 2007 1 1. Création d un projet Dans le menu File, créez un projet en choisissant : New Project. Dans le menu New Project,

Plus en détail

Morgan Beau Nicolas Courazier

Morgan Beau Nicolas Courazier EPSI - 2010 Rapport projet IA Conception et mise en œuvre d un générateur de systèmes experts Morgan Beau Sommaire Cahier des charges 3 Présentation générale 4 Analyse et modélisation 6 Le moteur d inférence

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

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

CORRECTION D UN BUG (INTERACTION DEVELOPPEUR/TESTEUR)

CORRECTION D UN BUG (INTERACTION DEVELOPPEUR/TESTEUR) CORRECTION D UN BUG (INTERACTION DEVELOPPEUR/TESTEUR) 1 Correction d un bug (interaction développeur/testeur) Sommaire Avertissement...2 Aperçu...3 1. Résolution du problème...4 Triage et affectation de

Plus en détail

Licence Informatique Année 2005-2006

Licence Informatique Année 2005-2006 Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 6 - Correction Héritage Exercice 1 On modélise une application devant servir à l inventaire d une bibliothèque. Elle devra traiter des

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

TD3 - Facturation avec archivage automatisé

TD3 - Facturation avec archivage automatisé TD3 - Facturation avec archivage automatisé Objectifs Insérer les formules nécessaires aux calculs d une facture. Créer une macro- commande avec l enregistreur de macros et l affecter à un bouton. Utiliser

Plus en détail

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET,

Plus en détail

Veuillez trouver ci-dessous les principales étapes à suivre ainsi que quelques conseils pratiques pour vous aider à soumettre la demande en ligne.

Veuillez trouver ci-dessous les principales étapes à suivre ainsi que quelques conseils pratiques pour vous aider à soumettre la demande en ligne. Bienvenus dans le Système de demande de subvention en ligne du Fonds de contributions volontaires des Nations Unies, disponible chaque année entre le 1 er janvier et le 1 er avril pour recevoir les demandes

Plus en détail

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse IFT287 Exploitation de base de données relationnelles et orientées objet Laboratoire Mon premier programme Java en Eclipse Comment faire? Nous allons utiliser l environnement de travail proposé par Eclipse

Plus en détail

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Date : 27 Mars 2014 Durée : 1H30 Coordonnateurs : Christian Bac et Denis Conan Les

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

TO52 - Application médicale sous android Consultation des informations patient

TO52 - Application médicale sous android Consultation des informations patient TO52 - Application médicale sous android Consultation des informations patient DAVID LACHICHE XAVIER MICHEL Automne 2011 TABLE DES MATIÈRES 1 Partie données métier 2 1.1 Généralités.......................................

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

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

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

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

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

Plus en détail

CONNECT. Mode d emploi. Android

CONNECT. Mode d emploi. Android CONNECT Mode d emploi Android fr Table des matières 1 Qu est-ce que JURA Connect?... 3 2 Premiers pas...4 3 Assistant de configuration... 5 Bienvenue dans l assistant de configuration!... 6 Insérer Smart

Plus en détail

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

Plus en détail

Algorithmique et programmation avec Java (NFA002)

Algorithmique et programmation avec Java (NFA002) Algorithmique et programmation avec Java (NFA002) Deuxième session 13 septembre 2012 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : listes (4 points) Etudiez le programme

Plus en détail