Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : IFT Programmation orientée objet. Examen partiel # 2
|
|
- Emma Lecompte
- il y a 6 ans
- Total affichages :
Transcription
1 Département d informatique Professeur : Clermont Dupuis Université Laval Bureau : 3976 IFT Programmation orientée objet Date : 13 décembre 2000 Examen partiel # 2 Documentation permise : 1 feuille 8½" x 11" recto-verso seulement. Question # 1. (3 points) Distinguez entre la relation d héritage, la relation d aggrégation et la relation d amitié? Relation d héritage : Permet de créer une classe à partir d une autre i.e. la nouvelle classe bénéficie des données et fonctions membres publiques ou protégées de la classe dont elle dérive. Dans cette nouvelle classe, vous pouvez ensuite définir de nouveaux membres afin de modifier et spécialiser la classe de base. Relation d agrégation : Permet la définition d un objet composite i.e. un objet créé à partir de plusieurs autres de classes distinctes. C est une alternative à l utilisation de l héritage. Héritage et agrégation ont en commun le fait de créer automatiquement un objet à partir d une autre classe. Relation d amitié : Permet à des fonctions ou à des classes d accéder aux membres privés ou protégés d une autre classe. Les fonctions et classes amies sont spécifiées dans la classe pour laquelle vous souhaitez accéder aux membres. Une fonction amie n est pas une fonction membre de la classe. Question # 2. (9 points) Il existe trois étapes de mise en œuvre du mécanisme de gestion des erreurs et des exceptions. (i) Quelles sont ces trois étapes et quel est leur rôle? - définir une classe d exception Correspond à une classe C++ qui peut fournir des informations sur une erreur.
2 - lancer l exception Toute fonction qui souhaite lancer une exception doit utiliser l opérateur «throw» suivi par un objet créé à partir d une classe d exception. Le but de cet opérateur est de quitter la fonction qui l utilise et d informer la fonction appelante qu une exception a été générée. - intercepter l exception Pour intercepter une exception, le C++ fournit le bloc «try» renfermant des appels de fonctions pouvant générer des exceptions et plusieurs blocs «catch» qui s exécutent chacun pour une exception d un type donnée. (ii) Mettre en application les trois étapes de ce mécanisme dans la définition de la classe suivante : class Collection_de_tableaux /* Spécification fonctionnelle de la classe " Collection_de_tableaux ". Composantes : Structure : Chaque composante représente un tableau avec ses caractéristiques. La structure choisie est un ensemble. Chaque composante est représentée de façon unique par son numéro d'identification. Domaine : Les caractéristiques d'un tableau sont : - un numéro d'identification, - le nom du peintre, - l'année d'obtention du tableau - l'estimation de la valeur courante de ce tableau. */ protected: struct tableau int ident; int annee; float valeur_courante; char nom[20+1]; struct tableau * suivant; ; struct tableau * ptableau; 2
3 public: void Creer_Collection_de_tableaux(); /* Permet de créer une collection de tableaux vide. Pré - Nil. Post - Nous avons une collection vide. */ void Ajouter_Tableau ( int numero_identification, char nom_peintre[20+1], int annee_obtention, float estimation_valeur_courante ); /* Permet d'ajouter un nouveau tableau à la collection ayant les caractéristiques passées en paramètres. Pré - La collection a déjà été créée et il n'y existe pas de tableau identifié par "numero_identification". Post - Un nouveau tableau ayant les caractéristiques mentionnées est ajouté à la collection. */ bool Existe_Tableau( int numero_identification); /* Permet de déterminer si un tableau identifié par "numero_identification" existe dans la collection. Pré - La collection a déjà été créée. Post - Retourne true si ce tableau existe, false sinon. */ void Departir_Tableau(int numero_identification); /* Permet de se départir d'un tableau identifié par "numero_identification" dans la collection. Pré - La collection a déjà été créée et le tableau spécifié existe dans la collection. Post - Le tableau identifié par "numero_identification" est retiré de votre collection. */ float Valeur_courante_de_collection(); /* Retourne la valeur totale de la collection. Pré - La collection a déjà été créée. Post - Retourne la somme des estimations des valeurs courantes des tableaux de la collection. */ ;
4 #include "string.h" #include "Collection_de_tableaux.h" void Collection_de_tableaux::Creer_Collection_de_tableaux() ptableau = NULL; void Collection_de_tableaux::Ajouter_Tableau ( int numero_identification, char nom_peintre[20+1], int annee_obtention, float estimation_valeur_courante ) struct tableau * Q; Q = new tableau; Q -> suivant = ptableau; ptableau = Q; Q -> ident = numero_identification; Q -> annee = annee_obtention; Q -> valeur_courante = estimation_valeur_courante; strcpy(q -> nom, nom_peintre); bool Collection_de_tableaux::Existe_Tableau( int numero_identification) struct tableau * Q; Q = ptableau; while (Q!= NULL) ; return false; if (Q -> ident == numero_identification) return true; else Q = Q -> suivant; void Collection_de_tableaux::Departir_Tableau(int numero_identification) struct tableau * Q; struct tableau * R; if ((ptableau -> ident) == numero_identification) Q = ptableau; ptableau = ptableau -> suivant; delete Q; 4
5 else Q = ptableau; R = ptableau -> suivant; while (R -> ident!= numero_identification) Q = R; R = R -> suivant; ; Q -> suivant = R -> suivant; delete R; ; float Collection_de_tableaux::Valeur_courante_de_collection() float Valeur; Valeur = 0.0; struct tableau * Q; Q = ptableau; while (Q!= NULL) Valeur = Valeur + Q -> valeur_courante; Q = Q -> suivant; ; return Valeur; - définir une classe d exception Définissons la classe Erreur suivante : class Erreur public : int code_erreur; - lancer l exception int ident; Ajouter au début de la fonction «Ajouter_Tableau» : Erreur Exc; if (Existe_Tableau( numero_identification)) Exc.code_erreur = 0; Exc.ident = numero_identification; throw Exc; ; 5
6 Ajouter au début de la fonction «Departir_Tableau» : Erreur Exc; if (Existe_Tableau(numero_identification) == FALSE) Exc.code_erreur = 1; Exc.ident = numero_identification; throw Exc; ; - intercepter l exception #include <iostream.h> #include "Collection_de_tableaux" void main() Collection_de_tableaux C; try traitement effectué sur la collection C catch(erreur Exc) switch( Exc.code_erreur) case 0 : cout << "Le tableau suivant existe : " << Exc.ident; break; case 1 : cout << "Le tableau suivant n existe pas : " << Exc.ident; break; Question # 3. (5 points) Reconsidérons la définition de la classe «Collection_de_tableaux» à la question précédente. En procédant par surcharge d opérateur, introduire une nouvelle fonction permettant d afficher à l écran les caractéristiques de chaque tableau de la collection. Apportez les ajouts nécessaires dans les fichiers «Collection_de_tableaux.h» et «Collection_de_tableaux.cpp». i) Ajouter dans le fichier «Collection_de_tableaux.h» la déclaration suivante : friend ostream& operator << (ostream& sortie, Collection_de_tableaux &C); 6
7 ii) Ajouter dans le fichier «Collection_de_tableaux.cpp» l implantation suivante : ostream& operator << (ostream& sortie, Collection_de_tableaux &C) struct tableau * Q; Q = C.pTableau; sortie.setf(ios:: left, ios:: adjustfield); while (Q!= NULL) sortie << "Identification : "; sortie << (Q -> ident); sortie << "Annee : " ; sortie << (Q -> annee); sortie << "Valeur courante : " ; sortie << (Q -> valeur_courante); sortie << "Peintre : "; sortie << (Q -> nom); sortie << endl; Q = Q -> suivant; ; return sortie; Question # 4. (10 points) Donnez la spécification fonctionnelle et l'implantation de la classe "File" selon le protocole «premier arrivé, premier sorti», en utilisant le concept de modèle («template»). Les méthodes suivantes seront disponibles : création d'une file, ajout d'un élément dans la file, enlèvement d'un élément de la file, longueur de la file et tester si une file est vide. Note : Aucune contrainte n est imposée sur le nombre d éléments faisant partie de la file. template <class element> class file /* Spécification fonctionnelle de la classe " file ". Éléments : Structure : Chaque sommet de la file renferme l'adresse d'un élément et non pas l'élément lui-même. Le type de chaque élément de la file peut être quelconque. Les éléments sont reliés entre eux permettant de déterminer l'ordre d'arrivée des éléments dans la file. */ 7
8 protected: struct sommet_file element * pelement; struct sommet_file *suivant; ; public: struct sommet_file * debut_file; struct sommet_file * fin_file; int longueur_file; void Creer_file(); /* Permet de créer une file vide. Pré - Nil. Post - La file existe et est vide. */ void Inserer(element * pelement); /* Insérer l'adresse d'un élément dans la file. Pré - La file a déjà été créée et n'est pas pleine. Post - La file renferme pelement et l'interprète comme étant l'adresse de l'élément le plus récent inséré dans la file. */ element * Enlever(); /* Enlever un élément de la file. Pré - La file a déjà été créée et n'est pas vide. Post - L'adresse de l'élément le moins récent inséré dans la file est retourné; cet élément ne fait plus partie de la file. */ bool File_vide(); /* Vérifier si la file est vide ou non. */ Pré - La file a déjà été créée. Post - Si la file ne possède aucun élément alors retourner true sinon retourner false. 8
9 int Longueur_file(); /* Retourner la longueur de la file. ; Pré - La file a déjà été créée. Post - Retourne la longueur de la file. */ #include <iostream.h> #include "File.h" template<class element> void file<element>::creer_file() debut_file = NULL; fin_file = NULL; longueur_file = 0; template<class element> void file<element>::inserer(element * pelement) struct sommet_file *pe = new sommet_file; (*pe).pelement = pelement; (*pe).suivant = NULL; if (longueur_file == 0) debut_file = pe; fin_file = pe; longueur_file = 1; else fin_file -> suivant = pe; fin_file = pe; longueur_file = longueur_file + 1; 9
10 template<class element> element * file<element>::enlever() element * pelement; struct sommet_file *pe = NULL; pelement = debut_file -> pelement; pe = debut_file; if (longueur_file == 1) longueur_file = 0; debut_file = NULL; fin_file = NULL; else longueur_file = longueur_file 1; debut_file = debut_file -> suivant; ; delete(pe); return pelement; template<class element> bool file<element>::file_vide() if (longueur_file == 0 ) return true; else return false; template<class element> int file<element>::longueur_file() return longueur_file; Question # 5. (7 points) Vous possédez une importante collection d'insectes. Chaque insecte de votre collection possède les caractéristiques suivantes: - un code numérique unique - le nom de l'espèce - volant (2 ou 4 ailes) ou rampant (6 ou 8 pattes) 10
11 Vous devez avoir aucune contrainte sur le nombre d'insectes de votre collection. Vous devez pouvoir ajouter un nouvel insecte ou en enlever un à votre collection, accéder à ces caractéristiques, vérifier l'existence d un insecte à partir de son code numérique, calculer le nombre d'insectes faisant partie de la collection ou détruire la collection au complet. La spécification fonctionnelle et la représentation interne des données de la classe «Collection_d_insectes» (i.e. le contenu du fichier en-tête «Collection_d_insectes.h») sont fournies ci-dessous enum categorie volant_2_ailes, volant_4_ailes, rampant_6_pattes, rampant_8_pattes; class Collection_d_insectes /* Spécification fonctionnelle de la classe " Collection_d_insectes ". Composantes : Structure : Chaque composante représente les caractéristiques d un insecte. La structure choisie est un ensemble. Chaque composante est représentée de façon unique par un code numérique. Domaine : Les caractéristiques d'un insecte sont : - un code numérique, - le nom de l espèce, - la catégorie volant (2 ou 4 ailes) ou rampant (6 ou 8 pattes). protected: struct insecte int code; char nom[20+1]; enum categorie cat; struct insecte * suivant; ; struct insecte * pinsecte; int Nb_insectes; public: void Creer_Collection_d_insectes(); /* Permet de créer une collection d insectes vide. Pré - Nil. Post - Nous avons une collection vide. */ */ 11
12 void Ajouter_Insecte ( int code_numerique, char nom_espece[20+1], enum categorie categ ); /* Permet d'ajouter un nouvel insecte à la collection ayant les caractéristiques passées en paramètres. Pré - La collection a déjà été créée et il n'y existe pas d insecte identifié par "code_numerique". Post - Un nouvel insecte ayant les caractéristiques mentionnées est ajouté à la collection. */ bool Existe_Insecte(int code_numerique); /* Permet de déterminer si un insecte identifié par "code_numerique" existe dans la collection. Pré - La collection a déjà été créée. Post - Retourne true si cette insecte existe, false sinon. */ void Departir_Insecte(int code_numerique); /* Permet de se départir d un insecte identifié par "code_numerique" dans la collection. Pré - La collection a déjà été créée et l insecte spécifié existe dans la collection. Post - L insecte identifié par "code_numerique" est retiré de votre collection. */ void Acces_Caracteristiques_Insecte( int code_numerique, enum categorie * categ, char nom_espece[20+1]); /* Fournit les caractéristiques de l insecte dont le code numérique est passé en paramètre. Pré - La collection a déjà été créée et l insecte spécifié existe dans la collection. Post - Retourne la catégorie et le nom de l espèce de l insecte. */ int Nombre_d insectes(); /* Fournit le nombre d insectes faisant partie de la collection. Pré - La collection a déjà été créée. Post - Retourne le nombre d insectes faisant partie de la collection. */ ; void Detruire_Collection(); /* Permet de détruire votre collection au complet. Pré - La collection a déjà été créée. Post - La collection n existe plus. */ 12
13 (i) Proposez une nouvelle façon de représenter les données membres de cette classe en mettant à profit les outils disponibles dans la librairie STL. struct insecte char nom[20+1]; enum categorie cat; ; int Nb_insectes; map <int, insecte> C; (ii) Proposez une implantation des 2 fonctions suivantes : Ajouter_Insecte et Acces_Caracteristiques_Insecte en tenant compte de la nouvelle représentation des données fournie en (i). void Collection_d_insectes :: Ajouter_Insecte ( int code_numerique, char nom_espece[20+1], enum categorie categ ) Nb_insectes = Nb_insectes + 1; insecte I; I.cat = categ; strcpy( I.nom, nom_espece); pair<int, insecte> p(code_numerique, I); C.insert(p); void Collection_d_insectes :: Acces_Caracteristiques_Insecte ( int code_numerique, enum categorie * categ, char nom_espece[20+1] ) map<int, insecte> : :iterator i; i = C.find(code_numerique); (*categ) = (*i).second.categ; strcpy(nom_espece, (*i).second.nom_espece); 13
14 Question # 6. (4 points) Le langage ADA introduit la notion de «package». (i) Donnez 2 ressemblances entre cette notion et le concept de classe. - la définition d un package comporte 2 parties : la spécification (avec une partie visible et une partie cachée) et l implantation ; - un package permet de grouper des types et des fonctions ou procédures ; - les données, fonctions et procédures peuvent être exportées ou privées. (ii) Donnez une différence entre cette notion et le concept de classe. Un package est l équivalent d une classe bien qu aucun mécanisme d instanciation d un package n existe. On ne peut donc créer dynamiquement des objets. Question # 7. (2 points) Donnez 2 différences que l on retrouve entre les langages JAVA et C++ en ce qui a trait aux concepts vus dans ce cours. i) permet de construire des classes à la C++ sans pointeurs explicites; ii) iii) iv) dérivé de C++, mais apuré : suppression de certains types de C (struct et union), suppression des définitions de type (typedef) pas de surcharge d opérateurs pas de conversion de types automatique v) héritage simple seulement. 14
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étailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailPré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étailLangage 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étail1. 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étailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailUne 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étailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailas 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étailExceptions. 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étailCentre 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étailIntroduction à 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étailCours 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étailGOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailPremiers 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étailPlan 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étailIntroduction à 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étailBrefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs
Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailINITIATION 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étailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détailSUPPORT DE COURS. Langage C
Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages
Plus en détailGénéralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code
Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailStructure 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étailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailRAPPELS 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étailPour 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étailArbres 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étailet Programmation Objet
FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailLa programmation orientée objet et le langage C++
Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par
Plus en détailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailServeur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailClasses 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étailINITIATION 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étailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailDéveloppement Logiciel
Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles
Plus en détailInformatique III: Programmation en C++
Informatique III: Programmation en C++ Listes haînées Lundi 9 Janvier 2006 1 2 Introdution Les listes hainées permettent de stoker un nombre d objets qui n a pas besoin d être spéifié a priori. Rajouter
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailClasse ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
Plus en détailInfo0101 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étailTP2 : tableaux dynamiques et listes chaînées
Licence 2 Informatique 9 / 2014 TP2 : tableaux dynamiques et listes chaînées Contact.h 1 #include 2 #include 3 4 typedef struct contact { 5 char *nom; 6 char *num; 7 char *adresse;
Plus en détailLangage 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étailAvertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE
Enseignement : GI 62 - C++ - Programmation orienté objet (C++) Objectif : Ce module se situe dans la continuité des modules (ii12) et UEL RAN Informatique et permet d'acquérir les bases de la modélisation
Plus en détailTRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique
Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailJava 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étailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailEncapsulation. 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étailPROGRAMMATION PAR OBJETS
PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)
Plus en détailLangage 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étailCours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
Plus en détailALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++
Plus en détailTP1 : 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étailProgrammation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
Plus en détailINF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Plus en détailObjets 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étail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailCours 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étailSTS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module
François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,
Plus en détailStructurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
Plus en détailGénie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string
Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.
Plus en détailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Plus en détailComposants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Plus en détailJava 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étailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailLE LANGAGE C++ ENAC 1997 A. DANCEL
LE LANGAGE C++ ENAC 1997 A. DANCEL 1 - GENERALITES "L'homme se découvre quand il se mesure avec l'objet." Antoine de Saint-Exupéry, Terre des hommes 1.1 INTRODUCTION Ce cours est conçu pour permettre aux
Plus en détailLangage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289
Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts
Plus en détailProgrammation stochastique
Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface
Plus en détailIntroduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
Plus en détailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailIntroduction à l algorithmique et à la programmation M1102 CM n 3
Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
Plus en détailCours 6 : Tubes anonymes et nommés
Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels
Plus en détailARDUINO DOSSIER RESSOURCE POUR LA CLASSE
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailLOG4430 : Architecture logicielle et conception avancée
LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique
Plus en détailProgrammation en C/C++
INSA de Lyon Département Génie Electrique Module IF1,IF3,IF4 Programmation en C/C++ Thomas Grenier Nicolas Ducros Tanneguy Redarce Lyon, le 3 mars 2015 2 / 63 Table des matières 1 Développement en C++
Plus en détail