Informatique III: Programmation en C++

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

Download "Informatique III: Programmation en C++"

Transcription

1 Informatique III: Programmation en C++ Listes haînées Lundi 9 Janvier Introdution Les listes hainées permettent de stoker un nombre d objets qui n a pas besoin d être spéifié a priori. Rajouter ou supprimer un objet dans une liste prend un temps onstant, la reherhe d un objet en revanhe prend un temps proportionnel à la taille de la liste. Une liste haînée est omposée de ellules qui haune ontient une eur et un pointeur vers une autre ellule. Par exemple pour une liste d entiers: 1 lass Cellule { 2 publi: 3 int ; 4 ; 5 }; 3 4

2 Voilà la onfiguration en mémoire pour une liste ontenant les eurs 9, 5, et 3 (ave la onvention que la dernière ellule a un pointeur nul). int: 5 int: 3 : 0 La lasse ListeEntiers elle-même aura la forme ante: 1 lass ListeEntiers { 2 ; 3 publi: 4 ListeEntiers(); 5 ~ListeEntiers(); 6 void ajouter(int n); 7 int taille(); 8 bool ontient(int n); 9 }; ListeEntiers::ListeEntiers() { 2 = 0; 3 } 1 int ListeEntiers::taille() { 2 int n = 0; 3 for( = ;!= 0; = ->) n++; 4 return n; 5 } 6 7 bool ListeEntiers::ontient(int n) { 8 for( = ;!= 0; = ->) 9 if(-> == n) return true; 10 return false; 11 } 7 8

3 1 void ListeEntiers::ajouter(int n) { 2 = new Cellule; 3 -> = n; 4 -> = ; 5 = ; 6 } Ajouter (1) Configuration initiale 9 10 Ajouter (2) Ajouter (3) int: int: n 2 = new Cellule; 3 -> = n; 4 -> = ; 11 12

4 Ajouter (4) int: n 1 ListeEntiers::~ListeEntiers() { 2 while(!= 0) { 3 = ; 4 = ->; 5 delete ; 6 } 7 } 3 = ; Destruteur (1) Destruteur (2) 2 ; 3 = ; 15 16

5 Destruteur (3) Destruteur (4) 4 = ->; 5 delete ; Note: test de pointeur nul 1 int main(int arg, har **argv) { 2 ListeEntiers l; 3 l.ajouter(3); 4 l.ajouter(9); 5 l.ajouter(5); 6 out << l.taille() << endl; 7 } Le ompilateur peut onvertir automatiquement un pointeur en booléen. La règle est simplement que le pointeur nul orrespond à la eur false et toute autre eur de pointeur orrespond à true. Ainsi, pour faire une boule sur les ellules d une liste on peut par exemple érire diretement 1 for( = ; ; = ->) { } 19 20

6 Exerie: une liste omme une pile Une liste peut failement être utilisée omme une pile. Érivez une méthode bool ListeEntiers::vide() qui dit si la liste est vide et une méthode int ListeEntiers::pop() qui enlève la première ellule et renvoie la eur qu elle ontenait (et abort si la liste est vide). 1 bool ListeEntiers::vide() { 2 return == 0; 3 } 4 5 int ListeEntiers::pop() { 6 if(!= 0) { 7 p = ; 8 int result = p->; 9 = p->; 10 delete p; 11 return result; 12 } else abort(); 13 } Modifier les éléments d une liste L utilisation de méthodes virtuelles permet de faire failement des opérations sur tous les éléments d une liste. Pour ela, ommençons par définir 1 lass FontionEntiere { 2 publi: 3 virtual int eur(int n) = 0; 4 }; Ensuite rajoutons: 1 void ListeEntiers::applique_fontion(FontionEntiere *f) { 2 for( = ;!= 0; = ->) 3 -> = f->eur(->); 4 } 5 6 void ListeEntiers::affihe() { 7 for( = ;!= 0; = ->) 8 out << -> << endl; 9 } 23 24

7 1 lass Multiplie : publi FontionEntiere { 2 int k; 3 publi: 4 Multiplie(int l) { k = l; } 5 int eur(int n) { return k * n; } 6 }; 1 int main(int arg, har **argv) { 2 ListeEntiers l; 3 l.ajouter(3); 4 l.ajouter(9); 5 l.ajouter(5); 6 FontionEntiere *m = new Multiplie(10); 7 l.applique_fontion(m); 8 l.affihe(); 9 } Supprimer le premier élément Nous pouvons rajouter une méthode pour supprimer le premier élément. Il faut faire attention une fois de plus à ne jamais utiliser un objet qui a été détruit. 1 void ListeEntiers::supprimer_premier() { 2 ; 3 = ; 4 = ->; 5 delete ; 6 } Inverser une liste Si on veut retourner une liste, il suffit de parourir les ellules les unes aprés les autres et de faire pointer le hamp de haune sur elle qui préède. Une fois de plus, il faut faire attention à ne pas utiliser des pointeurs obsolètes. 1 void ListeEntiers::retourner() { 2 p = 0, * =, *s; 3 while(!= 0) { 4 s = ->; -> = p; 5 p = ; = s; 6 } 7 = p; 8 } 27 28

8 p s p s Configuration au début de la boule: p pointe sur la ellule préédente, et sur la ellule ourante. 2 s = ->; p s p s 3 -> = p; 4 p = ; 31 32

9 Filtrer une liste Si l on veut éliminer d une liste toutes les eurs qui ne vérifient pas une ertaine propriété, on introduit une lasse qui test une propriété: p s 1 lass Indiateur { 2 publi: 3 virtual bool ok(int n) = 0; 4 }; 5 = s; Et on rajoute à la lasse ListeEntiers la méthode: void ListeEntiers::filtre(Indiateur *ind) { 2 =, *, *pred = 0; 3 while(!= 0) { 4 = ->; 5 if(ind->ok(->)) pred = ; 6 else { 7 if(pred) pred-> = ; 8 else = ; 9 delete ; 10 } 11 = ; 12 } 13 } Exerie Comment utiliser e qui préède pour éliminer toutes les eurs qui ne sont pas multiples de k d une liste? lass Indiateur { publi: virtual bool ok(int n) = 0; }; lass ListeEntiers { ; publi: void filtre(indiateur *ind); 35 36

10 Exerie Corretion 1 lass EstMultiple : publi Indiateur { 2 int k; 3 publi: 4 EstMultiple(int n) { k = n; } 5 bool ok(int n) { return n%k == 0; } 6 }; Érire une méthode int omptage(indiateur *id) qui ompte ombien de eurs de la liste vérifient une ertaine propriété. lass Cellule { publi: int ; ; }; lass Indiateur { publi: virtual bool ok(int n) = 0; }; lass ListeEntiers { ; publi: Corretion 1 int ListeEntiers::omptage(Indiateur *ind) { 2 int n = 0; 3 for( = ;!= 0; = ->) 4 if(ind->ok(->)) n++; 5 return n; 6 } 39

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

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

Langage de programmation C++

Langage de programmation C++ Langage de programmation C++ Mohamed Tounsi Institut Supérieur d'informatique et Mathématiques Monastir Janvier 2013 Mohamed Tounsi (ISIMM) Langage de programmation C++ Janvier 2013 1 / 14 La notion de

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

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

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

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

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

TD : Arbres Binaires de Recherche (A.B.R.)

TD : Arbres Binaires de Recherche (A.B.R.) TD : Arres Binires de eherhe (A.B..) Olivier ynud rynud@isim.fr http ://www.isim.fr/rynud ésumé Dns e Td nous proposons trois exeries. Le premier est onsré à l implémenttion du T.D.A. Ensemles dynmiques

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

Communications et synchronisations

Communications et synchronisations Communications et synchronisations Polytech Paris-Sud Cycle ingénieur de la filière étudiant Louis Mandel Université Paris-Sud 11 Louis.Mandel@lri.fr année 2012/2013 Le problème des philosophes (Dijkstra

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

Projet INF242. Stéphane Devismes & Benjamin Wack. Pour ce projet les étudiants doivent former des groupes de 3 ou 4 étudiants.

Projet INF242. Stéphane Devismes & Benjamin Wack. Pour ce projet les étudiants doivent former des groupes de 3 ou 4 étudiants. Projet INF242 Stéphane Devismes & Benjamin Wak Pour e projet les étudiants doivent former des groupes de 3 ou 4 étudiants. 1 Planning Distribution du projet au premier ours. À la fin de la deuxième semaine

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

JAVA ET JDBC : UNE MINI-INTRODUCTION MARCIN SKUBISZEWSKI

JAVA ET JDBC : UNE MINI-INTRODUCTION MARCIN SKUBISZEWSKI JAVA ET JDBC UNE MINI-INTRODUCTION MARCIN SKUBISZEWSKI Comment nous proédons skubi@skubinet http//wwwskubinet Etude de quelques points essentiels et diffiiles Etude d exemples de ode Manuels Tous les douments

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

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

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

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

Informatique III: Programmation en C++ Expressions booléennes

Informatique III: Programmation en C++ Expressions booléennes Informatique III: Programmation en C++ Expressions booléennes Lundi 16 Janvier 2006 1 2 Introduction De la même manière qu une formule peut produire une valeur numérique quand elle est évaluée, elle peut

Plus en détail

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016 2015/2016 Exercice 1 : Pile renversée Corrigé Consignes Pour tous les exercices de cette planche on aura préalablement écrit l implémentation des piles à capacité limitée ou illimitée vue en cours, et

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

Informatique Chapitre 4: Types et typages

Informatique Chapitre 4: Types et typages Informatique Chapitre 4: Types et typages Booléens et listes Jérôme DIDIER 8/10/2014 Objectifs du cours Compétences visées Savoir que les variables peuvent avoir plusieurs types et les connaitre ; Type

Plus en détail

De Java (et C) à C++

De Java (et C) à C++ De Java (et C) à C++ Historique Syntaxe basée sur le langage C Bjarne Stroustrup 1979 : C with classes 1983 : renommé C++ 1985 : The C++ Programming Language, première édition 1998 : premier standard 2003

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

Structures de données abstraites

Structures de données abstraites Structures de données abstraites Piles (stack) Principe Interface (fonctionnalités offertes) Piles (stack) Principe Interface (fonctionnalités offertes) Piles (stack) Principe Structure linéaire Interface

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

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

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

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

Exercice A : Effet Hall

Exercice A : Effet Hall Université Paris-Diderot - Paris 7 Année 2008-2009 L2-51 EM 4 Eletromagnétisme Corrigé de l examen (deuxième session) du jeudi 25 juin 2009 Exerie A : Effet Hall x z B 0 v a O b y Figure 1: Corrigé 1)

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

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

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 7 de cours/td Université Paris-Diderot Objectifs: Savoir écrire un programme en entier (structure du programme avec une procédure main et des déclarations de fonctions,

Plus en détail

Exercice 1: Câble coaxial et Théorème d'ampère

Exercice 1: Câble coaxial et Théorème d'ampère UTBM PS1 / Examen Final P8 Pour tenir ompte de la longueur de l'énoné, le total des points possibles est 33, mais la note finale sera ramenée à une note sur points Exerie 1: Câble oaxial et Théorème d'ampère

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

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

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

Plan du cours. Production de code, langages à héritage multiple Martin Odersky 4 de 19

Plan du cours. Production de code, langages à héritage multiple Martin Odersky 4 de 19 Plan du ours Prodution de ode, langages à héritage multiple Martin Odersky 23 janvier 2007 version 1.2 1 2 3 Prodution de ode, langages à héritage multiple Martin Odersky 1 de 19 Prodution de ode, langages

Plus en détail

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution.

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution. Plan Arbres de segments Arbres de segments Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates Problème : Chercher, dans un ensemble d intervalles de la droite réelle, les intervalles

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

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

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

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique.

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique. Le langage C++ Master Actuariat Séance 5 : Les flots C++ - F.CHAKER- M1 Actuariat 2014/2015 1 Les entrées sorties en C++ Les entrées et les sorties sont considérées comme des flots. Un flot est associé

Plus en détail

ITI 1521. Introduction à l informatique II

ITI 1521. Introduction à l informatique II ITI 1521. Introduction à l informatique II Marcel Turcotte École d ingénierie et de technologie de l information Version du 14 mars 2011 Résumé Listes chaînées (partie 2) Pointeur arrière Listes doublement

Plus en détail

Outils et Logiciels d Optimisation - Cours 4 et 5

Outils et Logiciels d Optimisation - Cours 4 et 5 Introduction C / C++ Outils et Logiciels d Optimisation - Cours 4 et 5 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 256 Introduction Introduction C / C++ Ceci n est

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

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

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

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

Gestion de la mémoire

Gestion de la mémoire Chapitre 9 Gestion de la mémoire Durant l exécution d un programme, les éléments manipulés par le programme sont stockés dans différents types de mémoire. La pile d exécution contient des éléments dont

Plus en détail

Informatique Pour Tous III-Propositions de solutions aux exercices

Informatique Pour Tous III-Propositions de solutions aux exercices Informatique Pour Tous III-Propositions de solutions aux exercices exercice 1 exercice 2 exercice 3 exercice 4 exercice 1 exercice 1 Fonction de saisie d'un nombre def input_nb(invite): """ cette fonction

Plus en détail

a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point)

a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point) Question 1 Arbres binaires / monceaux (6 points) a) À partir du tableau suivant, construire l arbre binaire correspondant. (1 point) Index 0 1 2 3 4 5 6 7 8 9 Valeur - * * + 6 2 3 2 6 b) Parcourir l arbre

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

Corrigé des exercices sur les fonctions (suite)

Corrigé des exercices sur les fonctions (suite) Corrigé des exercices sur les fonctions (suite) Exercice 5.2.1 somme des carrés Ecrire une fonction qui calcule la somme des n premiers carrés 1 2 +2 2 +...+n 2. class Exo9_1{ static int npremierscarres(int

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

La récursivité terminale. Méthode récursive calculant la factorielle d'un nombre

La récursivité terminale. Méthode récursive calculant la factorielle d'un nombre La récursivité terminale Qu'est-ce que la récursivité? En informatique, une fonction («méthode» en Java) ou plus généralement un algorithme qui contient un appel à elle-même est dite récursive. Cependant,

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

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

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

INF 431, COMPOSITION D INFORMATIQUE. Partie I, Ensembles de chaînes

INF 431, COMPOSITION D INFORMATIQUE. Partie I, Ensembles de chaînes INF 431, OMPOSITION INFORMTIQU Luc Maranget et Nicolas Sendrier 2 mai 2007 Partie I, nsembles de chaînes Le but de cette partie est la réalisation d une classe StringSet des ensembles de chaînes qui suit

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage IV. Structures linéaires : les files et les piles. Les files et les piles sont des listes d'éléments organisées selon l'odre

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

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

Coordination : Jean-Denis Poignet, responsable de formation

Coordination : Jean-Denis Poignet, responsable de formation Mathématiques e Livret de orrigés Rédation : Niole Cantelou Sophie Huvey Hélène Leoq Fabienne Meille Françoise Raynier Philippe Nadeau Jean-Denis Poignet Coordination : Jean-Denis Poignet, responsable

Plus en détail

Introduction aux listes. Cours numéro 5 : Les listes LI213 Types et Structures de données. Les listes simplement chaînées

Introduction aux listes. Cours numéro 5 : Les listes LI213 Types et Structures de données. Les listes simplement chaînées Introduction aux s LI Types et Structures de données Liste : définition Collection ordonnée d éléments [x ;...; x n ] (au moins) accessibles l un après l autre de x jusqu à x n. Exemple : dans la [ ; ;5

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

Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Mémoire et allocation dynamique Cours Langage C/C++ Mémoire et allocation dynamique Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 La pile et le tas La mémoire La mémoire dans un ordinateur est une succession d octets (soit 8 bits),

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en dé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

Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009

Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009 Exercice 1. Université Paris 7 Denis Diderot Introduction à l informatique et à la programmation (IF1) Corrigé de l examen du 6 janvier 2009 1.1. Pour répondre à la question, nous avons regroupé dans une

Plus en détail

Programmation en C++ Agrégation génie électrique. François Schwarzentruber

Programmation en C++ Agrégation génie électrique. François Schwarzentruber Programmation en C++ Agrégation génie électrique François Schwarzentruber Partie I Programmation impérative page 5 Classe Exceptions Manipuler des fichiers Mon premier programme Algorithmique de base

Plus en détail

Chapitre IV- Induction électromagnétique

Chapitre IV- Induction électromagnétique 37 Chapitre IV- Indution életromagnétique IV.- Les lois de l indution IV..- L approhe de Faraday Jusqu à maintenant, nous nous sommes intéressés essentiellement à la réation d un hamp magnétique à partir

Plus en détail

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique Jeu Simon: analyse 1 Algorithme du jeu : Effectuer un tirage de la séquence des couleurs (20 éléments, 3 couleurs) Répéter Afficher la séquence des couleurs et émission des notes associées Répéter Entrée

Plus en détail

Développement d application web avec Visual Studio 2012 et ASP.NET. Tutoriel 3.1 : Programmation Web. Etape 1 Créer une application ASP.

Développement d application web avec Visual Studio 2012 et ASP.NET. Tutoriel 3.1 : Programmation Web. Etape 1 Créer une application ASP. Etape 1 Créer une application ASP.NET vide L objectif de cette étape est de montrer comment Visual Studio génère des fichiers et utilise le mécanisme des classes partielles pour accéder aux éléments générés

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Exclusion mutuelle par attente active Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

Etude de cas simulation de banque UML/C++

Etude de cas simulation de banque UML/C++ Etude de cas simulation de banque UML/C++ Philippe Laroque $Id: simubanque.lyx 1665 2009-03-05 16:02:45Z phil $ laroque@u-cergy.fr mars 2009 Abstract Ce petit document résume, à travers une étude de cas

Plus en détail

2) Symétrie : Si P est un point du lieu, alors le point P' symétrique de P par rapport à la droite d' est aussi un point du lieu.

2) Symétrie : Si P est un point du lieu, alors le point P' symétrique de P par rapport à la droite d' est aussi un point du lieu. II.5. PARABOLE Une parabole est le lieu géométrique des points situés à égale distane d'un point fixe appelé foyer et d'une droite fixe appelée diretrie. a) Constrution Soient F le foyer et d la diretrie.

Plus en détail

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche

Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche Algorithmique et Programmation Impérative 2 Les arbres binaires de recherche N.E. Oussous oussous@lifl.fr FIL USTL SDC - Licence p.1/16 Arbres binaires de recherche Un arbre binaire T est un arbre binaire

Plus en détail

InitProg par l exemple

InitProg par l exemple InitProg par l exemple Martin Monperrus 16 décembre 2011 Ce cument illustre avec des programmes Ocamlcartes et Ocaml le polycopié du cours Initiation à la programmation (InitProg) de l Université Lille

Plus en détail

IFT 1179 : Programmation en C#

IFT 1179 : Programmation en C# IFT 1179 : Programmation en C# (suite) : Une partie de ce résumé vient du lien de Microsoft : http://msdn.microsoft.com/library/fre/default.asp?ur l=/library/fre/cpref/html/frlrfsystemcollectionsarra ylistclasstopic.asp

Plus en détail

1. Constructeurs 2. Constructeur de copie 3. Affectation 4. Conversions

1. Constructeurs 2. Constructeur de copie 3. Affectation 4. Conversions Copie et affectation 1. Constructeurs 2. Constructeur de copie 3. Affectation 4. Conversions La copie et l'affectation sont les opération très importante. Elles sont à la base des effets de bord et de

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

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

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

Chapitre 3. Les structures de base : listes, piles et files

Chapitre 3. Les structures de base : listes, piles et files Chapitre 3 Les structures de base : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de base utilisées en informatique telles les listes en

Plus en détail

Les tableaux ne sont pas ni des objets ni des types simples.

Les tableaux ne sont pas ni des objets ni des types simples. Cours 5 Tableaux Tableaux à 2 dimensions Tableaux d objets POO 1 Les tableaux ne sont pas ni des objets ni des types simples. Un tableau se rapproche d un objet Il est manipulé par référence (adresse)

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

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs

Le problème des lecteurs et rédacteurs : La communication par envoi de messages. définition. Les processus lecteurs et rédacteurs Le problème des lecteurs et rédacteurs définition Ce problème généralise celui de l exclusion mutuelle. On distingue deux types de processus : Les lecteurs (readers) qui lisent uniquement l information

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Allocation dynamique en c++

Allocation dynamique en c++ Allocation dynamique en c++ *tableau; tableau * tableau = tableau = new [ no_max ]; tableau = new * [ no_max ] tableau[i] = new int[ 5 ]; tableau tableau[i] = new int[5]; * tableau[0] int int int int int

Plus en détail

Programmation De techniques d I3D. Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr

Programmation De techniques d I3D. Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr Programmation De techniques d I3D Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr Architecture générale d un système d I3D classique [Otmane, 2010] - 3 couches logicielles interconnectées

Plus en détail

Communications et synchronisations. Système L3, 2014-2015 1/21

Communications et synchronisations. Système L3, 2014-2015 1/21 Communications et synchronisations Système L3, 2014-2015 1/21 Le problème des philosophes (Dijkstra 1965) Cinq philosophes sont assis autour d une table ronde Chaque philosophe a devant lui un plat de

Plus en détail