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

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

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

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

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

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

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

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

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

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

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

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

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

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

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

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

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

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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

Programme Compte bancaire (code)

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

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

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

Plus en détail

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

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES I-Présentation Un algorithme de recherche de sous-chaine est un type d'algorithme de recherche qui a pour objectif de trouver une chaîne de caractères

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

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

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

Travaux dirigés : Programmation Orientée objet

Travaux dirigés : Programmation Orientée objet Travaux dirigés : Programmation Orientée objet Exercice 1: Créer un projet c# qui permet de gérer les voitures sachant que une voiture est caractérisée par sa matricule, marque, puissance 1. Les attributs

Plus en détail

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

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

Plus en détail

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

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

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

TP1 : Initiation à Java et Eclipse

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

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

Introduction à OCAML

Introduction à OCAML Introduction à OCAML Plan L interpréteur intéractif Ocaml Les types de base, et leurs opérations : int, float, char, string, bool Les n-uplets Conditionnelles : if... then... else et match... with... Déclarations

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

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

Plus en détail

Notes de cours. Introduction

Notes de cours. Introduction Notes de cours GEI 44 : STRUCTURES DE DONNÉES ET ALGORITHMES Chapitre 5 Application des piles Introduction Piles très utilisées dans les compilateurs Voici deux exemples de composants d un compilateur

Plus en détail

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire Chapitre option informatique Arbres binaires. Introduction Dans son acceptation la plus générale, un arbre est un graphe acyclique orienté enraciné : tous les sommets, à l exception de la racine, ont un

Plus en détail

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

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

Plus en détail

Gestion distribuée (par sockets) de banque en Java

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

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

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

Programmation avec des objets : Cours 7. Menu du jour

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Algorithmique, Structures de données et langage C

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

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

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE

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

Simulation Numérique

Simulation Numérique Ecole Nationale de Techniques Avancées Simulation Numérique Chapitre 4 Surcharge des opérateurs Eric Lunéville Surcharge des opérateurs Le C++ utilise des opérateurs prédéfinis tels que + - * / sur les

Plus en détail

Manipulations binaires en C++

Manipulations binaires en C++ Manipulations binaires en C++ Tous les exercices devront être résolus sans utiliser les opérateurs *, / et % Rappels En informatique, les nombres sont stockés sous forme binaire. Même si ce n'est pas nécessaire,

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

Plus en détail

Classes et Objets en Ocaml.

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

ARBRES BINAIRES DE RECHERCHE

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

Recherche dans un tableau

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

Bases de programmation. Cours 5. Structurer les données

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

Algorithmique et programmation avec Java (NFA002)

Algorithmique et programmation avec Java (NFA002) Algorithmique et programmation avec Java (NFA002) Deuxième session 13 septembre 2012 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : listes (4 points) Etudiez le programme

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

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

Cours d initiation à la programmation en C++ Johann Cuenin

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

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

Induction sur les arbres

Induction sur les arbres Induction sur les arbres Planning Motivations Comment définir les arbres? Équations récursives sur les arbres Complexité de fonctions sur les arbres Recherche dans un arbre binaire de recherche Recherche

Plus en détail

Plateforme PAYZEN. Définition de Web-services

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

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

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

Plus en détail

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais.

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. 9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. Définition : Un monceau (tas) est un arbre binaire complet dans lequel il existe un ordre entre un nœud et

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

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

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

Conventions d écriture et outils de mise au point

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

Une introduction à Java

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

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

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

Génie Logiciel avec Ada. 4 février 2013

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

Création d objet imbriqué sous PowerShell.

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

La surcharge. Chapitre 6

La surcharge. Chapitre 6 Chapitre 6 La surcharge Le mot polymorphisme veut dire qui a plusieurs formes. Le polymorphisme, sous une forme embryonnaire, se rencontre pratiquement dans tout langage de programmation. Par exemple l

Plus en détail

Un ordonnanceur stupide

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

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

Plus en détail

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante :

x n = x x n 1 Exercice 3 Le but de cet exercice est de modéliser les suites définies par récurrence de la façon suivante : Ocaml - Exercices Exercice Définir en Ocaml les fonctions suivantes:. f : x sin x + cos x. g : x x 3x+ x x 5 3. Fonction h calculant la moyenne géométrique de deux float positifs ( xy) Exercice Ecrire

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

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

Objets et Programmation. origine des langages orientés-objet

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

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2012/2013 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H Coordonnateurs : Christian

Plus en détail

as Architecture des Systèmes d Information

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

alg - Classes, instances, objets [oo] Exercices résolus

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

TP : Gestion d une image au format PGM

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

CORBA avec OpenORB. Samir Torki et Patrice Torguet

CORBA avec OpenORB. Samir Torki et Patrice Torguet CORBA avec OpenORB Samir Torki et Patrice Torguet 1 Présentation de CORBA CORBA (Common Object Request Broker Architecture) est un standard décrivant une architecture pour la mise en place d objets distribués.

Plus en détail

Informatique III: Programmation en C++

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

Structurer ses données : les tableaux. Introduction à la programmation

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

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

GOL502 Industries de services

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

Solutions du chapitre 4

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

Tests unitaires avec Visual Studio

Tests unitaires avec Visual Studio Tests unitaires avec Visual Studio (source MSDN) Rappels (initiation aux tests unitaires SI6 Tp6) Les tests unitaires offrent aux développeurs une méthode rapide pour rechercher des erreurs de logique

Plus en détail

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

Fiche de TD-TP no. 4

Fiche de TD-TP no. 4 Master 1 Informatique Programmation Fonctionnelle, p. 1 Fiche de TD-TP no. 4 Exercice 1. Voici trois façons différentes de définir le type Image : type Image = [[ Int ]] data Image = Image [[ Int ]] newtype

Plus en détail

Langage Java. Classe de première SI

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

Systèmes répartis : les Remote Procedure Calls p.1/25

Systèmes répartis : les Remote Procedure Calls p.1/25 Systèmes répartis : les Remote Procedure Calls Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis : les Remote Procedure Calls p.1/25 Les Remote Procedure Calls

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

Plus en détail