Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
|
|
- Romain Sergerie
- il y a 8 ans
- Total affichages :
Transcription
1 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) Michel Gagnon (coordonateur) Jour Loc Jeudi 29/4/2004 Date 2 h 30 Durée De à Documentation Toute Aucune Voir directives particulières Calculatrice Aucune Programmable Non programmable Directives particulières Important 6 Ce questionnaire comporte question(s) sur Page(s) 40 La pondération de cet examen est de % Vous devez répondre sur le questionnaire le cahier les deux Vous devez remettre le questionnaire oui non
2 Question 1 Programmation par objets (10 points) On désire créer un programme pour manipuler un ensemble de comptes bancaires. On se limitera ici à deux types de comptes : compte normal et compte en devises étrangères. Tous les comptes ont un numéro d identification unique et, bien sûr, un solde. Chaque retrait d un compte normal entraîne des frais de 5$ si le solde est inférieur à 1000$ et aucun frais si le solde est égal ou supérieur à cette valeur. Il n y a aucun frais pour un retrait dans un compte en devises étrangères. Lorsqu on fait un dépôt dans un compte en devises étrangères, la valeur déposée, qui est donnée en dollars canadiens, est convertie avant de l ajouter au solde. Lorsqu on fait un retrait dans un tel compte, la valeur du retrait que l on veut effectuer est donnée en dollars canadiens, mais le montant soustrait au solde est l équivalent dans la devise étrangère. Finalement, lorsqu on demande le solde, la valeur est toujours donnée en dollars canadiens, peu importe le type de compte (il y aura donc conversion s il y a lieu). a) (4 pts) Définissez les deux classes requises pour implémenter en C++ les deux types de comptes, ainsi qu une troisième classe de base de laquelle elles hériteront. Attention : si on change le taux de conversion d une devise, ce nouveau taux devrait automatiquement être disponible pour tous les comptes qui utilisent cette devise. Ceci implique donc que la classe qui implémente les comptes en devises étrangères devra contenir un pointeur vers un objet de la classe Devise. Plus précisément, vous devez implémenter des méthodes pour effectuer les opérations suivantes : dépôt d un montant dans le compte retrait d un montant dans le compte obtention du numéro du compte obtention du solde du compte Dans votre implémentation, il est bien important de prendre en considération les aspects suivants : définissez bien vos constructeurs et destructeurs, s il y a lieu choisissez bien la classe où vous mettrez chaque attribut et chaque méthode pour chaque méthode, identifiez bien si elle sera virtuelle ou non, et si elle est virtuelle, déterminez si elle sera pure ou non, et justifiez vos choix faites attention à la manière dont les paramètres sont transmis le solde minimum pour les retraits sans frais dans un compte normal ainsi que les frais de retrait sont des valeurs constantes pour tous ces comptes évitez le plus possible la redondance dans le code Voyez à l annexe 1 comment la classe Devise peut être implémentée. // Cette classe doit être abstraite, puisqu'on ne voudra jamais // créer un compte générique, seulement des comptes normaux ou // en devises étrangères class Compte
3 public: Compte(int id, float m = 0) : solde(m), numero(id) virtual ~Compte() int getnumero() const return numero; // Ces fonctions sont virtuelles parce qu elles sont redéfinies // dans le cas des comptes en devises étrangères virtual void depot(float valeur) solde += valeur;; virtual float getsolde() const return solde; // Fonction virtuelle pure. On ne peut pas savoir comment // effectuer un retrait si on ne connaît pas le type // réel du compte virtual void retrait(float valeur) = 0; protected: float solde; int numero; ; class CompteNormal : public Compte public: CompteNormal(int numero, float valeur = 0) : Compte(numero,valeur) ~CompteNormal() void retrait(float valeur); private: static const float soldemin; static const float frais; ; class CompteEtranger : public Compte public: CompteEtranger(int numero, Devise * const dev, float valeur) : Compte(numero), ladevise(dev) depot(valeur); ~CompteEtranger(); void depot(float valeur); void retrait(float valeur); float getsolde() const; private: Devise *ladevise; ; void Compte::retrait(float valeur) if (solde >= valeur) solde -= valeur; else cout << "Solde insuffisant" << endl; void CompteNormal::retrait(float valeur) if (solde+frais >= soldemin) Compte::retrait(valeur); else Compte::retrait(valeur+frais);
4 void CompteEtranger::depot(float valeur) Compte::depot(laDevise->convertirEnDevise(valeur)); void CompteEtranger::retrait(float valeur) Compte::retrait(laDevise->convertirEnDevise(valeur)); float CompteEtranger::getSolde() const return ladevise->convertirendollar(solde); b) (1 pt) Écrivez une fonction globale booléenne soldeeleve qui détermine si le solde d un compte est supérieur ou égal à dollars. bool soldeeleve(const Compte & c) return(c.getsolde() >= 1000); On désire maintenant créer une classe Portefeuille, qui pourra contenir un ou plusieurs comptes. C est par le biais de cette classe que toute manipulation des comptes se fera. Par exemple, une implémentation de la classe Portefeuille devra réaliser les opérations suivantes : ajout et retrait d un compte dans le portefeuille dépôt et retrait dans un compte obtention du solde d un compte obtention de la valeur totale de tous les avoirs, c est-à-dire la somme de tous les soldes des comptes contenus dans le portefeuille. c) (3pts) Écrivez en C++ la classe Portefeuille mais ne fournissez que l implémentation des deux méthodes suivantes : ajout d un compte dans le portefeuille obtention de la valeur totale de tous les avoirs Pour définir cette classe, utilisez le conteneur list pour stocker les comptes du portefeuille et prenez en considération les aspects suivants : définissez bien vos constructeurs et destructeurs, s il y a lieu assurez-vous que les méthodes soient le moins dépendantes possible du conteneur utilisé évitez le plus possible les copies inutiles gérez correctement l allocation dynamique de mémoire
5 class Portefeuille public: Portefeuille() ~Portefeuille(); float getvaleur() const; void ajoutercompte(compte * uncompte); void retirercompte(compte * uncompte); void depot(int numero,float montant); void retrait(int numero,float montant); float getsolde(int numero,float montant) const; private: typedef list<compte*> ListeComptes; ListeComptes lescomptes; ; Portefeuille::~Portefeuille() ListeComptes::const_iterator itr; ListeComptes::const_iterator fin = lescomptes.end(); for (itr = lescomptes.begin(); itr!= fin; ++itr) delete *itr; void Portefeuille::ajouterCompte(Compte * uncompte) lescomptes.push_back(uncompte); float Portefeuille::getValeur() const ListeComptes::const_iterator itr = lescomptes.begin(); ListeComptes::const_iterator fin = lescomptes.end(); float val = 0; for (itr = lescomptes.begin(); itr!= fin; ++itr) val += (*itr)->getsolde(); return val; d) (1 pt) Sachant qu un portefeuille peut contenir une très grande quantité de comptes, Maria Benedita prétend qu il est préférable d utiliser un map comme conteneur pour les comptes. Donnez les avantages et désavantages de ce choix, et dites ce qui peut justifier ce choix dans l exemple du portefeuille. L utilisation de map permet de retrouver rapidement un compte par sa clé. Par contre l insertion ou l élimination d un compte sera en général plus coûteuse, étant donné que l arbre qui implémente le map doit rester équilibré après chaque ajout ou retrait. L utilisation d un map dans notre exemple serait justifiée par le fait qu il devrait normalement y avoir beaucoup plus d opérations de dépôt ou retrait dans un compte que
6 des opérations d ajout ou élimination de compte. Il est donc plus important d avoir un accès rapide à un compte que d épargner du temps à l ajout ou l élimination d un compte. e) (1 pt) Écrivez un programme principal qui effectue les opérations suivantes : création de deux devises : euro, avec un taux de 0.50 et dollar US, avec un taux de 0.75 création d un portefeuille qui contiendra trois comptes : un compte normal, un compte en euros et un compte en dollars US (mettez des numéros de compte et des soldes initiaux de votre choix) affichage de la valeur totale des avoirs du portefeuille int main() Devise *euro = new Devise("Euro",0.50); Devise *dollarus = new Devise("dollarUS",0.75); Portefeuille pf; pf.ajoutercompte(new CompteNormal(2323,1000)); pf.ajoutercompte(new CompteEtranger(4451,euro,1000)); pf.ajoutercompte(new CompteEtranger(6745,dollarUS,1000)); cout << pf.getvaleur() << endl; delete euro; delete dollarus; return(0); Question 2 Foncteurs (1,5 points) Soit le programme suivant : class Fonct public: Fonct(int x) : val(x) bool operator()(int arg) const return (arg > val); private: int val; ; void mystere(const Fonct & f) for (int i = 1; i <= 10; i++) if (f(i)) cout << i << endl; Indiquez ce qui est affiché à l écran si on exécute mystere(fonct(7)).
7 Réponse : Question 3 Arbres binaires (2 points) a) Parmi les arbres suivants, indiquez quels sont ceux qui sont des arbres rouge-noir valides (les nœuds grisés représentent des nœuds noirs). Si un arbre est invalide, indiquez pourquoi Arbre Arbre 2 Solution : Aucun de ces arbres n est valide. La racine de l arbre 1 n est pas noire. Quant à l arbre 2, le nombre de nœuds noirs jusqu à un pointeur NULL n est pas le même partout. b) Soit l arbre AVL illustré ci-dessous. On y insère les valeurs 24, 22 et 25. Montrez l arbre obtenu après l insertion de 24 et après l insertion de 25.
8 Solution : Après insertion de 24 : rotation simple Après insertion de 25:
9 rotation double Question 4 Monceaux (2,5 points) a) Donnez la définition d une queue de priorité et dites pourquoi le monceau est une bonne implémentation pour représenter cette structure de données. Une file de priorité est une structure de donnée qui permet les opérations suivantes : insertion d un élément retrait du plus petit élément identification du plus petit élément de la file Le monceau est une bonne implémentation parce qu il retourne en temps constant le plus petit élément de la file, tout en ayant un temps d exécution dans O(lg n) dans le pire cas pour les autres opérations. b) Représentez graphiquement l arbre décrit par le tableau ci-dessous, sachant que la racine est placée à la position 0 : Indice Valeur Réponse:
10 c) Construisez un monceau à partir de l arbre que vous avez dessiné en b), en considérant que nœuds (père) nœuds (fils), et affichez l arbre résultant. Réponse: d) Donnez la représentation graphique du monceau construit en c), après l insertion de la valeur 37. Réponse: e) Donnez la représentation graphique du monceau construit en d), après le retrait de la valeur maximale. Réponse:
11 Question 5 Tables de hachage (2 points) Soit la table de hachage de 13 cellules illustrée ci-bas. On suppose que le traitement de collisions est fait par une double fonction de dispersement. Soient les fonctions de hachage suivantes : H1(X) = X % 13 H2(X) = 7 (X % 7) Traitement des collisions : (H1(x) + i*h2(x))%n où i = nombre de collisions a) On veut insérer l item 33 dans la table. Dites à quelle position il sera inséré et comment cette position est calculée. b) On cherche l item 59 dans la table. Indiquez les étapes accomplies jusqu à ce qu on réalise qu il ne se trouve pas dans la table. c) Si on insère un 7 ème élément dans la table, l analyse de l implémentation (voir annexe 1) indique que la fonction rehash() sera appelée pour agrandir la table. Pourquoi? d) Une fois la fonction rehash() exécutée, après l insertion du 7 ème élément, quelle sera la taille de la table? Solution : a) Il sera inséré à la position 9. b) H1(59) = 7. Il faut traiter la collision. On calcule donc H2(59) = 7 59%7 = 7 3 = 4. On cherche à la positoin 7+4 = 11. L élément cherché ne s y trouve pas. On peut donc conclure que l item recherché est absent de la table. c) Parce que a partir d un taux d occupation supérieur à 50%, le risque de collision augmente sensiblement. d) La taille sera le premier nombre premier supérieur à 2*13, soit 29.
12 Question 6 Graphes (2 points) Soit l implémentation des graphes vue dans le cours (voir annexe 2). Dites en 15 mots maximum ce que fait la méthode récursive suivante : bool Graphe::ec(const string & sommetorigine, const string & sommetdest) set<string> dejavisites; return ec2(sommetorigine, sommetdest, dejavisites); bool Graphe::ec2(const string & sommetactuel, const string & sommetdest, set<string> & dejavisites) vmap::iterator itr = MapSommets.find(sommetActuel); Sommet lesommet = *(itr->second); if (sommetactuel == sommetdest) return true; dejavisites.insert(sommetactuel); for (int i = 0 ; i < lesommet.adj.size(); ++i) string autresommet = lesommet.adj[i].dest->nom; if (dejavisites.find(autresommet)!= dejavisites.end()) continue; if (ec2(autresommet,sommetdest,dejavisites)) return true; return false; Cette fonction détermine s il existe un chemin entre deux sommets d un graphe. Question 7 (BONUS) Graphes (1 point) On veut créer une fonction qui imprime en ordre croissant de poids tous les arcs d un graphe orienté. Donnez dans les grandes lignes l algorithme qui pourrait être utilisé pour cela, en indiquant bien les structures de données qui seront utilisées. Soit F une file de priorité contenant des paires (A,P) où S est une arête et P le poids de cette arête. L ordonnancement est fait en fonction des poids des arêtes. Pour chaque sommet S du graphe : Pour chaque nœud S adjacent : Soit A l arrête qui va de S à S et P le poids de cette arête Insérer (A,P) dans F Tant que F n est pas vide : Retirer le premier élément (A,P) de F et l imprimer
13 ANNEXE 1 Implémentation de la classe Devise class Devise public: Devise(string n, float taux) : nom(n), tauxconversion(taux) void changertaux(float nouveautaux) tauxconversion = nouveautaux; float convertirendevise(float valeur) const return (valeur * tauxconversion); float convertirendollar(float valeur) const return (valeur / tauxconversion); private: string nom; float tauxconversion; ; ANNEXE 2 Insertion dans une table de hachage template <class Object> void HashTable<Object>::insert( const Object & x ) // Insert x as active int currentpos = findpos( x ); if( isactive( currentpos ) ) throw DuplicateItemException( ); array[ currentpos ] = HashEntry( x, ACTIVE ); if( ++occupied > array.size( ) / 2 ) rehash( ); ANNEXE 3 - Implémentation des graphes (version simplifiée) struct Sommet; struct Arete Sommet *dest; // Destination de l'arête double poids; // poids associe a cette arête Arete(Sommet *d = 0, double c = 0.0) : dest(d), poids(c) ; struct Sommet string nom; // Nom du sommet vector<arete> adj; // Liste d'adjacence(avec les poids) Sommet(const string & nm) : nom(nm) ;
14 class Graphe public: Graphe() ~Graphe(); void ajouterarete(const string & source, const string & destination, double poids); void ajoutersommet(const string & s); bool existearete(const string & source, const string & destination); bool existesommet(const string & s); void affichersommets() const; private: Sommet * getsommet(const string & sommet); void initialiser(); // Pour invalider le constructeur de recopie et l'operateur = Graphe(const Graphe & rhs) const Graphe & operator= (const Graphe & rhs) return *this; ; typedef map<string,sommet *> vmap; vmap MapSommets; // Liste des sommets du graphe
Les 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é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étailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailProgrammer 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étailLicence 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é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é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étailTP 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é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é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é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étailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en dé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é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étailProgrammation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en dé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é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é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é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étailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailGestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
Plus en détailARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
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étail2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
Plus en détailPlateforme PAYZEN. Définition de Web-services
Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en dé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é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é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étailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
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étailCréation d objet imbriqué sous PowerShell.
Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.
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é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étailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
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étailC++ 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é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é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é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étailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
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étailAuto-é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étailTP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
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é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étailDéfinition des Webservices Ordre de paiement par email. Version 1.0
Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document
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étailalg - Classes, instances, objets [oo] Exercices résolus
alg - Classes, instances, objets [oo] Exercices résolus Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 27 avril 2015 Table des matières 1 Compte bancaire OO 2 1.1
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
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é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é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é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étailEnsimag 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étailProgrammation Orientée Objet Java
Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre
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étailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailTravaux Dirigés n 1 : chaînes de caractères
UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void
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étailDéveloppement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com
Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend
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é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é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étailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailPolymorphisme, 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étailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailSUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com
Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
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étailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
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étailL exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
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é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é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étailPrincipes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
Plus en détailProgrammation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
Plus en détailHéritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Plus en dé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-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étailC++ - Classes, instances, objets [oo] Exercices résolus
C++ - Classes, instances, objets [oo] Exercices résolus Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 27 avril 2015 Table des matières 1 Compte bancaire OO 2 1.1
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étailINFO-F-105 Language de programmation I Séance VI
INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées
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é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é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étailINF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Plus en détailApplication web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
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é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étailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en dé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étail