Génie Logiciel avec Ada. 4 février 2013

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

Download "Génie Logiciel avec Ada. 4 février 2013"

Transcription

1 Génie Logiciel 4 février 2013

2 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires

3 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

4 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

5 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

6 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

7 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

8 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

9 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

10 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

11 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

12 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

13 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

14 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

15 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

16 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

17 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

18 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

19 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

20 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

21 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

22 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

23 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

24 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

25 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

26 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

27 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

28 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

29 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

30 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

31 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

32 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

33 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

34 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

35 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

36 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

37 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

38 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

39 I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Une structure de données est linéaire lorsque les données sont en quelque sorte les unes derrière les autres : chaque donnée a une donnée successeur et une donnée prédécesseur exception faite éventuellement des données qui sont aux extrémités. Une fois les données rangées, la structure sera amenée à évoluer par l ajout de nouvelles données ou la suppression de données appartenant à la structure. Selon la façon de procéder à ces modifications, on distinguera plusieurs types de structures.

40 I. Exemple exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Un robot piloté à distance reçoit différents types d instructions pour se déplacer : en avant, en arrière, à droite, à gauche. Il est de plus muni d une mémoire linéaire qui enregistre la suite d instructions et ne démarre qu une fois toutes les instructions reçues. Par exemple, en avant, en avant, à droite, en avant, à gauche, à gauche, en arrière. Le choix du déplacement dépendra de la façon dont est gérée la mémoire : il choisit soit la première instruction entrée soit la dernière. Dans le premier cas sa mémoire fonctionne comme une file. Dans ce dernier cas sa mémoire fonctionne comme une pile.

41 Génie Logiciel I. Exemple II. Pile 3 Mémoire pile, départ tourné vers le bas III. Généricité IV. File 2 V. Allocation dynamique et pointeur 1 départ VI. Listes chaînées VII. Sémantique de l affectation 0 arrivée

42 Génie Logiciel I. Exemple II. Pile 3 Mémoire file, départ tourné vers le bas III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation départ -2 arrivée

43 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Une pile est donc une structure de données linéaire dans laquelle ajout et suppression se font au même bout de la structure : son sommet. On dit qu on empile lorsque l on ajoute un nouvel élément à la pile et cet ajout se fait au sommet de la pile. On dit qu on dépile lorsque l on supprime un élément de la pile et puisque la suppression se fait aussi au sommet de la pile, l élément supprimé est nécessairement le dernier élément à avoir été empilé. Une pile est aussi désignée par l acronyme anglais LIFO (Last In First Out). Une pile permet par exemple à un navigateur (Firefox, IE...) de gérer le bouton reculer d une page ou pour un logiciel de gérer la fonctionnalité undo.

44 spécification fonctionnelle I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Elle est donc définie par le type de données abstrait pile suivant : type pile utilise type E, type booléen signature initilialiser : pile empiler : (pile,e) pile dépiler : pile pile sommet : pile E vide : pile booléen

45 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation préconditions axiomes dépiler(p) est défini si et seulement si vide(p)= Faux sommet(p) est défini si et seulement si vide(p)= Faux vide(initilialiser)= Vrai vide(empiler(p,e))=faux dépiler(empiler(p,e))=p sommet(empiler(p,e))= E remarques : les préconditions précisent la restriction du domaine de définition des deux opérations dépiler et sommet les axiomes assurent le fonctionnement LIFO.

46 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

47 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

48 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

49 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur On va réaliser une pile d entiers de façon à ce qu elle soit réutilisable. Pour cela on utilisera la notion de paquetage qui représente une unité de bibliothèque utilisable par la clause with que l on utilise par exemple pour appeler les procédures d entrée-sortie. Ada nous permet de séparer spécification fonctionnelle et spécification opérationnelle. VI. Listes chaînées VII. Sémantique de l affectation

50 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Dans un fichier toto.ads (de suffixe ads pour Ada Specification) sont déclarés les types implémentant la structure de données les procédures et fonctions de la signature puis dans un fichier toto.adb (de suffixe adb pour Ada Body) seront précisés les corps des procédures et fonctions déclarées dans le fichier toto.ads. Un utilisateur du paquetage toto pourra utiliser tout ce qui est présent dans toto.ads (type et opérations). remarque : le fichier toto.adb peut contenir d autres déclarations servant à la réalisation des opérations de la spécification mais ces opérations n ont pas pour but d être utilisées par un utilisateur du paquetage toto.

51 le fichier pileentier.ads I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur package pileentier is type contenant is array ( positive range <>) of integer ; type pile is record tabpile : contenant (1..256) ; top : natural ; end record ; procedure initpile (p : out pile ) ; procedure empiler (p : in out pile ; e : in integer ) ; procedure depiler (p : in out pile ) ; function sommet (p : pile ) return integer ; function pilevide (p : pile ) return boolean ; end pileentier ; VI. Listes chaînées VII. Sémantique de l affectation

52 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées le fichier pileentier.adb package body pileentier is procedure initpile (p : out pile ) is begin p. top := 0; end initpile ; procedure empiler (p : in out pile ; e : in integer ) is begin p. tabpile (p. top+1) := e ; p. top := p. top+1 ; end empiler ; procedure depiler (p : in out pile ) is begin p. top := p.top 1 ; end depiler ; function sommet (p : pile ) return integer is begin return (p. tabpile (p. top )) ; end sommet ; function pilevide (p : pile ) return boolean is begin return (p. top=0) ; end pile vide ; end pileentier ; VII. Sémantique de l affectation

53 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

54 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

55 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

56 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

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

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

Plus en détail

Arbres binaires de recherche

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

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

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

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

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

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

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

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

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

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

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

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

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

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

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

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

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

F. Barthélemy. 17 mai 2005

F. Barthélemy. 17 mai 2005 Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes

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

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

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

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

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

Styler un document sous OpenOffice 4.0

Styler un document sous OpenOffice 4.0 Mars 2014 Styler un document sous OpenOffice 4.0 Un style est un ensemble de caractéristiques de mise en forme (police, taille, espacement, etc.) qui sert à structurer un document en l organisant de manière

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Chapitre VIII. Les bases de données. Orientées Objet. Motivation Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

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

3. UML - Unified Modeling Language Diagrammes statiques

3. UML - Unified Modeling Language Diagrammes statiques 3. UML - Unified Modeling Language Diagrammes statiques Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct... Université Bordeaux 1 table des matières Licence Semestre 3 - Algorithmes et structures de données 1 Dernière mise à jour effectuée le 23 Octobre 2013 Piles et Files Déitions Primitives de piles, exemples

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Le langage VHDL. Eduardo Sanchez EPFL

Le langage VHDL. Eduardo Sanchez EPFL Le langage VHDL Eduardo Sanchez EPFL Livres conseillés: John F. Wakerly Digital design (4th edition) Prentice Hall, 2005 Peter J. Ashenden The designer's guide to VHDL (3rd edition) Morgan Kaufmann, 2008

Plus en détail

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

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

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE Une application se construit par étapes 1) CAHIER DES CHARGES + ANALYSE FONCTIONNELLE = organisation fonctionnelle (QUE FAIRE) 2) ANALYSE OPERATIONNELLE

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files Chapitre 7 (suite) Listes particulières Pile : liste particulière T. A. D. pile insertion et suppression au sommet de la pile extraction Files queue Listes doublement chaînées insertion file : liste particulière

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

Service On Line : Gestion des Incidents

Service On Line : Gestion des Incidents Service On Line : Gestion des Incidents Guide de l utilisateur VCSTIMELESS Support Client Octobre 07 Préface Le document SoL Guide de l utilisateur explique comment utiliser l application SoL implémentée

Plus en détail

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut

Plus en détail