Exercice 1 : Typage et valeur d une expression (35 points = )

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

Download "Exercice 1 : Typage et valeur d une expression (35 points = )"

Transcription

1 CORRIGÉ INF121 : CONTRÔLE FINAL (3h00) Mai 2012 DOCUMENTS AUTORISÉS : Uniquement une feuille A4 recto-verso de notes personnelles manuscrites. Notes : Vous répondrez aux exercices et au problème dans l ordre qui vous convient. Le total des points de chaque question correspond au nombres de minutes nécessaires pour résoudre la question.vous pouvez admettre le résultat d une question, et l utiliser dans la suite. Exercice 1 : Typage et valeur d une expression (35 points = ) Pour chaque programme OCaml, indiquez les types OCaml (polymorphe si possible) des fonctions et ce qu elles font ; pour vous aider vous donnerez aussi dans votre réponse des exemples d execution. Toutes les fonctions son bien typées. 1. let rec f1 b = match b with c::d -> 1 + (f1 d);; f1 calcule le nombre d élément de la liste b. val f1 : α list int = <fun> 2. let rec f2 a r = match a with [] -> r c::d -> f2 d (1 + r);; f1 calcule le nombre d élément de la liste b plus r. val f2 : α list int int = <fun> 3. let rec f3 a r = match a with c::d -> f3 d (1 + r);; f3 renvoie toujours la valeur 0. val f3 : α list int int = <fun> 4. let rec f4 p q = match (p, q) with Exercice 2 : Modélisation (15 points) ([],[]) -> true (x::y,[]) -> false ([],z::t) -> true (u::v,w::t)-> if u=w then f4 v t else f4 (u::v) t;; f4 détermine si la liste p est un sous sequence de la liste q. val f4: α list α list bool =<fun> 5. let rec f5 h i j = match i with [] -> j x::y -> h x (f5 h y j);; f5 est le code de la fonction fold_right, qui accumule les résultats de l application successive de la fonction h sur la liste i avec comme premier élément j. val f5 : (α β β) α list β β = <fun> Nous souhaitons modéliser un jeu pour enfant permettant d apprendre l addition et la multiplication des fractions. Ce jeu comporte des cartes représentant deux sortes de cartes : Les cartes représentant des chiffres de 0 à 9, Les cartes représentant des symboles +,,, = et / la barre des fractions. Chaque joueur commence le jeu avec un certain nombre de cartes. Chaque joueur placera des cartes sur le jeu et en obtiendra d autres au cours de la partie. 1. (5 points) Définir les types permettant de modéliser ce jeu. type carte = Chiffre of int Plus Moins Fois Divise Egal;; type main = carte list;; 2. (5 points) Donner un code OCaml d une fonction qui calcule le nombre de chiffres possédés par un joueur. let rec nbchiffre (l:carte list) : int = match l with x::r -> let nbc = nbchiffre r in ( match x with Chiffre(_) -> 1 + nbc _ -> nbc );; 3. (5 points) Donner un code OCaml d une fonction qui calcule le nombre de symboles possédés par un joueur. 1

2 let rec nbsymbole (l:carte list) : int = match l with x::r -> let nbs = nbsymbole r in ( match x with Chiffre(_) -> nbs _ -> 1 + nbs );; Exercice 3 : Deux occurrences exactement (70 points) Pour résoudre une question vous pouvez utiliser les fonctions demandées dans les questions précédentes, mais il est interdit d utiliser les fonctions de la bibliothèque List si cela n est pas explicitement demandé. 1. (10 points) Définir une fonction récursive polymorphe appart : α α list bool qui détermine si un élément appartient à une liste. Donner explicitement : Spécification : (a) Profil (b) Exemples Spécification : Réalisation : (a) Équations récursives (b) Terminaison (c) Code OCaml (a) Profil : val appartient : α α list bool = <fun> (b) Exemples : appartient 1 [2;1;3] = true appartient 1 [] = false Réalisation : (a) Équations récursives appartient x [] = false appartient x n : :r = (n=x) (appartient x r) (b) Terminaison : l appel récursif se fait sur une liste de taille plus petite donc la fonction de mesure longueur d une liste décroit donc la fonction termine. (c) Code OCaml let rec appartient (elt : e) (seq: e list) : bool = match seq with [] -> false h::t when h=elt -> true h::t -> appartient elt t;; ALTERNATIVE let rec member (l: a list) (e: a):bool = match l with [] -> false; x::r -> (x = e) (member r e);; 2. (6 points) Donner des exemples et un code OCaml d une fonction récursive polymorphe supprime : α α list α list qui supprime la première occurrence d un élément dans une liste. let rec supprimefirst (l: a list) (e: a): a list = match l with [] -> []; x::r -> if (x = e) then r else x::(supprimefirst r e);; let l1=[1;2;3;4;5;6;2;3;2;3;4];; supprimefirst l1 4;; (* [1;2;3;4;5;6;2;3;2;3] *) supprimefirst l1 6;; (* [1;2;3;4;5;2;3;2;3;4] *) 2

3 3. (6 points) Donner des exemples et un code OCaml d une fonction récursive polymorphe supprimetous : α α list α list qui supprime toutes les occurrences d un élément dans une liste. let rec supprimeall (l: a list) (e: a): a list = match l with [] -> []; x::r -> if (x = e) then supprimeall r e else x::(supprimeall r e);; let l2=[1;2;3;4;5;6;2;3;2;3];; supprimeall l1 4;; (* [1;2;3;4;5;6;2;3;2;3] *) supprimeall l2 2;; (* [1;3;4;5;6;3;3] *) 4. (12 points) Donner des exemples et un code OCaml d une fonction polymorphe récursive ou non deuxocc : α list bool qui détermine si une liste d éléments contient exactement deux occurrences d un élément. let rec deuxocc (l: a list):bool = match l with [] -> false [x] -> false x::r -> ((member r x)&& (not (member (supprimefirst r x) x ))) deuxocc (supprimeall r x);; deuxocc l1 ;; (* true *) deuxocc l2 ;; (* false *) let deuxocc (elt: e) (seq: e list) : bool = let moins1 = otepremiereocc elt seq in let moins2 = otepremiereocc elt moins1 in let moins3 = otepremiereocc elt moins2 in (seq <> moins1) && (moins1 <> moins2) && (moins2 == moins3) (* ou (not (appartient elt moins2)*) ;; 5. (12 points) Donner des exemples et un code OCaml d une fonction récursive polymorphe liste2occurrences : α list α list qui calcule la liste des éléments contenus chacun exactement 2 fois dans une liste. let rec ldeuxocc (l: a list): a list = match l with [] -> [] [x] -> [] x::r -> if (member r x)&& (not (member (supprimefirst r x) x )) then x::(ldeuxocc (supprimeall r x)) else ldeuxocc (supprimeall r x) ;; ldeuxocc l2;; (* [] *) ldeuxocc l1;; (* [4] *) Pour les deux questions suivantes, on utilisera les fonctions : map : (α β) α list β list List.map f [a1;...; an] applique la fonction f à a1,..., an, et construit la liste [f a1;...; f an]. fold_left : (α β α) α β list α List.fold_left f a [b1;...; bn] est f (... (f (f a b1) b2)...) bn. List.filter : (α bool) α list α list List.filter p l retourne tous les éléments de la liste l qui satisfont le predicat p. 6. (12 points) Donner un code OCaml d une fonction polymorphe appartbis : α list bool qui détermine si un élément appartient à une liste (question 1) en utilisant les fonctions d ordre supérieur proposées. let appartient elt seq = fold_left (or) (map (fun x -> x=elt) seq);; let appartient let seq = (filter (fun x -> x=elt) seq)!= [];; 3

4 7. (12 points) Donner un code OCaml d une fonction polymorphe supprimetousbis : α list α list qui supprime toutes les occurrences d un élément dans une liste (question 3) en utilisant les fonctions d ordre supérieur proposées. let oteoccurences elt seq = filter (fun x -> x!= elt) seq;; Exercise 4 : Arbres et multi-ensembles (60 points) Lors du projet vous deviez implementer le type abstrait de données multi-ensemble. Pour ce faire nous avons introduit le type e multielt pour représenter plusieurs exemplaires d une même valeur d élément : type e multielt = e int. Ainsi un multi-ensemble est une collection d éléments non ordonnés avec répétitions. Nous l avions représenté par une liste de multi-éléments, où tous les exemplaires d une valeur d élément sont regroupés dans un seul multi-élément pour chaque élèment. Afin de rendre plus efficace cette structure de données nous allons représenter un multi-ensemble par un arbre binaire de recherche de multi-éléments. type e multiens = Vide Multiset of e multiens e multielt e multiens Donner des exemples et un code OCaml des fonctions suivantes : 1. (5 points) estvidemultiens: e multiens bool est vrai si le multi-ensemble est vide. let estvidemultiens (ms: e multiens): bool = (ms =Vide);; estvidemultiens Vide;; (* true *) estvidemultiens Multiset(Vide,(1,2),Vide);; (* false *) 2. (5 points) cardinalmultiens: e multiens int retourne le nombre total des occurrences des e éléments présents dans le multi-sensemble. Donner les équations récursives et une preuve de terminaison de cette fonction. Equations récursives : cardinalmultiens Vide = 0 cardinalmultiens Multiset(g,(e,card),d) = cardinalmultiens g + cardinalmultiens d + card ou Terminaison : Les appels récursifs portent sur des arbres de tailles plus petits (g et d), la fonction décroit donc. Ainsi cardinalmultiens termine. Exemples : cardinalmultiens Vide;; (*(0,0)*) cardinalmultiens (Vide,(1,2), cardinalmultiens (Vide,(2,2),Vide));; (*(3,4)*) Code : let rec cardinalmultiens (ms: e multiens) : int*int = match ms with Vide -> (0,0) Multiset(g,(e,card),d) -> let (nbeltg,nbtotg) = cardinalmultiens g in let (nbeltd,nbtotd) = cardinalmultiens d in (nbeltg+nbeltd+1,nbtotg+nbtotd+card);; Dans un arbre binaire de recherche nous imposons que pour tout noeud s d un multi-ensemble, les contenus des noeuds du sous-arbre gauche de s sont strictement inférieurs au contenu de s, et que les contenus des noeuds du sous-arbre droit de s sont supérieurs au contenu de s. Pour cela, nous définissons un ordre sur les éléments du type e multielt : si (e 1, n 1 ) et (e 2, n 2 ) sont de type e multielt, (e 1, n 1 ) (e 2, n 2 ) si et seulement si e 1 e 2. Donner un code OCaml des fonctions suivantes en tenant compte de la propriété arbre binaire de recherche de l arbre représentant un multi-ensemble. 3. (5 points) Donner une représentation des multi-ensembles suivants : {1, 2, 1}, {1, 1, 2, 3, 3, 4}. Multiset(Vide,(1,2),Multiset(Vide,(2,1),Vide));; Multiset(Vide,(1,2),Multiset(Multiset(Vide,(2,1),Vide)),(3,2), Multiset(Vide,(4,1),Vide)));; 4. (5 points) appartientmultiens: e e multiens bool teste l appartenance d un élément à un multi-ensemble. 4

5 let rec appartientmultiens (ms: e multiens) (elt: e): bool = match ms with Vide -> false Multiset(g,(e,card),d) -> let appg = appartientmultiens g e in let appd = appartientmultiens d e in if (elt=e) then true else appd appg;; 5. (5 points) occurrencesmultiens: e e multiens int calcule le nombre d occurrences d un élément dans un multi-ensemble. let rec occurencesmultiens2 (ms: e multiens) (elt: e): int = match ms with Vide -> 0 Multiset(g,(e,card),d) -> if (elt=e) then card else if elt<e then occurencesmultiens g e else occurencesmultiens d e ;; 6. (10 points) ajoutemultiens: e mutielt e multiens e multiens ajoute une ou plusieurs occurrences d élément à un multi-ensemble. let rec ajoutmultiens (elt: e) (ms: e multiens): e multiens = match ms with Vide -> Multiset(Vide,(elt,1),Vide) Multiset(g,(e,card),d) -> if (elt=e) then Multiset(g,(e,card+1),d) else if (elt>e) then Multiset(g,(e,card), ajoutmultiens e d) else Multiset(ajoutmultiens e g,(e,card), d);; 7. (15 points) construitmultiens: e list e multiens prend une liste d éléments et construit le multi-ensemble associé (7 points) Écrire une version sans utiliser List.fold_right ou List.fold_left. let rec construitmultiens (l: a list) : e multiens = match l with [] -> Vide x::r -> ajoutmultiens x (construitmultiens r);; (8 points) Écrire une version en utilisant List.fold_right ou List.fold_left. let construitmultiens2 (l: a list) : e multiens = List.fold_right ajoutmultiens l Vide;; 8. (10 points) On se pose le problème de trouver la liste des éléments qui apparaissent exactement deux fois dans une liste donnée (problème dont on a donné une solution dans l exercice 3). On vous demande ici de proposer une autre solution en utilisant des fonctions définies précédemment dans cet exercice. let deuxocc3 (l: a list): a list = let rec auxdeuxocc3 (ab : e multiens ): a list= let ab = construitmultiens l in match ab with Vide -> [] Multiset(g,(e,card),d) -> let listeoccur2 = (auxdeuxocc3 (auxdeuxocc3 d) in if card = 2 then e::listeoccur2 else listeoccur2 in auxdeuxocc3 (construitmultiens l);; BONUS (20 points) : supprimemultiens: e multielt e multiens e multiens supprime n occurrences d élément (n étant défini par le multielt) d un multi-ensemble. 5

Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)

Correction Code nécessaire à la compilation : let bs =\\ let nl = \n ;; let appliquer = List.map ;; (* affichage d'un noeud *) Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" let appliquer = List.map (* affichage d'un noeud *) let (noeud_vers_ch : int -> string) = function n -> "fib(" ^ (string_of_int

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

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

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

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

modules & compilation

modules & compilation Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation samuel.hornus@inria.fr http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Machines virtuelles fonctionnelles (suite) Compilation ML Java Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles

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

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

Plus en détail

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

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

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 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Quatrième partie IV. Test. Test 15 février 2008 1 / 71

Quatrième partie IV. Test. Test 15 février 2008 1 / 71 Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion

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

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

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

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

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Fonctions homographiques

Fonctions homographiques Seconde-Fonctions homographiques-cours Mai 0 Fonctions homographiques Introduction Voir le TP Géogébra. La fonction inverse. Définition Considérons la fonction f définie par f() =. Alors :. f est définie

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Principes des langages de programmation INF 321. Eric Goubault

Principes des langages de programmation INF 321. Eric Goubault Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

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

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Programmation. fonctionnelle, impérative, logique et orientée objet

Programmation. fonctionnelle, impérative, logique et orientée objet Programmation fonctionnelle, impérative, logique et orientée objet Introduction Les langages de programmation permettent de décrire des calculs de façon plus abstraite qu'un programme machine. Les programmes

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Algorithmique et Programmation Fonctionnelle

Algorithmique et Programmation Fonctionnelle Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes

Plus en détail

Théorie de la Programmation

Théorie de la Programmation Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011 Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB

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

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

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

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Problème : Calcul d'échéanciers de prêt bancaire (15 pt) Problème : Calcul d'échéanciers de prêt bancaire (15 pt) 1 Principe d'un prêt bancaire et dénitions Lorsque vous empruntez de l'argent dans une banque, cet argent (appelé capital) vous est loué. Chaque

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Plan Pédagogique du cours

Plan Pédagogique du cours Plan Pédagogique du cours Module: Programmation Orientée Objet Section : informatique Niveau : 3 ème niveau (gestion, industriel, réseau) Volume Horaire : 22,5 heures Cours Intégrés + 45 Travaux Pratiques

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

DG-ADAJ: Une plateforme Desktop Grid

DG-ADAJ: Une plateforme Desktop Grid DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3

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

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques (bourse EPSRC numéro GR/S21717/01) Enhancing the Perf. Predictability of Grid Appli. with Patterns and

Plus en détail

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur) Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les

Plus en détail

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut

Plus en détail

KL5121. Pour activer des sorties en fonction de la position d'un codeur

KL5121. Pour activer des sorties en fonction de la position d'un codeur KL5121 Pour activer des sorties en fonction de la position d'un codeur VERSION : 1.0 / PH DATE : 07 Février 2006 Sommaire Ce manuel explique de manière pratique les étapes successives pour mettre en œuvre

Plus en détail

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques. Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

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

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

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

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

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris «Dire et écrire» pour réaliser une composition en travail collaboratif en géographie Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris OBJECTIFS 1- Niveau et insertion dans la programmation 2-

Plus en détail

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Logiciel Libre Cours 2 Fondements: Programmation

Logiciel Libre Cours 2 Fondements: Programmation Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

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

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail