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

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

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

Transcription

1 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 ; ;6], on peut accéder à. À partir de, on peut accéder à, et ainsi de suite. Licence d Informatique Université Paris 6 Cette définition ne présuppose rien sur la représentation en mémoire. En principe, pas de contrainte sur le nombre d éléments dans la. Les s simplement chaînées récursive : une est composée d un élément (la tête) suivi par la des éléments suivants (la queue). Illustration graphique : x x x Les seuls opérateurs : Un opérateur pour accéder à la tête : car en LISP/Scheme, hd en OCAML. Un opérateur pour accéder à la queue : cdr en LISP/Scheme, tl en OCAML. toujours faire un dessin indiquant comment sont chaînés les éléments. Vous pensez pouvoir vous en passer? OK, vous aurez des bugs, à vous de voir... Intérêt des s chaînées (/) x x x Les flèches sont des pointeurs = en mémoire, les boites ne sont pas placées les unes à côté des autres Avantages des s simplement chaînées Suppression d un élément facile et rapide : parcourir la jusqu à l élément à supprimer puis rechaîner x x x... On peut rajouter autant d éléments que l on veut Utilisation d un espace mémoire proportionnel au nombre d éléments (= pas de perte de mémoire) x n

2 Inconvénients des s chaînées (/) Les s doublement chaînées x x x Inconvénients des s simplement chaînées Temps d accès aux éléments : il faut en moyenne parcourir n/ éléments avant de trouver un élément donné. Conclusion : utilisation C est une structure à utiliser : quand effectue souvent des ajouts/suppressions d éléments, quand on ne sait pas a priori combien on aura d objets x i Similaire à une simplement chaînée sauf qu on peut aussi accéder au prédécesseur. Illustration graphique : x x x Inconvénients du double chaînage par rapport au simple chaînage : chaînage plus complexe à gérer ( pointeurs au lieu d un) utilise plus de mémoire Avantages du double chaînage par rapport au simple chaînage : suppression d un élément plus rapide : rechaîner autour de l élément à supprimer = parcours de inutile Les s circulaires Listes telles que le «dernier» élément de la a pour suivant le «premier» Illustration graphique : x x x x n circulaire simplement chaînée x x x x n circulaire doublement chaînée Utilisation : exécution de threads (fonctions s exécutant en concurrence ( en parallèle)) bilan : comparaison avec les tableaux nb d éléments arbitraire borné accès aux éléments lent (parcours) rapide tableau insertion au début rapide lente (décalages) insertion en fin lente (parcours) rapide insertion au milieu lente (parcours) lente (décalages) suppression rapide (rechaînage) lente (décalages) Règle : Utiliser plutôt des tableaux sauf si : on doit faire beaucoup de suppressions on ne connaît pas le nombre d éléments maximal a priori

3 Listes en OCAML type a list d OCAML : s simplement chaînées La Core Library [] = la vide [6 ; 7 ; ] = de entiers :: concaténation d un élément avec une : :: [ ; ;] = [ ; ; concaténation de s : [ [ ;] = [ ; ; ;] Librairie standard : le module List hd : a list -> a : renvoie la tête de la tl : a list -> a list : renvoie la queue de la Parcours d une (/) # open List ;; let rec somme = if = [] then 0 else hd + somme (tl ) ;; #trace somme ;; somme [5 ; 6 ; 7];; val somme : int list -> int = <fun> somme <-- [5 ; 6 ; 7] somme <-- [6 ; 7] somme <-- [7] somme <-- [] somme --> 0 somme --> 7 somme --> somme --> 8 - : int = 8 tester la fin de la récursion avant l appel récursif Parcours d une (/) Parcours d une s d une en OCAML type a list = [] a :: a list type somme - cf. cours 6 = possibilité de matching : [] -> = vide x :: reste -> x = tête de reste = queue de Règle : Parcourez les s en utilisant le matching plutôt que hd et tl Règle : Profitez au maximum de la puissance du matching! # let rec somme = [] -> 0 tete :: queue -> tete + somme queue ;;

4 Exemple de parcours Recherche du dernier élément d une : # let rec dernier = [ x ] -> x tete :: queue -> dernier queue [] -> failwith " vide";; Recherche de l avant-dernier élément : # let rec avant dernier = x :: y :: [] -> x tete :: queue -> avant dernier queue -> failwith "pas assez d éléments";; Parcours simultané de s # let = [ ; ; ; ] and = [5 ; 6] ;; let rec ajoute l l = match (l,l) with l,[] -> l [],l -> l tete :: queue, tete ::queue -> (tete + tete) :: ajoute queue queue ;; ajoute ;; - : int list = [6 ; 8 ; ; ] ajoute [ ; ; ; ] [5 ; 6] [6 ; 8 ; ; ] ( + 5) :: (ajoute [ ; ; ] [6]) [6 ; 8 ; ; ] ( + 6) :: (ajoute [ ; ] []) [8 ; ; ] [ ; ] [ ; ] Le filtre n importe quel motif! Rappel : identifiants dans le matching # let position elt = let rec recherche nb = elt :: reste -> nb tete :: reste -> recherche reste (nb+) [] -> failwith "élément non trouvé" in recherche 0 ;; position [ ; ; ; ] ;; val position : a list -> b -> int = <fun> - : int = 0 Retourne 0 au lieu de Rappel : les identifiants qui apparaissent dans les motifs sont non liés. Le filtrage les lie localement à des parties de la valeur filtrée. Insertion en début de # let insere debut elt = elt : : ;; let = [ ; ; ] ;; insere debut ;; val insere debut : a list -> a -> a list = <fun> val : int list = [ ; ; ] - : int list = [ ; ; ; ] insertion rapide (pas de parcours de ) ne modifie pas la mais éléments partagés avec

5 Insertion en fin de # let rec insere fin elt = tete :: queue -> tete :: insere fin queue elt [] -> [elt] ;; let = [ ; ; ] ;; insere fin ;; insertion lente : parcours de aucun élément partagé avec Insertion après un élément # let rec insere apres elt after = tete :: queue -> if tete = after then after :: elt :: queue else tete :: insere apres queue elt after [] -> [] ;; insere apres [ ; ; 5 ; 6] ;; - : int list = [ ; ; ; 5 ; 6] retournée insertion lente : parcours de fin de partagée avec 5 6 Suppression en début de # let suppression debut = tete :: queue -> queue [] -> [] ;; let = [ ; ; ; ] ;; suppression debut ;; - : int list = [ ; ; ] suppression rapide (pas de parcours) ne modifie pas la mais retourne une partagée Suppression en fin de # let rec suppression fin = [ ] -> [] tete :: queue -> tete :: suppression fin queue [] -> [] ;; suppression fin [ ; ; ; ];; - : int list = [ ; ; ] suppression lente : parcours de aucun élément partagé avec

6 Suppression après un élément # let rec suppr apres after = un :: deux :: queue -> if un = after then un :: queue else un :: suppr apres (deux :: queue) after -> ;; suppr apres [ ; ; ; 5 ; 6] ;; - : int list = [ ; ; 5 ; 6] retournée suppression lente : parcours de fin de partagée avec 5 6 Fonction iter iter : ( a -> unit) -> a list -> unit iter f [a ;... ; an] applique la fonction f à tour de rôle à a, puis a, etc. équivalent à (f a ; f a ;... ; f an ; ()) Exemple # let f x = print string ("nombre : " ˆ string of int x ˆ "\n") ;; List.iter f [ ; ; ; ];; nombre : nombre : nombre : nombre : - : unit = () Fonction map Fonction fold left map : ( a -> b) -> a list -> b list f [a ;... ;an] retourne la [f a ;... ;f an] Exemples # List.map string of int [ ; ; ; ];; - : string list = ["" ; "" ; "" ; ""] # let f x = x * x ;; List.map f [ ; ; ; ];; - : int list = [ ; ; 9 ; 6] fold left : ( a -> b -> a) -> a -> b list -> a fold left f a [b ;... ; bn] retourne la valeur de l expression f (... (f (f a b) b)...) bn Exemples # let f str nb = str ˆ " " ˆ (string of int nb) ;; List.fold left f "nombre :" [ ; ; ; ];; - : string = "nombre : " # let somme nb nb = nb + nb ;; List.fold left somme 0 [ ; ; ; ] ;; List.fold left (+) 0 [ ; ; ; ];; 0 0

7 Fonction fold right fold right : ( a -> b -> b) -> a list -> b -> b fold right f [a ;... ; an] b retourne la valeur de l expression f a (f a (... (f an b)...)) Exemple # let f nb str = str ˆ " " ˆ (string of int nb) ;; List.fold right f [ ; ; ; ] "nombre :";; - : string = "nombre : "

Cours numéro 9 : arbres binaires et de recherche

Cours numéro 9 : arbres binaires et de recherche Cours numéro 9 : arbres binaires et de recherche LI213 Types et Structures de données Licence d Informatique Université Paris 6 Arbre Arbre Un arbre est un ensemble fini A d éléments, liés entre eux par

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

# 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 =

# 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

Arbres bien équilibrés

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

Plus en détail

Programmation fonctionnelle avec OCaml

Programmation fonctionnelle avec OCaml Programmation fonctionnelle avec OCaml 1ère séance, 19 février 2015 6 séances de 1h30 de cours et 3h de TP 3 projets avec soutenance D autres transparents sont disponibles avec vidéo (intranet) Samuel

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

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

Plus en détail

Introduction Tableaux / Vecteurs Listes chaînées Un principe général Quelques algorithmes de tri À faire pour lundi prochain. Tableaux VS Listes

Introduction Tableaux / Vecteurs Listes chaînées Un principe général Quelques algorithmes de tri À faire pour lundi prochain. Tableaux VS Listes Tableaux VS Listes Tableaux VS Listes Petit chapitre. Plan Introduction Tableaux / Vecteurs Définition abstraite Qu a-t-on fait avec des vecteurs? Que peut-on faire avec des vecteurs? Listes chaînées Définition

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

Modules et sous-modules

Modules et sous-modules Modules et sous-modules Un module peut contenir des sous-modules. Le principe de la portée lexicale (angl. : lexical scoping) s applique. Un module contient des définitions de 1. Types (concrets ou abstraits)

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

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013 La GUI tkinter Département d informatique Université de Toulon et du Var 2012-2013 Présentation Python est né en 1990, son concepteur est De Guido Van Rossum(Pays Bas). Il présente les caractéristiques

Plus en détail

TP3-Traitement de texte : Word

TP3-Traitement de texte : Word TP3-Traitement de texte : Word Objectifs : Mise en page d un document, sauts de pages, sauts de section, marges, numérotation des pages, mise en colonnes, encadrement d une page. Utilisation des éléments

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

B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage

B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage 1 deux points de vues complémentaires : outils d'analyse ; composants du langage B.I) Briques de base ; les expressions bien typées B.II) Simplification de l'analyse ; nommer une expression B.III) Analyse

Plus en détail

Programmation avancée

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

Plus en détail

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

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

Série d exercices N 9 Arbres

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

Plus en détail

Evaluation paresseuse et structure fonctionnelles persistantes efficaces. La stratégie d évaluation dans les langages fonctionnels

Evaluation paresseuse et structure fonctionnelles persistantes efficaces. La stratégie d évaluation dans les langages fonctionnels Evaluation paresseuse et structure fonctionnelles persistantes efficaces Evaluation stricte et evaluation paresseuse Les Queues de la sémaine passée : efficacité ou persistance? Les Queues révisitéés :

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

Plus en détail

Algorithmique - Programmation 1. Cours 10

Algorithmique - Programmation 1. Cours 10 Algorithmique - Programmation 1 Cours 10 Université Henri Poincaré CESS Epinal Automne 2008 1/ 25 Plan Caml fonctionnel vs impératif Caml fonctionnel vs impératif Le type unit Données mutables Les structures

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

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

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

Plus en détail

Types de données en Java, comparaison avec Caml

Types de données en Java, comparaison avec Caml Types de données en Java, comparaison avec Caml par Denis Monasse, Lycée Louis le Grand 9 mai 2001 1 Les types élémentaires En Java, on dispose bien entendu des types élémentaires habituels : entiers,

Plus en détail

Les différents types de relation entre les tables

Les différents types de relation entre les tables TABLES Les différents types de relation entre les tables La mise en relation de tables permet de relier les données d une table à celles d une autre table et ainsi d établir une base de données de type

Plus en détail

Expressions rationnelles, automates, analyse lexicale

Expressions rationnelles, automates, analyse lexicale Chapitre 2 Expressions rationnelles, automates, analyse lexicale L analyse lexicale est la première phase d un compilateur ou d un interprète : elle consiste à identifier et à catégoriser les différents

Plus en détail

Polytechnique. Épreuve d Informatique 1998

Polytechnique. Épreuve d Informatique 1998 Polytechnique Épreuve d Informatique 1998 Corrigé rédigé par Martine Lannaud, Lycée Chaptal, Paris Pour toute remarque ou correction martine.lannaud@prepas.org Motifs et automates Question 1. Quelques

Plus en détail

Chap. VII : arbres binaires

Chap. VII : arbres binaires Chap. VII : arbres binaires 1. Introduction Arbre : collection d objets avec une structure hiérarchique Structure intrinsèque descendants d une personne (elle incluse) A ascendant connus d une personne

Plus en détail

Le voyageur de commerce

Le voyageur de commerce Université de Strasbourg UFR Maths-Informatique Licence 3 - Semestre 6 Le voyageur de commerce Jonathan HAEHNEL & Marc PAPILLON Strasbourg, le 3 mai 2012 Table des matières 1 Etat des lieux 4 1.1 Fonctionnalités..............................

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

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

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

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

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

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

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

STL : le conteneur «Vector»

STL : le conteneur «Vector» STL : le conteneur «Vector» 1 LE CONTENEUR VECTOR... 1 1.1 DECLARER UN VECTOR : VECTOR IDENTIFIANT... 1 1.2 METHODES ET OPERATEURS S APPLIQUANT AU VECTOR... 1 2 ACCES AUX OBJETS ET ITERATEURS...

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

Introduction à la compilation

Introduction à la compilation Analyse lexicale Université Paris-Sud Introduction à la compilation Sylvain Conchon Quandj étaisenfant,onm avaitditquelepèrenoëldescendaitpar lacheminée,etquelesordinateursseprogrammaientenbinaire.j ai

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

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

Plus en détail

Initiation WORD. Module 9 : Les graphismes.

Initiation WORD. Module 9 : Les graphismes. Initiation WORD. Module 9 : Les graphismes. Système d exploitation utilisé : Windows XP Service Pack 2 Créé par Xavier CABANAT Version 1.0 Document créé par Xavier CABANAT Page 1 sur 14 Avant propos. Tout

Plus en détail

Implantation d une machine virtuelle en C

Implantation d une machine virtuelle en C Implantation d une machine virtuelle en C Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2012/2013 Semaine 3 Interprète de bytecode Interprète de bytecode :

Plus en détail

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité Chapitre 1 Introduction Buts du chapitre : Motivation pour l étude des types abstraits de données ; Syntaxe de base pour l écriture de spécifications. 1.1 Introduction 1.1.1 Bibliothèques 1. L3, déjà une

Plus en détail

Support de cours Word 2003 Publipostage

Support de cours Word 2003 Publipostage 1 / 19 1 PRINCIPE... 3 2 DEMARRAGE.... 3 3 SELECTION DU TYPE DE DOCUMENT... 4 4 LE DOCUMENT DE BASE... 4 5 SELECTION DES DESTINATAIRES... 5 6 CREATION D UNE BASE DE DONNEES... 7 7 ECRITURE DE LA LETTRE...

Plus en détail

Examen 30 mai 2013. Vol de tâche. Système ENS L3 Info. Année 2012-2013

Examen 30 mai 2013. Vol de tâche. Système ENS L3 Info. Année 2012-2013 Système ENS L3 Info. Année 2012-2013 Examen 30 mai 2013 L énoncé est composé de 5 pages. Cette épreuve est prévue pour une durée de 2h. Les notes de cours et de TDs sont autorisées. Vol de tâche Le but

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

Rendu de travaux I, Algo - langage C

Rendu de travaux I, Algo - langage C IFIP 33 avenue de la République 75011 PARIS Rendu de travaux I, Valérie Amiot RP 50 2001-2002 SOMMAIRE I. Pourquoi sous C? II. Présentation du jeu 1) But du jeu III. Analyse fonctionnelle IV. Fonctionnalités

Plus en détail

Une implémentation du jeu Breakthrough en Haskell

Une implémentation du jeu Breakthrough en Haskell Une implémentation du jeu Breakthrough en Haskell Julien Dehos 23 mai 2014 1 Le jeu Breakthrough Jeu de plateau de type jeu de dames. Initialement, le plateau est composé de deux rangées de pions noirs

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

Les renvois. Comment référencer des informations de manière fiable et automatisée. Version 1.0 du 25.06.2006

Les renvois. Comment référencer des informations de manière fiable et automatisée. Version 1.0 du 25.06.2006 Les renvois Comment référencer des informations de manière fiable et automatisée Version 1.0 du 25.06.2006 Réalisé avec : OOo 2.0.2 Plate-forme / Os : Toutes Distribué par le projet fr.openoffice.org Sommaire

Plus en détail

Exemples d'activités sur les images numériques

Exemples d'activités sur les images numériques Annexe 1 1 Accès aux composantes RVB d un pixel dans GIMP Pour agrandir l image : touche Ctrl maintenue enfoncée tout en tournant la molette de la souris, ou bien menu Affichage > Zoom > 1600 % Dans la

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

Utilisation avancée de SugarCRM Version Professional 6.0

Utilisation avancée de SugarCRM Version Professional 6.0 Utilisation avancée de SugarCRM Version Professional 6.0 Document : Utilisation_avancee_SugarCRM_6-0.docx Page : 1 / 29 Sommaire Préambule... 3 I. Les rapports... 4 1. Les principes du générateur de rapports...

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

Initiation à R, logiciel de Statistiques

Initiation à R, logiciel de Statistiques Initiation à R, logiciel de Statistiques I. Plusieurs façons de travailler ( ou de s enquiquiner) II. R, logiciel de programmation en Statistiques III. Votre premier projet en R, pas à pas 2013-03-05 Initiation

Plus en détail

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Diffusé par Le Projet Documentation OpenOffice.org Table des matières 1. Définir les plages...3 2. Sélectionner une plage...4

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

www.tifawt.com IV- MICROSOFT EXCEL (Initiation)

www.tifawt.com IV- MICROSOFT EXCEL (Initiation) IV- MICROSOFT EXCEL (Initiation) PLAN I. Notions de base 1. Définition 2. Présentation Excel II. Quelques fonctions de Microsoft Excel 1.Création d un Classeur 2.Enregistrer un Classeur 3. Insertion et

Plus en détail

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des

Plus en détail

IX- Quelques exercices d examen

IX- Quelques exercices d examen 1 IX- Quelques exercices d examen I- Elagage On dispose d un tableau a[n] dont chaque case contient un nombre. Certains de ces nombres sont des 0. Sans utiliser d autre tableau (mais en désespoir de cause

Plus en détail

1 TD 3 : Construction d'une présentation à partir de photos

1 TD 3 : Construction d'une présentation à partir de photos 1 TD 3 : Construction d'une présentation à partir de photos (correction page??) Après un long séjour en vacances et une grande moisson de photos numériques, un baroudeur souhaite présenter quelques extraits

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

II. CREATION D UN QUESTIONNAIRE AVEC LE MODULE CREER QUESTIONNAIRE. Questionnaires et masques de saisie dans Epi Info v3.5

II. CREATION D UN QUESTIONNAIRE AVEC LE MODULE CREER QUESTIONNAIRE. Questionnaires et masques de saisie dans Epi Info v3.5 II. CREATION D UN QUESTIONNAIRE AVEC LE MODULE CREER QUESTIONNAIRE Questionnaires et masques de saisie dans Epi Info v3.5 Les questionnaires et les masques de saisie sont appelés des tables dans Epi Info

Plus en détail

Notion de complexité

Notion de complexité 1 de 27 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www-igm.univ-mlv.fr/ hivert Outils mathématiques 2 de 27 Outils mathématiques : analyse

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

Tableur Excel ou Open Office Calc

Tableur Excel ou Open Office Calc Tableur Excel ou Open Office Calc Tout d abord, selon le logiciel que vous pouvez avoir chez vous, des différences existent. Le logiciel se présente directement avec une feuille de calcul vierge, prêt

Plus en détail

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

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

Gestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques?

Gestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques? Gestion des références bibliographiques Comment simplifier la gestion des références bibliographiques? Objectifs de la formation Créer votre base de données personnelle de références bibliographiques.

Plus en détail

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Les Versions...3 2. Les Modifications...5

Plus en détail

GescoJMB v5. Le Sommaire :... 2 Page d accueil :... 2 Les Références :... 3 Les Textes :... 3 Les Paramètres :... 4 Les Outils :...

GescoJMB v5. Le Sommaire :... 2 Page d accueil :... 2 Les Références :... 3 Les Textes :... 3 Les Paramètres :... 4 Les Outils :... GescoJMB v5 Le Sommaire :............ 2 Page d accueil :............ 2 Les Références :............ 3 Les Textes :............ 3 Les Paramètres :............ 4 Les Outils :............ 5 Les Articles :............

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

Contrôler les programmes VBA

Contrôler les programmes VBA 7 Contrôler les programmes VBA Au sommaire de ce chapitre Utiliser les opérateurs logiques Trier des données Répéter une série d instructions : les boucles Utiliser des instructions conditionnelles Définir

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

Utilisation du logiciel ModellingSpace

Utilisation du logiciel ModellingSpace Utilisation du logiciel ModellingSpace 1. Pour ouvrir le logiciel, cliquer deux fois sur l icône de ModellingSpace se trouvant sur le bureau. N ouvrez pas d autres applications en même temps que ModellingSpace.

Plus en détail

Exercice 1 : Questions diverses (5 points)

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

Plus en détail

Table des matières. Chapitre 4 Travail avec plusieurs classeurs Ouverture de plusieurs classeurs 70

Table des matières. Chapitre 4 Travail avec plusieurs classeurs Ouverture de plusieurs classeurs 70 Table des matières v iii Table des matières Chapitre 1 Personnalisation du logiciel Personnalisation de l environnement Excel 2 Modification des options de l onglet Général 2 Modification des options de

Plus en détail

Cours 01 - Les structures de données

Cours 01 - Les structures de données Cours 01 - Les structures de données MPSI - Prytanée National Militaire Pascal Delahaye 1 er mars 2015 Les programmes informatiques, traitent des données, créent des données et renvoient des données. Pour

Plus en détail

Norme de programmation pour le cours et les travaux pratiques

Norme de programmation pour le cours et les travaux pratiques Université du Québec École de technologie supérieure Service des enseignements généraux www.seg.etsmtl.ca INF130 Ordinateurs et programmation Norme de programmation pour le cours et les travaux pratiques

Plus en détail

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

Plus en détail

Formation tableur niveau 1 (Excel 2013)

Formation tableur niveau 1 (Excel 2013) Formation tableur niveau 1 (Excel 2013) L objectif général de cette formation est de repérer les différents éléments de la fenêtre Excel, de réaliser et de mettre en forme un tableau simple en utilisant

Plus en détail

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

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

Plus en détail

Polyvalente Lucien-Pagé 2005-2006. Concevoir une bande dessinée à l aide du logiciel Power Point. Document produit par : Valérie Painchaud

Polyvalente Lucien-Pagé 2005-2006. Concevoir une bande dessinée à l aide du logiciel Power Point. Document produit par : Valérie Painchaud Polyvalente Lucien-Pagé 2005-2006 Concevoir une bande dessinée à l aide du logiciel Power Point Document produit par : Valérie Painchaud Inspiré d un document du RECIT conçu par : Claude Elmoznino Utilisation

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html 1 Généralités sur la programmation ALGORITHMIE - PROGRAMMATION 2 Algorithmie vs. Programmation Algorithmie Programme

Plus en détail

Algorithmique. Mode d application

Algorithmique. Mode d application I - Généralités Algorithmique T ale S Définition: Un algorithme est une suite finie d instructions permettant la résolution systématique d un problème donné. Un algorithme peut-être utilisé pour décrire

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

L Assistant graphique

L Assistant graphique Activité 2 : Les graphiques avec Excel Un graphique transforme les données en images. Il est un élément visuel qui facilite la compréhension de données statistiques. Cette activité permet d apprendre comment

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

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html 1 Tableau statique en lecture seule d objets hétérogènes LES TUPLES 2 Création des tuples et accès aux données

Plus en détail

Arbres Binaires de Recherche : Introduction

Arbres Binaires de Recherche : Introduction Arbres Binaires de Recherche : Introduction I. Guessarian cours ISN 11 janvier 2012 LIAFA, CNRS and University Paris Diderot 1/13 Arbre Binaire de Recherche Un Arbre Binaire de Recherche (ABR) est un arbre

Plus en détail

FICHE 10 : MODIFIER LES OBJETS

FICHE 10 : MODIFIER LES OBJETS 1. SELECTIONNER UN OBJET FICHE 10 : MODIFIER LES OBJETS Avant d'éditer un objet (zone de texte, tableau, image, objet ), vous devez le sélectionner en cliquant au milieu de l'objet. Des petits carrés noirs

Plus en détail

Excel XP formation niveau 1

Excel XP formation niveau 1 Excel XP formation niveau 1 L objectif général de cette formation est de repérer les différents éléments de la fenêtre Excel, de réaliser et de mettre en forme un tableau simple en utilisant quelques formules

Plus en détail

Patrick Morié, Bernard-Philippe Boyer

Patrick Morié, Bernard-Philippe Boyer Patrick Morié, Bernard-Philippe Boyer Tsoft et Groupe Eyrolles, 2004, ISBN : 2-212-11418-4 5 - ANALYSE ET SIMULATION 5 MODÈLE ITÉRATIF 1 - NOTION D ITÉRATION Dans certains modèles, il arrive qu une formule

Plus en détail

VIII. Interrogation de documents avec XQuery

VIII. Interrogation de documents avec XQuery VIII. Interrogation de documents avec XQuery 350 XQUERY? Est un langage d interrogation de données XML N est pas un dialecte XML Est un sur-ensemble de XPath 2.0 Utilise le même modèle de données (XDM)

Plus en détail

www.imprimermonlivre.com

www.imprimermonlivre.com 0 www.imprimermonlivre.com Composition d une couverture avec Word L objectif de ce guide est de vous proposer un mode opératoire pour créer une couverture avec Word. Nous vous rappelons toutefois que Word

Plus en détail

CH.3 LA TRADUCTION. Grammaire attribuée d une calculette. Traduction ch3 1. Traduction ch3 2

CH.3 LA TRADUCTION. Grammaire attribuée d une calculette. Traduction ch3 1. Traduction ch3 2 CH.3 LA TRADUCTION 3.1 Les grammaires attribuées 3.2 Les définitions S-attribuées 3.3 Les définitions L-attribuées 3.4 La traduction descendante 3.5 L évaluation ascendante des attributs hérités 3.6 L

Plus en détail