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

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

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

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

INF3105 Arbres binaires de recherche

INF3105 Arbres binaires de recherche INF3105 Arbres binaires de recherche Éric Beaudry Université du Québec à Montréal (UQAM) Été 2015 Éric Beaudry (UQAM) INF3105 Arbres binaires de recherche Été 2015 1 / 37 Sommaire 1 Introduction 2 Arbre

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Questionnaire+ corrigé examen intra INF1005C. Sigle du cours

Questionnaire+ corrigé examen intra INF1005C. Sigle du cours Questionnaire+ corrigé examen intra INF1005C Sigle du cours Sigle et titre du cours Groupe Trimestre INF1005C Programmation procédurale Tous 20081 Professeur Local Téléphone Martine Bellaïche coordonnatrice,

Plus en détail

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

Programmation avancée

Programmation avancée Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition

Plus en détail

Introduction aux méthodes Orientées Objets Troisième partie

Introduction aux méthodes Orientées Objets Troisième partie Introduction aux méthodes Orientées Objets Troisième partie Modélisation avec UML 2.0 Programmation orientée objet en C++ Pré-requis: maitrise des bases algorithmiques (cf. 1 ier cycle), maitrise du C

Plus en détail

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

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

Plus en détail

INF1010 Examen final Hiver 2006

INF1010 Examen final Hiver 2006 INF1010 Examen final Hiver 2006 Question 1 Allocation dynamique ou polymorphisme (1 point) Répondez à une des questions suivantes (si vous décidez de répondre aux deux, vous recevrez le maximum des deux

Plus en détail

Exercice 1 : Questions diverses (5 points)

Exercice 1 : Questions diverses (5 points) Université Claude Bernard Lyon 1 Licence Sciences, Technologies, Santé L2 Année 2010-2011, 2ème semestre LIF5 Algorithmique & Programmation procédurale Contrôle final du 20 juin 2011 Durée : 1h30 Note

Plus en détail

Les références et la mémoire

Les références et la mémoire Chapitre 3 Les références et la mémoire 3.1 Introduction En Java, pour déclarer une variable, il faut donner son nom, précédé du type qu on souhaite lui attribuer. Ces types peuvent être des types primitifs

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

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

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

Plus en détail

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431

CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 CONTRÔLE HORS-CLASSEMENT ÉCOLE POLYTECHNIQUE INFORMATIQUE COURS INF 431 GUILLAUME HANROT ET JEAN-JACQUES LÉVY On se propose de résoudre le problème de l affectation de k tâches à n employés (k > 0, n >

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

TD/TP PAC - Programmation n 3

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

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

Algorithmique IN102 TD 3

Algorithmique IN102 TD 3 Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre

Plus en détail

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Plus en détail

3 Structures de données Tableaux Listes. Problème du tri. Tri rapide

3 Structures de données Tableaux Listes. Problème du tri. Tri rapide Cours 2 Algorithmique IN102-02 Michel Mauny ENSTA Prénom.Nom@ensta.fr 1 Tris Retour sur fusion et quicksort Complexité minimale Efficacité 2 Récursivité 3 Structures de données Tableaux Listes Michel Mauny

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

INF3105 Structures de données et algorithmes Examen final Été 2013

INF3105 Structures de données et algorithmes Examen final Été 2013 INF05 Structures de données et algorithmes Examen final Été 20 Éric Beaudry Département d informatique Université du Québec à Montréal Mardi 2 juillet 20 7h0 à 20h0 ( heures) Local SB-M20 Instructions

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique Cours 3.307P: INFORMATIQUE EXAMEN FINAL DATE : Dimanche 8 décembre 1996 HEURE: DE 13h30 A 16h00

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Notion d indirection (1) 1

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

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Les arbres binaires de recherche

Les 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étail

Les structures de données. Rajae El Ouazzani

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étail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

XNA Atelier 11. Introduction à la programmation 3D. Développement de programmes. dans un environnement graphique 420-203-RE. Auteur Vincent Echelard

XNA Atelier 11. Introduction à la programmation 3D. Développement de programmes. dans un environnement graphique 420-203-RE. Auteur Vincent Echelard XNA Atelier 11 Introduction à la programmation 3D Auteur Vincent Echelard Table des matières A. BUT DE L ATELIER... 2 B. MODÈLES 3D... 2 1. Introduction... 2 2. Ajout d un modèle 3D au projet... 3 C. MÉLANGER

Plus en détail

Examen de Programmation I

Examen de Programmation I Examen de Programmation I Sciences et Technologies du Vivant, Semestre 1 Mercredi 22 décembre 2010 1. N oubliez pas de mettre vos NOM et PRÉNOM sur toutes vos copies. 2. Merci de garder la donnée. 3. Vous

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

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

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

Héritage [he] Exercices résolus

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

Plus en détail

Concevoir un conteneur Exercice

Concevoir un conteneur Exercice Concevoir un conteneur Exercice Les conteneurs standards tels que std::vector respectent un ensemble de contraintes, que ce soit du point de vue des opérations, des noms ou de la rigueur. Pour nous familiariser

Plus en détail

Corrigés des premiers exercices sur les classes

Corrigé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étail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Algorithmique Programmation

Algorithmique Programmation Algorithmique Programmation 2ème partie DUT en alternance CNAM 2007-2008 2 Table des matières 1 Premiers Pas en Programmation Objet : les Classes et les Objets 7 1.1 Définir une Classe........................................

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

RECURSIVITE ARBRES BINAIRES

RECURSIVITE ARBRES BINAIRES RECURSIVITE ARBRES BINAIRES Insertion, Parcours pré, post et in ordre, Recherche, Suppression. Ch. PAUL Algorithmique Arbres binaires 1 ARBRE BINAIRE DEFINITION RECURSIVE Les arbres binaires sont des arbres

Plus en détail

Projet EvaluationsEleves/Professeurs

Projet EvaluationsEleves/Professeurs Projet EvaluationsEleves/Professeurs Ce projet Java comporte les objectifs suivants: 1) Diagramme de classes 2) Développer de l'application en mode console avec un jeu de tests fourni 3) Lecture des notes/eleves/professeurs

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

Workshop CAS et évaluation d expressions. Raphaël Shugo Boissel (boisse_r)

Workshop CAS et évaluation d expressions. Raphaël Shugo Boissel (boisse_r) Workshop CAS et évaluation d expressions Raphaël Shugo Boissel (boisse_r) 23 Novembre 2013 1 Présentation du workshop.................... 2 1.1 Définition du cas..................... 2 1.2 Définition de

Plus en détail

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

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

Plus en détail

IFT1169 Examen Final

IFT1169 Examen Final Trimestre Hiver, 2006 Mohamed Lokbani IFT1169 Examen Final Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : mardi 18 avril 2006 Durée : 2 heures et 45 minutes

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

Arbres bien équilibrés

Arbres bien équilibrés Arbres bien équilibrés ENSIIE : Programmation avancée 1/24 Recherche par dichotomie on aimerait avoir des opérations de recherche, d insertion et de suppression efficaces en moyenne et dans le pire des

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (2eme session) durée 2h Tous documents et calculatrices autorisés. Le sujet comporte 6 pages Le temps approximatif ainsi que le barème

Plus en détail

Par ailleurs chaque commercial est affecté à un service, ici le service commercial.

Par ailleurs chaque commercial est affecté à un service, ici le service commercial. La société Camaurel fabrique et vend des placards et rangements à monter soi-même. Son siège est installé dans la région parisienne ; un nombre important de commerciaux rayonne en France afin de développer

Plus en détail

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Hélène Toussaint, juillet 2014 Sommaire 1. Efficacité du std::sort... 1 1.1. Conditions expérimentales... 1 1.2. Tableaux de

Plus en détail

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

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

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Plus en détail

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1

L2 Informatique - gr A HLIN406-25 mars 2015. Contrôle continu 1 L2 Informatique - gr A HLIN406-25 mars 2015 Nom : Prénom : Numéro d étudiant : Contrôle continu 1 Tous documents sur support papier autorisés. Durée : 1h00. L ensemble des réponses sera à donner sur les

Plus en détail

Introduction à C++ pour programmeurs C

Introduction à C++ pour programmeurs C SITEL - Université de Neuchâtel Introduction à C++ pour programmeurs C Dr. E. Benoist Novembre 2007 1 Table of Contents Héritage Surcharge de méthode Surcharge d opérateur Métodes virtuelles Destructeur

Plus en détail

Université de Bourgogne - UFR Sciences et Technique - Programmation objet et Internet - LPSIL

Université de Bourgogne - UFR Sciences et Technique - Programmation objet et Internet - LPSIL Nom : Prénom : Contrôle continu Programmation objet Vous devez répondre dans les cadres aux questions posées. Documents de cours et notes personnelles autorisés. Téléphones portables, ordinateurs et calculatrices

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé

EXAMEN FINAL. 2 Février 2006-2 heures Aucun document autorisé MIE - E ANNÉE ALGORITHMIQUE GÉNÉRALE Vincent Mousseau EXAMEN FINAL Février 006 - heures Aucun document autorisé Exercice : On s intéresse à la gestion informatique des réservations sur l année d une salle

Plus en détail

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1

Plan. Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java. Amphi 9 1 Plan Arbres équilibrés Arbres AVL Arbres a-b Quelques compléments de Java Amphi 9 1 Structures d'arbre Les structures d'arbre permettent de réaliser des opérations dynamiques, telles que recherche, prédécesseur,

Plus en détail

Analyse lexicale 2014-2015

Analyse lexicale 2014-2015 Analyse (lexicale, syntaxique) L3 MIAGE Analyse lexicale Université de Lille, France 2014-2015 1 Rappels Rôle de l analyse lexicale Outils 2 Mise en oeuvre Lexème Vers l analyseur syntaxique Codage d un

Plus en détail

Corrigé des exercices sur les références

Corrigé 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étail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Types et Structures de Données LI213

Types et Structures de Données LI213 Types et Structures de Données LI213 Interrogation du 3 mars 2013 Aucun document n est autorisé. 1 Listes, piles et files Pour l exercice suivant, on a besoin de définir une liste chaînée de personnes.

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Programmation fonctionnelle

Programmation fonctionnelle 1/30 Programmation fonctionnelle Notes de cours Cours 9 23 novembre 2011 Sylvain Conchon sylvain.conchon@lri.fr 2/30 Les notions abordées cette semaine Les foncteurs Set.Make et Map.Make d Ocaml Arbres

Plus en détail

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

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

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: 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étail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres.

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres. QUESTION 1 (3 Points) Ces déclarations sont utilisées pour les sous-questions 11 à 13 const int LONGMAX = 51; const int CDMAX = 100; typedef char type_string[longmax]; enum type_classement POURRI,PASSABLE,BON,TRES_BON,EXCELLENT

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE LOG2410 Conception logicielle Solutionnaire examen final Automne 2008 Documentation : Aucune Calculatrice : Aucune Date : 13 décembre 2008

Plus en détail

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

Plus en détail

Application des arbres binaires. Plan

Application des arbres binaires. Plan Application des arbres binaires. Plan Compter les arbres binaires Tétrarbres (quad trees) Problème des n corps Recherche dans un intervalle Recherche dans un nuage de points Recherche dans un arbre d intervalles

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2014-2015 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 8 pages

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

1 ère PARTIE : COURS (sans document) Durée: 1h15

1 ère PARTIE : COURS (sans document) Durée: 1h15 Examen 1 ère session 2012-2013 page 1 NFA 032 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 032 Mercredi 25 Juin 2014 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session NFA

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP

RMI : Remote Method Invocation Appel de méthodes à distance TD/TP RMI : Remote Method Invocation Appel de méthodes à distance TD/TP Patrice Torguet torguet@irit.fr Université Paul Sabatier But l But du TD/TP : application répartie permettant de gérer des comptes bancaires.

Plus en détail

LIAISON DYNAMIQUE (1)

LIAISON DYNAMIQUE (1) LIAISON DYNAMIQUE (1) Problème : avec un pointeur de base (Employe *), on aurait besoin que la «bonne» méthode soit exécutée, en fonction du type dynamique de l objet pointé. Comment savoir quel est le

Plus en détail

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail