Haut PDF [PDF] Cours Héritage non-conforme en Eiffel | Formation informatique

[PDF] Cours Héritage non-conforme en Eiffel | Formation informatique

[PDF] Cours Héritage non-conforme en Eiffel | Formation informatique

Figure 2. Un exemple d’héritage d’implantation 5.2. Héritage d’implantation La possibilité de factoriser des comportements faisait partie de notre cahier des charges pour l’héritage non-conforme. Nous voulions pouvoir écrire une classe qui hérite d’une autre pour utiliser son comportement, mais en exportant une interface différente de celle de la classe mère. Nous avons déjà rencontré un exemple de cette utilisation de l’héritage, qui porte le nom d’héritage d’implantation, sous la forme des classes STACK et ARRAY. Nous avons employé à plusieurs reprises l’hé- ritage d’implantation dans le compilateur et la bibliothèque standard. Par exemple, les classes AVL_DICTIONARY (dictionnaire associatif) et AVL_SET (ensemble) uti- lisent toutes les deux une classe AVL_TREE (arbre AVL) pour leur implantation. Un autre exemple, tiré du compilateur, est présenté en figure 2. Les classes abstraites INSTRUCTION et EXPRESSION représentent respectivement une instruction et une ex- pression du programme Eiffel source. Chacune de ces classes a de nombreux des- cendants, dont respectivement CREATE_INSTRUCTION et CREATE_EXPRESSION, qui représentent respectivement une instruction et une expression de création d’un nou- vel objet. Ces classes présentent des interfaces différentes, mais la majeure partie du code a pu être mise en commun dans une classe CREATE_SUPPORT. En faisant hériter CREATE_INSTRUCTION et CREATE_EXPRESSION de CREATE_SUPPORT de manière non-conforme, nous avons pu modéliser le fait que, bien qu’elles emploient les mêmes mécanismes sous-jacents, les instructions et les expressions de création jouent dans le compilateur des rôles qui ne sont jamais interchangeables.
En savoir plus

15 En savoir plus

[PDF] Cours Langages Eiffel mécanismes d'héritage | Formation informatique

[PDF] Cours Langages Eiffel mécanismes d'héritage | Formation informatique

Ceci pose un certain nombre de problèmes non triviaux, aussi bien au niveau de la définition du langage qu'à celui de son implémentation. On suppose, en effet, qu'il n'est pas possible de définir une relation d'héritage circulaire dans laquelle une classe pourrait hériter (directement ou indirectement) d'elle-même. Il est par contre possible qu'une classe hérite d'une même super-classe par deux, ou plusieurs, chemins distincts.

43 En savoir plus

[PDF] Cours langage C++ : classes, Héritage et Polymorphisme | Formation informatique

[PDF] Cours langage C++ : classes, Héritage et Polymorphisme | Formation informatique

Mais il faut modifier la classe Array : c’est là qu’intervient le mot clé protected : il permet l’accès aux champs et aux méthodes de la classe Array qui ne sont pas publiques aux classes dérivées (et uniquement à elles). Notons qu’il n’est pas forcément nécessaire d’avoir cette partie protected : soit parce que la classe dérivée n’a pas besoin d’avoir accès aux méthodes non publiques de la classe de base, soit parce qu’elle y accède par des méthodes de la classe de base.

75 En savoir plus

[PDF] Cours Paquetage et Héritage en langage ADA | Formation informatique

[PDF] Cours Paquetage et Héritage en langage ADA | Formation informatique

Ordonnancement avec Ada 2005 (5) • Cohabitation de tâches critiques et non critiques grâce à des politiques différentes selon les niveaux de priorité : pragma P r i o r i t y _ S p e c i f i c _ D i s p a t c h i n g ( F I F O _ W i t h i n _ P r i o r i t i e s , 3 , 3 1 ) ; pragma P r i o r i t y _ S p e c i f i c _ D i s p a t c h i n g (

128 En savoir plus

[PDF] Cours Eiffel classes fiables Assertions et débogage | Formation informatique

[PDF] Cours Eiffel classes fiables Assertions et débogage | Formation informatique

Assertions au niveau des routines Les routines en Eiffel peuvent être réglementées par des pré­ et des post­conditions qui sont des  assertions placées respectivement dans les blocs requ[r]

7 En savoir plus

[PDF] Cours Attributs Variables et Types de base Eiffel pdf | Formation informatique

[PDF] Cours Attributs Variables et Types de base Eiffel pdf | Formation informatique

Visibilité Les variables définies dans une classe appartiennent à deux catégories: les variables d'instance et les  variables locales Variables d'instance Les variables d'instance sont d[r]

8 En savoir plus

[PDF] Cours Paquetage et Héritage ADA en pdf | Formation informatique

[PDF] Cours Paquetage et Héritage ADA en pdf | Formation informatique

Package body  nom_du_paquetage  is  begin  ­­implementation des specifications;   End  nom_du_paquetage;  n  Un paquetage  peut être déclaré dans un bloc  Nom_du_bloc;   declare  package[r]

21 En savoir plus

[PDF] Cours pdf classes et objets en Eiffel | Formation informatique

[PDF] Cours pdf classes et objets en Eiffel | Formation informatique

De façon surprenante, le programme test affiche la même valeur 9 pour i.value et j.value alors qu'on  attendrait i égal à 9 et j à 5. Pourquoi?  A la ligne 13, l'objet i est créé avec create, qui réserve de la place mémoire pour stocker les attributs  de   l'objet   i.   La   ligne   14   « j   :=   i »   ne   provoque   pas   la   copie   de   l'objet   i   dans   l'objet   j,   mais  simplement, affecte à l'objet j, un «lien» vers l'objet i (une référence dans le jargon informatique).  Ce « lien » permet à l'objet j de retrouver l' emplacement mémoire où se situe l'objet i. 
En savoir plus

15 En savoir plus

[PDF] Cours premiers pas en Eiffel pdf | Formation informatique

[PDF] Cours premiers pas en Eiffel pdf | Formation informatique

Une routine appelée aussi méthode dans d'autres langages à objets soit se conformer à la syntaxe  suivante: nom_de_la_routine is →   →   →   ­­ On peut ajouter un commentaire →   →   →  [r]

20 En savoir plus

[PDF] Cours en pdf Eiffel Les collections | Formation informatique

[PDF] Cours en pdf Eiffel Les collections | Formation informatique

Remarque:   On   pourrait   déterminer   automatiquement   la   nature   de   la   séquence   d'après   sa  composition   en   lettres   mais   cela   dépasse   le   cadre   de   cet   exemple.   Vous   pouvez  parfaitement essayé de le faire mais faire attention aux nucléotides qui peuvent être  définis   différemment   selon   les   tables   utilisées   (pour   plus   de   détail,   voir  http://www.infobiogen.fr/doc/documents.php?cours=tabaanuc)

15 En savoir plus

[PDF] Cours en pdf Eiffel Composition et héritage | Formation informatique

[PDF] Cours en pdf Eiffel Composition et héritage | Formation informatique

feature do_complex_things(a,b : REAL; c : SEQUENCE)  is do Precursor(a,b,c) ­­ add new computations end class SEQUENCE_OF_PROTEIN inherit SEQUENCE redefine calc_weight end creation from_[r]

6 En savoir plus

[PDF] La technologie objet Eiffel cours pdf | Formation informatique

[PDF] La technologie objet Eiffel cours pdf | Formation informatique

Et si nous faisons h´ eriter SQUARE de RECTANGLE ? En appliquant : ⇒ “h´ erite de ¿¿ = ¡¡ est une sp´ ecialisation de” C ¸ a ne marche pas non plus nous apprend la programmation contractuelle car on peut changer une dimension d’un rectangle sans changer l’autre.

64 En savoir plus

[PDF] Cours Langages Eiffel pas à pas complet | Formation informatique

[PDF] Cours Langages Eiffel pas à pas complet | Formation informatique

La vue 192 montre quelques fuites de m´emoire pas forc´ement ´evidentes. Pour chaque fuite, une solution est propos´ee en bas de la mˆeme vue. La fuite #1 est li´ee au fait qu’une chaˆıne manifeste est cr´e´ee lors de chaque ´evaluation de l’expression "Memory leak" . La solu- tion pour cette fuite #1 repose sur l’utilisation du mot clef once directement devant cette chaˆıne explicite (ce raccourci d’´ecriture est ´egalement autoris´e devant les objets U"foo" de la classe unicode string). La fuite #2 est corrig´ee en ´evitant de convertir l’entier en une string avant de l’imprimer. La fuite #3 est corrig´ee en utilisant append in de la classe integer ` a la place de append de la classe string. Pour d´etecter les fuites de la cat´egorie #1, le compilateur dispose depuis peu d’une nouvelle option : -manifest string trace (se reporter ` a la documentation disponible sur le site web de SmartEiffel pour les d´etails). Pour les autres fuites de m´emoire et de mani`ere g´en´erale, pour mesurer la consommation m´emoire par cat´egorie d’objets Eiffel allou´es, le compilateur dispose ´egalement d’une option qui demande au ramasse-miettes de faire ´etat des objets allou´es (cf. option -gc info). Exercice 56 Combien d’objets de la classe string sont allou´es lors de l’ex´ecution de l’instruction suivante :
En savoir plus

177 En savoir plus

[PDF] Formation informatique Dactylographie-Bureautique pdf | Cours informatique

[PDF] Formation informatique Dactylographie-Bureautique pdf | Cours informatique

L A SAISIE OU L ' ENCODAGE AU CLAVIER L'apprentissage du clavier s'effectue sur ordinateur. La rangée repère est "azer". L'utilisation des dix doigts permet de créer des repères et d'utiliser le clavier sans le regarder. En effet, seule la méthode "aveugle" permet de progresser en rapidité d'exécution. Cette méthode permet de respecter un maintien conforme aux règles d'ergonomie.

24 En savoir plus

[PDF] Le langage C# cours pas à pas en pdf | Formation informatique

[PDF] Le langage C# cours pas à pas en pdf | Formation informatique

{ "Crovax" , "Popi" }); »). Params accepte aussi la syntaxe avec array en argument. Nous utilisons le mot clef « out » dans la méthode statique « TryParse » d’Int32, ce mot clef apparait pour dire que l’argument passe par référence. C'est-à-dire que la variable pourra être modifiée dans la méthode, car les types « valeurs » ne sont jamais modifiées quand ils sont passés en argument sans mots clefs spécifiant le contraire. Un mot clef très proche de out existe : ref. La seule différence est que l’on utilise out pour une méthode qui vas donner une valeur sans tenir compte de l’actuelle tant disque ref sera plus utilisé pour traiter une variable faire en sorte qu’elle ait une nouvelle valeur à partir de sa valeur actuelle. De ce fait, ref attend une variable ayant une valeur attribuée tandis que out une variable déclarée même sans attributions fera l’affaire. De ce fait on n’est obligé de passer des variable et non pas des valeurs pour que la méthode puisse mettre ses données quelque part. TryParse procède comme Parse sauf qu’il entre 0 dans la variable au lieu de générer des erreurs. Les mots clefs param, ref et out paraissent dans les prototypes/signature des méthodes qui les utilisent.
En savoir plus

42 En savoir plus

[PDF] Formation pas à pas en Algorithmique en pdf | Cours informatique

[PDF] Formation pas à pas en Algorithmique en pdf | Cours informatique

Pour rester dans le pire des cas, on pourrait peut-être calculer une formule exacte pour chaque algorithme. Pourtant cela est souvent complexe à obtenir avec précision. Une formule exacte pourrait aussi dépendre de certains détails secondaires, qui changent quand on change la des- cription formelle d'un algorithme. De plus, pour avoir une formule exacte, il faudrait connaître le temps d'exécution de chaque opération, e non pas considérer tous les pas comme équivalents. Finalement, on observe aussi que le temps d'exécution devient crucial seulement pour des don- nées relativement grandes. Il est donc intéressant d'évaluer le temps d'exécution asymptotique, c'est-à-dire, pour des données dont la taille tend vers l'inni.
En savoir plus

51 En savoir plus

[PDF] Cours C++ de base pdf | Formation informatique

[PDF] Cours C++ de base pdf | Formation informatique

Dans votre programme de test, essayez d’instancier votre classe Fifo avec plusieurs types très différents (char, double, pointeurs...). 1.3 Note sur l’instanciation des classes génériques ( templates ) Lorsque le compilateur instancie une classe générique comme Stack ou Fifo, il produit le code source des classes correspondant aux divers paramètres d’instanciation 2 . À cause du mécanisme de compilation séparée de C/C++, le compilateur a besoin non seulement de la définition de la classe, mais encore de la définition (du corps) de toutes ses fonctions-mem- bres. Ceci explique que, contrairement aux (bonnes) habitudes, la distinction entre fichier d’entête (.h) et fichier de corps (.cpp) est, dans le cas des templates, sans grande signification
En savoir plus

48 En savoir plus

[PDF] Cours HTML Pas à Pas en PDF | Formation informatique

[PDF] Cours HTML Pas à Pas en PDF | Formation informatique

HTML veut dire L’Hypertext Markup Languag , il est conçu pour créer de page web . 2) Quels logiciels utiliser pour HTML ? Je suis sûr que vous pensez qu’un logiciel spécifié existe pour HTML Mais la réponse est non, HTML peut être écrit soit dans le bloc note qui se trouve dans

14 En savoir plus

[PDF] Cours de Haskell en pdf | Formation informatique

[PDF] Cours de Haskell en pdf | Formation informatique

Benoît Fraikin Département d’informatique UNIVERSITÉ DE SHERBROOKE 28 juin 2012 1 / 42 UNIVERSITÉ DE SHERBROOKE Plan de la séance 1 Présentation d’Haskell Historique Caractéristiques 2 I[r]

6 En savoir plus

[PDF] Cours informatique Initiation Android | Formation informatique

[PDF] Cours informatique Initiation Android | Formation informatique

- Le nom du composant ciblé permet de spécifier de façon non ambiguë le nom du composant qui sera utilisé pour réaliser l'opération. (Si le nom n'est pas spécifié, le système déterminera le composant le plus approprié.) - L'action: chaines de caractères définissant l'action à réaliser. (Dans le cadre d'un récepteur d'Intents, il s'agira de l'action qui s'est produite et pour laquelle le système ou l'application informe toutes les autres.)

35 En savoir plus

Show all 10000 documents...