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.

Algorithmique et Analyse d Algorithmes

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

Plus en détail

Gé n é r icit é e n AD A. Pa q u e t a g e g é n é r iq u e ( 1 /2 )

Gé n é r icit é e n AD A. Pa q u e t a g e g é n é r iq u e ( 1 /2 ) Gé n é r icit é e n AD A La notion de sous-programme permet la réutilisation de code Les paquetages et la POO permettent de réutiliser du code de façon robuste en masquant une partie de celui-ci par excapsulation

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

Conception modulaire : les paquetages. Chapitre 12

Conception modulaire : les paquetages. Chapitre 12 Conception modulaire : les paquetages Chapitre 12 1 Les paquetages : intérêt Les applications informatiques devenant de plus en plus complexes, il y a nécessité de : travailler en équipe réutiliser des

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

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

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

Plus en détail

Plan du cours. Structure de FILE. Exemples de files. Objectif. Nour-Eddine Oussous. 30 novembre 2009

Plan du cours. Structure de FILE. Exemples de files. Objectif. Nour-Eddine Oussous. 30 novembre 2009 Nour-Eddine Oussous 30 novembre 2009 du cours File d attente : définition Réalisation Exercices Présenter une structure de données très utilisée en informatique et dans la vie courante files d attente

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

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Introduction à Ada 95

Introduction à Ada 95 Introduction à Ada 95 1 Programmation par Objets Approche "Type Abstrait de Données" Le système est décrit en terme d'"objets" représentant des entités réelles ou abstraites du domaine Chaque objet contient

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

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

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Chapitre 3 : Fichiers séquentiels Entrées/Sorties Fichiers Binaires à Accès Séquentiel Fichiers et Ada!! En Ada les entrées/sorties sont supportées par des paquetages standards

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

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

É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

Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012. Les Files

Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012. Les Files . Ecole Nationale Polytechnique Département Génie Industriel Année Universitaire 2011/2012 Algorithmique et Programmation Les structures de données Les Files Introduction Une File ressemble fortement à

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

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

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

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

Plus en détail

Programmation Par Objets et Langage Java

Programmation Par Objets et Langage Java Programmation Par Objets et Langage Java Partie I. Fondement de la POO (Modularité/Abstraction) Najib Tounsi Ecole Mohammadia d'ingénieurs, Rabat Année 2011/2012 1ère année Génie Informatique http://www.emi.ac.ma/ntounsi/cours/java/poojavapart-1.pdf

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

Programmer avec Xcas : version 0.8.6 et 0.9

Programmer avec Xcas : version 0.8.6 et 0.9 Programmer avec Xcas : version 0.8.6 et 0.9 I. L environnement de travail de Xcas Xcas permet d écrire des programmes, comme n importe quel langage de programmation. C est un langage fonctionnel. L argument

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

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

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

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

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

Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C

Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C Durée : 2h. - Documents et Calculatrices autorisés. Toutes les réponses doivent être justifiées - Les exercices

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

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 5. Tableaux

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

Plus en détail

ALICE Prise en main du logiciel

ALICE Prise en main du logiciel Alice : Manuel de prise en main 1/9 Introduction Alice est un programme qui permet de construire des mondes virtuels composés d objets en 3 dimensions. Ces objets respectent la logique de la programmation

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

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

Chapitre 3 Structures de données linéaires : listes, piles et files

Chapitre 3 Structures de données linéaires : listes, piles et files Chapitre 3 Structures de données linéaires : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de données de base telles les listes en général

Plus en détail

Les types utilisateurs (VBA) Corrigé

Les types utilisateurs (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 2 avril mai 2013 Corrigé Résumé Ce document décrit comment traduire en VBA les types utilisateur du langage algorithmique. Table des matières

Plus en détail

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Rappels sur l objet Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Objectifs de ce cours 2 Rappels sur les concepts fondamentaux liés à la

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

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

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

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

Structures de données linéaires

Structures de données linéaires Structures de données linéaires I. Liste, Pile et file. Une liste linéaire est la forme la plus simple et la plus courante d'organisation des données. On l'utilise pour stocker des données qui doivent

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl. UFR IEEA Licence info et GMI documentation COMPIL 2007-2008 FIL Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.fr 1 raccourci pour Java-Based Constructor of Useful Parsers est un

Plus en détail

Chap. VII : arbres binaires

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

Plus en détail

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

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

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

Notion d indirection (1) 1

Notion d indirection (1) 1 Notion d indirection (1) 1 Illustration 1: Pourquoi garder une copie des fichiers postscript du cours dans mon répertoire, si je sais où se trouve l original sur le web? pour accéder à l original au cas

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

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 5 : PL/SQL : ou comment faire plus avec ORACLE 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Curseurs et mise à jour 2 Paquetages Definition

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

Programmation générique des arbres binaires de recherche AVL et applications

Programmation générique des arbres binaires de recherche AVL et applications Introduction Programmation générique des arbres binaires de recherche AVL et applications Ce TP porte sur l étude d une structure de données appelée arbres binaires de recherche qui sert généralement à

Plus en détail

Héritage [he] Exercices résolus

Héritage [he] Exercices résolus Héritage [he] Exercices résolus Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 29 avril 2015 Table des matières 1 Comptes bancaires 1 1.1 Classe CBancaire...............................

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

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

Plus en détail

Programmation orientée objet dans VFP QUELQUES CONCEPTS FONDAMENTAUX ET LEURS APPLICATIONS DANS VFP

Programmation orientée objet dans VFP QUELQUES CONCEPTS FONDAMENTAUX ET LEURS APPLICATIONS DANS VFP Programmation orientée objet dans VFP QUELQUES CONCEPTS FONDAMENTAUX ET LEURS APPLICATIONS DANS VFP Avertissement : qui suis-je? d où viens-je? 30 années de développement de progiciels de gestion dans

Plus en détail

ACCOV 2001-2002. Système avec des processus concurrents

ACCOV 2001-2002. Système avec des processus concurrents projet ACCOV 2001-2002 ACCOV 2001-2002. Système avec des processus concurrents procedure Main is type TabDoc is array(1..6) of Document; -- contrôle l'attribution d'un nom unique package ProcId is procedure

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

Interrogationécrite d 'InformatiqueUV2

Interrogationécrite d 'InformatiqueUV2 1ères années INSA 2005/06 Durée : 1H15 Interrogationécrite d 'InformatiqueUV2 Les documents sont autorisés, aucune feuille adjointe ne sera prise en compte. Toutes vos réponses doivent figurer dans ce

Plus en détail

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

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

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

Documentation Talend. Charly Riviere CDG35

Documentation Talend. Charly Riviere CDG35 Documentation Talend Charly Riviere CDG35 1. Présentation générale Talend est un ETL pour "Extract Transform Load". Comme son nom l'indique il permet d'extraire des données pour ensuite les transformer

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Soutien Informatique

Soutien Informatique 1/51 Soutien Informatique Nicolas Castagné et François Portet PHELMA 2/51 Sommaire Allocation Mémoire Les types abstraits de données 3/51 Allocation dynamique de mémoire (stdlib.h,string.h) Réserver un

Plus en détail

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Objectifs du cours d aujourd hui Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Continuer l approfondissement de la programmation de

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

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

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

Résumé Introduction Programmation Java

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

Plus en détail

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15 Tabledesmatières 1 IntroductionaulangageJava 1 1.1 EnvironnementJava... 1 1.1.1 Compilation... 2 1.1.2 Interprétation... 2 1.2 Programmationorientée-objet... 2 1.2.1 Classe... 3 1.2.2 Objet... 4 2 Syntaxedulangage

Plus en détail

Exercices VHDL pour l évaluation

Exercices VHDL pour l évaluation Outils informatiques 25-26 Exercices VHDL pour l évaluation Alain Vachoux EPFL/STI-IMM-LSM alain.vachoux@epfl.ch Organisation des exercices Les informations sur l organisation des exercices se trouvent

Plus en détail

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

3.3 Les Files d attente (Queues)

3.3 Les Files d attente (Queues) 3.3 Les Files d attente (Queues) 3.3.1 Définition La file d attente est une structure qui permet de stocker des objets dans un ordre donné et de les retirer dans le même ordre, c est à dire selon le protocole

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

QC ETL QUASAR Conseil QC ETL. - 1 - Qu est-ce qu un ETL? - 2 Les fonctionnalités de QC ETL. - 3 L écriture de procédures de transformation

QC ETL QUASAR Conseil QC ETL. - 1 - Qu est-ce qu un ETL? - 2 Les fonctionnalités de QC ETL. - 3 L écriture de procédures de transformation QC ETL - 1 - Qu est-ce qu un ETL? - 2 Les fonctionnalités de QC ETL - 3 L écriture de procédures de transformation 1 1 Qu est-ce qu un ETL? La création d un SIAD (Système d Information d Aide à la Décision)

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

Bases de données et sites WEB Cours 2 : SQL3 Modèle

Bases de données et sites WEB Cours 2 : SQL3 Modèle Bases de données et sites WEB Cours 2 : SQL3 Modèle 1 Plan Insuffisances du modèle relationnel Concepts objet Modèle Objet-relationnel et SQL3 2 Insuffisances du modèle relationnel Opérations séparées

Plus en détail

CHAPITRE 4-1. Exceptions. Ingénierie du Logiciel avec Ada -- Louis Granger--chap4-exception.ppt--5--1--2007-02-06-11:05

CHAPITRE 4-1. Exceptions. Ingénierie du Logiciel avec Ada -- Louis Granger--chap4-exception.ppt--5--1--2007-02-06-11:05 CHAPITRE 4-1 Exceptions 4-1-1 Ingénierie du Logiciel avec Ada -- Louis Granger--chap4-exception.ppt--5--1--2007-02-06-11:05 EXCEPTIONS Peu de langages permettent à l'usager de prendre le contrôle lorsqu'une

Plus en détail

TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td.

TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td. Exercice 1 TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td.htm Exercices de base de Programmation Arbre Programmatique

Plus en détail

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications Le langage Forth Brique ROSE Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Le langage Forth 1 / 26 Qu est-ce que Forth? Langage sans syntaxe Mots

Plus en détail

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images PROJET C : Traitement d images 1 SOMMAIRE 1) Schéma et structure a) Schéma de la structure b) Les structures utilisées La structure image La structure calque La structure LUT La structure Historique et

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

SGBD orientés objet. Généralités Modèles de données et SGBD orientés objet 03/03/2015. Définitions. Concepts Généraux

SGBD orientés objet. Généralités Modèles de données et SGBD orientés objet 03/03/2015. Définitions. Concepts Généraux SGBD orientés objet Définitions Généralités Modèles de données et SGBD orientés objet MDOO : Un modèle de données qui capture la sémantique des objets supportée en programmation objet. Concepts Généraux

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage IV. Structures linéaires : les files et les piles. Les files et les piles sont des listes d'éléments organisées selon l'odre

Plus en détail

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir Consignes pour le bons déroulement du devoir - Ce document comporte un QCM et une partie où il faut écrire du code en - Marquez vos réponses au QCM sur la feuille de réponses fournie (notez que certaines

Plus en détail

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

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

Plus en détail

Norme de programmation pour le cours et les travaux pratiques

Norme de programmation pour le cours et les travaux pratiques Université du Québec École de technologie supérieure Service des enseignements généraux www.seg.etsmtl.ca INF130 Ordinateurs et programmation Norme de programmation pour le cours et les travaux pratiques

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

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

PG208, Projet n 2 : Dessin vectoriel

PG208, Projet n 2 : Dessin vectoriel PG208, Projet n 2 : Dessin vectoriel Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail