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

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3)

Les tableaux (ou vecteurs) (1/3) Cours numéro 3: Programmation impérative LI213 Types et Structures de données. Les tableaux (3/3) Les tableaux (2/3) Les tableaux (ou vecteurs) (1/3) Le type tableau est une des réponses à la question : LI213 Types et Structures de données Licence d Informatique Université Paris 6 comment agréger un très grand nombre

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

Algorithmique - Programmation 1. Cours 4

Algorithmique - Programmation 1. Cours 4 Algorithmique - Programmation 1 Cours 4 Université Henri Poincaré CESS Epinal Automne 2008 1/ 23 Plan Rappels : Types en Caml Rappels: Types en Caml Polymorphisme Le filtrage Le type produit cartésien

Plus en détail

Algorithmique Programmation Objet Python

Algorithmique Programmation Objet Python Algorithmique Programmation Objet Python Andrea G. B. Tettamanzi Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.fr Andrea G. B. Tettamanzi, 2015 1 CM - Séance 7 Listes

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

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

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

Programmation fonctionnelle

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

Plus en détail

Examen du 16 décembre 2014

Examen du 16 décembre 2014 Licence STS mention Informatique, semestre 5 2014 2015 Programmation fonctionnelle (Info 311) Durée : 3h 6 pages Examen du 16 décembre 2014 Les notes de TD manuscrites ainsi que les fiches de cours et

Plus en détail

Chapitre 11: Récursivité. Qu est-ce que la récursivité? Penser récursivement. Définition récursive d une liste

Chapitre 11: Récursivité. Qu est-ce que la récursivité? Penser récursivement. Définition récursive d une liste Chapitre 11: Récursivité CSI150 Introduction au génie logiciel Chapitre 11: Récursion La récursivité est une technique fondamentale de programmation qui permet de résoudre élégamment certains types de

Plus en détail

Génie Logiciel I. Cours VII - La S.T.L. et les conteneurs. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09

Génie Logiciel I. Cours VII - La S.T.L. et les conteneurs. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Génie Logiciel I Cours VII - La S.T.L. et les conteneurs Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Nicolas Kielbasiewicz (C.D.C.S.P./I.S.T.I.L./I.C.J.) Génie

Plus en détail

Cours d informatique du 17/11/2009 A. Rappels sur les boucles

Cours d informatique du 17/11/2009 A. Rappels sur les boucles Cours d informatique du 17/11/2009 A. Rappels sur les boucles 1) Rappel sur les invariants de boucle : L invariant de boucle est un outil pour concevoir cette boucle. Il peut exister plusieurs invariants

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

Sommes et exceptions

Sommes et exceptions Sommes et exceptions Types sommes exemples Types sommes, exemples définition type bst = Noeud of int * bst * bst Feuille let singleton = fun k -> Noeud(k,Feuille,Feuille) let arbre = Noeud(34, singleton

Plus en détail

Introduction à la STL (en C++)

Introduction à la STL (en C++) Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2012/2013 Programmation Orientée Objet Introduction à

Plus en détail

Introduction au langage

Introduction au langage Introduction au langage Un langage de programmation : de haut niveau interprété orienté objet si on le souhaite rapide à écrire et proche du pseudo-code simple tant qu on fait des choses simples Un programme

Plus en détail

petite référence de Caml

petite référence de Caml petite référence de Caml version du document : 2 (rentrée 1996) Alain Bèges & Laurent Chéno lycées Champollion (Grenoble) & Louis-le-Grand (Paris) Table des matières 1 Types de base 2 1.1 Unit... 2 1.2

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

Analyse lexicale 2014-2015

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

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

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

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

Programmation fonctionnelle

Programmation fonctionnelle Programmation fonctionnelle avancée Notes de cours Mise à niveau 1 9 septembre 2015 Sylvain Conchon sylvain.conchon@lri.fr /59 1 Structure du cours Le cours est à la fois : Une introduction à la programmation

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données 1.1 Algorithmique et Structures de Données Jean-Charles Régin Licence Informatique 2ème année 1.2 Itérations Jean-Charles Régin Licence Informatique 2ème année Itération : définition 3 En informatique,

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

Introduction à Python et Xcas/Giac

Introduction à Python et Xcas/Giac Chapitre 1 Introduction à Python et Xcas/Giac 1.1 Présentation, Installation et documentation Sur le site du jury du capes http://capes-math.org/index.php?id=epreuves-orales, on trouve un paquet python2.7

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

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

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

Les Tables de Hachage

Les Tables de Hachage NICOD JEAN-MARC Licence 3 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2007 NICOD JEAN-MARC 1 / 34 Référence Tables à adressage directe Thomas H. Cormen, Charles E.

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

Algorithmique - Programmation 1. Cours 1

Algorithmique - Programmation 1. Cours 1 Algorithmique - Programmation 1 Cours 1 Université Henri Poincaré CESS Epinal Automne 2008 1/ 24 Plan Introduction Introduction A propos d AP1 Quelques concepts de base Premiers pas avec Caml Le branchement

Plus en détail

EXAMEN. Durée : 2h, le seul document autorisé est une feuille A4 recto-verso manuscrite de notes personnelles

EXAMEN. Durée : 2h, le seul document autorisé est une feuille A4 recto-verso manuscrite de notes personnelles Nom : RICM3-2014/2015 Prénom : Algorithmique et Programmation Fonctionnelle EXAMEN Durée : 2h, le seul document autorisé est une feuille A4 recto-verso manuscrite de notes personnelles Cet énoncé comporte

Plus en détail

TP «Opérations sur les tableaux Excel»

TP «Opérations sur les tableaux Excel» TP «Opérations sur les tableaux Excel» I. Rappels sur les fonctions et opérateurs arithmétiques II. III. IV. Notions sur les nombres Notions sur les dates Variables binaires et booléennes V. Quelques trucs

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

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

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

Initiation aux algorithmes des arbres binaires

Initiation aux algorithmes des arbres binaires Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.

Plus en détail

introduction SQL 10 séances de 4h Licence Pro IRSII 2009-2010

introduction SQL 10 séances de 4h Licence Pro IRSII 2009-2010 introduction SQL 10 séances de 4h Licence Pro IRSII 2009-2010 Support proposé par C. Dabancourt, inspiré aussi par des exemples et tutoriaux Internet PHP SEANCE N 1 INTRODUCTION... 2 EXERCICE N 1 : PRINCIPE

Plus en détail

1 Préliminaires : manipulation de listes

1 Préliminaires : manipulation de listes API2-prime 2013 2014 Licence SESI - Semestre 3 TP2 : traitement de données Objectifs : manipuler les fichiers CSV et un module de lecture manipuler les exceptions manipuler les listes transformer des données

Plus en détail

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés.

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. 1 0.0.1 Suite récurrente (Fibonacci) * Réécrire la fonction u de façon à ce qu elle ne soit

Plus en détail

CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT

CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT Si la version professionnelle d Adobe Acrobat permet de lire et d annoter des fichiers PDF comme de nombreux outils gratuits elle dispose également de fonctions

Plus en détail

18 h CM (F. Maurel) + 16 h TD/TP (F. Maurel / T. Roy)

18 h CM (F. Maurel) + 16 h TD/TP (F. Maurel / T. Roy) Présentation cours 18 h CM (F. Maurel) + 16 h TD/TP (F. Maurel / T. Roy) 5/6 h Python 2,5/2 h Introduction à l'ihm (démarche participative centrée utilisateur) + Mise en place des groupes 2,5/2 h : Méthodes

Plus en détail

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a.

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a. Activité 10 Formulaires Objectif Travailler sur des formulaires : observer le code et modifier l interface (IHM) de l application. Ressource à utiliser Base de données Formation appformation.mdb Fiches

Plus en détail

Collections d objets (de taille variable)

Collections d objets (de taille variable) Introduction à la programmation en Java Frédéric MALLET Jean-Paul ROY UFR Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 10-1 Où en sommes-nous? Nous savons rédiger le texte d une classe d objets,

Plus en détail

1 Les arbres binaires en Java

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

Plus en détail

Travaux pratiques de M2105 Web dynamique

Travaux pratiques de M2105 Web dynamique Travaux pratiques de M2105 Web dynamique L objectif des séances de TP du module M2105 est de créer un mini site web d annuaire permettant à différents utilisateurs de gérer leurs contacts. Les informations

Plus en détail

Préparation à l Agregegation épreuve de modelisation TP 3 programmation: fichiers et bibliothèque graphique

Préparation à l Agregegation épreuve de modelisation TP 3 programmation: fichiers et bibliothèque graphique Préparation à l Agregegation épreuve de modelisation TP 3 programmation: fichiers et bibliothèque graphique César Rodríguez 9 Octobre 2012 Le but de ce TP est de Apprendre à lire et écrire des fichiers,

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

Cours/TD n 3 : les boucles

Cours/TD n 3 : les boucles Cours/TD n 3 : les boucles Où on se rendra compte qu il est normal de rien comprendre Pour l instant, on a vu beaucoup de choses. Les variables, les Si Alors Sinon, les tests avec les ET, les OU et les

Plus en détail

Tutoriel : AccÄs Å un Service Web (GoogleSearch API) avec Visual Basic.Net 2003. Table des matiäres

Tutoriel : AccÄs Å un Service Web (GoogleSearch API) avec Visual Basic.Net 2003. Table des matiäres Tutoriel : AccÄs Å un Service Web (GoogleSearch API) avec Visual Basic.Net 2003 Table des matiäres INTRODUCTION 2 QU EST-CE QU UN SERVICE WEB??? 2 LES PRELIMINAIRES 2 LE DESIGN DE LA FICHE DE RECHERCHE

Plus en détail

TP Tracé de courbes : module Pylab

TP Tracé de courbes : module Pylab TP Tracé de courbes : module Pylab But de ce TP : Découvrir le module Pylab permettant de tracer des courbes : les représentations graphiques sont souvent utiles lorsque l on étudie un problème de physique,

Plus en détail

Comment un chameau peut-il écrire un journal? Julien Signoles. avec la participation amicale de Sylvain Conchon dans le rôle de Benjamin Monate

Comment un chameau peut-il écrire un journal? Julien Signoles. avec la participation amicale de Sylvain Conchon dans le rôle de Benjamin Monate Comment un chameau peut-il écrire un journal? Julien Signoles avec la participation amicale de Sylvain Conchon dans le rôle de Benjamin Monate JFLA 14 9 janvier 2014 Contexte Frama-C est une plateforme

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

Rapport IN52. Sujet : Résolution d un puzzle

Rapport IN52. Sujet : Résolution d un puzzle CARRE Julien PIERNOT Jérôme Rapport IN52 Sujet : Résolution d un puzzle Responsable : M. Ruicheck Y. Automne 2007 1 SOMMAIRE INTRODUCTION...3 I. Description et approche du sujet...4 1. Description 2. Outils

Plus en détail

Perfectionnement au logiciel de traitement de texte Word (2000) : publipostage

Perfectionnement au logiciel de traitement de texte Word (2000) : publipostage FUNDP CeFIS Département Éducation et Technologie rue de Bruxelles, 61 B-5000 Namur (Belgique) Tél : 081 725060 Fax : 081 725064 Télex : 59 222 FAC NAM B E-mail : cefis@fundp.ac.be URL : http://www.det.fundp.ac.be/cefis/

Plus en détail

TP n o 14 : Bases de données, première partie

TP n o 14 : Bases de données, première partie TP n o 14 : Bases de données, première partie I Introduction Dans ce TP nous allons effectuer des opérations élementaires sur une base de données ne comportant qu une seule table. Lors de la prochaine

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

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

Programmation fonctionnelle : feuille d exercices 3

Programmation fonctionnelle : feuille d exercices 3 Programmation fonctionnelle : feuille d exercices 3 María-Virginia Aponte 19 mars 2011 Exercice 1 Filtrage et premières listes Complétez le tableau suivant : Motif Valeur comparée Réussite Liaisons 3 1

Plus en détail

Langages de programmation et compilation

Langages de programmation et compilation École Normale Supérieure Langages de programmation et compilation Jean-Christophe Filliâtre Cours 6 / 9 novembre 2015 Jean-Christophe Filliâtre Langages de programmation et compilation 2015 2016 / cours

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

Cours 3 : Encapsulation et tests

Cours 3 : Encapsulation et tests DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.fr Cours 3 : Encapsulation et tests Plan Divers Paquetages : intérêt, utilisation des packages existants, créer un package Encapsulation

Plus en détail

Fonctions et procédures. Procedures: déclaration et appel

Fonctions et procédures. Procedures: déclaration et appel Cours 5 : fonctions, procédures, passage des paramètres 1 Fonctions et procédures Idée : capitaliser sur le code déjà écrit pour introduire des nouvelles commandes et opérations. On souhaite donner un

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

Les conteneurs STL C++

Les conteneurs STL C++ Les conteneurs STL C++ 2014 tv - v.1.0 Sommaire La librairie standard C++ 2 Notion de conteneurs......................................... 2 Notion de complexité.........................................

Plus en détail

Langages de programmation et compilation

Langages de programmation et compilation École Normale Supérieure Langages de programmation et compilation Jean-Christophe Filliâtre Cours 1 / 25 septembre 2008 Jean-Christophe Filliâtre Langages de programmation et compilation 2008 2009 / cours

Plus en détail

Transformée de Fourier Discrète Convolution Circulaire

Transformée de Fourier Discrète Convolution Circulaire BE Traitements Numériques des Signaux n 2 Filière SICOM 2A PHELMA-ENSE 3 Année 2015-2016 Pascal PERRIER Transformée de Fourier Discrète Convolution Circulaire 1. Analyse d un signal périodique Dans cette

Plus en détail

Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant. Comparateur de documents XML

Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant. Comparateur de documents XML Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant DOCUMENTATION TECHNIQUE Comparateur de documents XML SOMMAIRE 1 Introduction... 3 2 Langage et choix de programmation... 4 2.1 Le langage PHP...

Plus en détail

Solution : Le principe est le suivant : on crée un tableau distribution. Ce tableau associe à indice, distribution(indice) qui

Solution : Le principe est le suivant : on crée un tableau distribution. Ce tableau associe à indice, distribution(indice) qui CORRECTION DES EXERCICES TYPES Calcul d'une distribution de probabiltiés Problème : à partir d'une série de valeurs, on veut obtenir le nombre de valeurs par intervalle pour différentes tailles d'intervalle.

Plus en détail

Introduction à l optimisation

Introduction à l optimisation Université du Québec à Montréal Introduction à l optimisation Donnée dans le cadre du cours Microéconomie II ECO2012 Baccalauréat en économique Par Dominique Duchesneau 21 janvier septembre 2008 Ce document

Plus en détail

Les tableurs Logiciels gratuits : PC (Open Office) / Mac (Neo Office) Logiciel payant : PC/Mac (Excel)

Les tableurs Logiciels gratuits : PC (Open Office) / Mac (Neo Office) Logiciel payant : PC/Mac (Excel) Les tableurs Logiciels gratuits : PC (Open Office) / Mac (Neo Office) Logiciel payant : PC/Mac (Excel) Qu'est-ce qu'un tableur? - La gestion de fichiers 2 Ergonomie générale : le classeur / les feuilles

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

LES PROCÉDURES ET LES FONCTIONS

LES PROCÉDURES ET LES FONCTIONS LES PROCÉDURES ET LES FONCTIONS 165 LES PROCÉDURES ET LES FONCTIONS CHAPITRE 7 OBJECTIFS EXPOSER LE PRINCIPE DE LA DÉCOMPOSITION DES PROGRAMMES DANS LE LANGAGE PASCAL. PRÉCISER LE RÔLE ET L UTILITÉ DES

Plus en détail

Licence 2 MIEE Première session 2013-2014. GEN : Génie Logiciel

Licence 2 MIEE Première session 2013-2014. GEN : Génie Logiciel Licence 2 MIEE Première session 2013-2014 Le barème est donné à titre indicatif. GEN : Génie Logiciel 2 heures - Documents autorisés Question 1 (8 points). Vous indiquerez vos réponses sur votre copie

Plus en détail

1. Ouvrir l éditeur de VBA et ajouter un module

1. Ouvrir l éditeur de VBA et ajouter un module On peut programmer avec VBA des fonctions et des procédures. Une fonction pourra être utilisée comme la fonction Somme, et une procédure pourra devenir une macro. 1. Ouvrir l éditeur de VBA et ajouter

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

Chapitre 3 Tableaux à plusieurs dimensions

Chapitre 3 Tableaux à plusieurs dimensions Chapitre 3 Tableaux à plusieurs dimensions Pascal Lando Faculté de mathématiques et d informatique Amiens http://www.laria.u-picardie.fr/~lando pascal.lando@u-picardie.fr 19 février 2007 Plan du cours

Plus en détail

TP6: Introduction à Linux: Shell scripting

TP6: Introduction à Linux: Shell scripting INFO-F-201 Systèmes d exploitations 1 TP6: Introduction à Linux: Shell scripting avec l accord de Sébastien Collette Résumé Suite à la séance précédente sur l utilisation du shell bash, nous allons voir

Plus en détail

Les Fichiers en Pascal

Les Fichiers en Pascal Les Fichiers en Pascal Université de Toulouse II DEUG MASS Année 2004-2005 Patricia PASCAL < ppascal@laas.fr > - Page 1 / 31 - Plan du cours sur les fichiers les fichiers, pourquoi, comment? (p3) les différents

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 I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

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

PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2)

PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2) PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2) LICENCE MATHS-INFO 19-20 MARS 2012 Introduction Le premier TP de la série sur le traitement des images a permis d avoir des fonctions de lecture/écriture

Plus en détail

Gestion des types de données

Gestion des types de données 3 Gestion des types de données Parmi les types de données prédéfinis de Python, certains sont simples (atomiques) comme int et float, et d autres sont complexes, c est-à-dire qu une variable complexe contient

Plus en détail

Utilisation des opérateurs sur les bits en PHP

Utilisation des opérateurs sur les bits en PHP Introduction Comme vous le savez sans doute, un processeur ne connaît ni les nombres entiers ni les nombres réels, ni les chaînes de caractères. La seule chose que votre processeur sait traiter ce sont

Plus en détail

Période 3 Les tableaux

Période 3 Les tableaux Département Génie Électrique et Informatique Industrielle Période 3 Les tableaux 1/ Recopie de certains éléments d un tableau Soit les déclarations suivantes : int Tabint[10]={65,21, 9,23, 1,32,5, 69,12,

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

ACCEDER A UNE BASE DE DONNEES ACCESS AVEC DAO

ACCEDER A UNE BASE DE DONNEES ACCESS AVEC DAO ACCEDER A UNE BASE DE DONNEES ACCESS AVEC DAO NIVEAU : PREMIERE RENCONTRE AVEC VB INITIES/EXPERIMENTES Pré requis pour comprendre ce tutorial : - Connaître les principales commandes de VB - Connaître la

Plus en détail

Programmation sous Python

Programmation sous Python Erwan Biland Lycée Chateaubriand - BCPST 1C Année scolaire 2014-2015 Objects du Utilisation de la console (shell ) Python calculatrice Fichier machin.py Manipulation des variables Création/affectation,

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

PC* Structure de pile

PC* Structure de pile Structure de pile I. Définition........................................... 2 I.1 Introduction..................................... 2 I.2 Opérations caractérisant une structure de pile...................

Plus en détail

Cours de base d Ingéniérie des applications objet. Introduction

Cours de base d Ingéniérie des applications objet. Introduction 1 IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE1 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II Contenu du cours - concepts

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

Extended communication server: Bureau Virtuel Mobile pour iphone (guide utilisateur)

Extended communication server: Bureau Virtuel Mobile pour iphone (guide utilisateur) Extended communication server: Bureau Virtuel Mobile pour iphone (guide utilisateur) Juin, 2009 Alcatel-Lucent Office Offer - All Rights Reserved Alcatel-Lucent 2009 8AL90405FRAA 01 TABLE DES MATIERES

Plus en détail

SOMMAIRE 1 INTRODUCTION 3 2 CONTACTER VOTRE SUPPORT 3 3 ESPACE DE GESTION DES CARTES 4 4 CONFIGURER UNE CARTE 5

SOMMAIRE 1 INTRODUCTION 3 2 CONTACTER VOTRE SUPPORT 3 3 ESPACE DE GESTION DES CARTES 4 4 CONFIGURER UNE CARTE 5 SOMMAIRE 1 INTRODUCTION 3 2 CONTACTER VOTRE SUPPORT 3 3 ESPACE DE GESTION DES CARTES 4 4 CONFIGURER UNE CARTE 5 4.1 Ajouter une carte 5 4.1.1 Détails : nom, taille, marqueur 5 4.1.2 Ajout d un marqueur

Plus en détail

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

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

Plus en détail

Vous pouvez corriger, modifier, compléter le texte dans un document. La touche,

Vous pouvez corriger, modifier, compléter le texte dans un document. La touche, Saisir du texte : La première étape pour réaliser une lettre ou un document est d en taper le texte au clavier. Le texte tapé apparaît dans le document à l endroit du curseur clignotant. Appuyer sur la

Plus en détail

TP : Les tours de Hanoï. 1 Le module Hanoi_utils. Algorithmes et Programmation Impérative 2. Univ. Lille1 - Licence Informatique 2ème année 2014-2015

TP : Les tours de Hanoï. 1 Le module Hanoi_utils. Algorithmes et Programmation Impérative 2. Univ. Lille1 - Licence Informatique 2ème année 2014-2015 Univ. Lille1 - Licence Informatique 2ème année 2014-2015 Algorithmes et Programmation Impérative 2 TP : Les tours de Hanoï Objectifs : Vous allez programmer la résolution du problème des tours de Hanoï

Plus en détail