Informatique appliquée à la Géomatique



Documents pareils
Logiciel Libre Cours 3 Fondements: Génie Logiciel

Définitions. Numéro à préciser. (Durée : )

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Chap III : Les tableaux

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

Feuille TD n 1 Exercices d algorithmique éléments de correction

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Probabilités Loi binomiale Exercices corrigés

V- Manipulations de nombres en binaire

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Correction du Baccalauréat S Amérique du Nord mai 2007

Licence Sciences et Technologies Examen janvier 2010

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

Représentation des Nombres

Suites numériques 3. 1 Convergence et limite d une suite

Algorithmique I. Algorithmique I p.1/??

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

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Business Intelligence

Les dossiers compressés (ou zippés)

Cryptographie et fonctions à sens unique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

La classification automatique de données quantitatives

Université Paris-Dauphine DUMI2E 1ère année, Applications

Traduction des Langages : Le Compilateur Micro Java

Chapitre 1 : Introduction aux bases de données

Présentation du module Base de données spatio-temporelles

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

F. Barthélemy. 17 mai 2005

AutoCAD Petit exercice sous

Rappels sur les suites - Algorithme

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

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

Des données à la connaissance client. A la découverte de la plateforme de connaissance client knowlbox

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Solutions du chapitre 4

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Une réponse (très) partielle à la deuxième question : Calcul des exposants critiques en champ moyen

Janvier Entretien de l ordinateur

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

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

Algorithmique et Programmation, IMA

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

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Les structures de données. Rajae El Ouazzani

Algorithmes de recherche

Introduction au Data-Mining

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Marketing. en 12 étapes clés. Une introduction au Marketing Automation Comment délivrer le bon contenu au bon moment à son interlocuteur

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Bases de données Cours 1 : Généralités sur les bases de données

Catalogue Formation «Vanilla»

Exercices Corrigés Premières notions sur les espaces vectoriels

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Thibault Denizet. Introduction à SSIS

Parallélisme et Répartition

Limitations of the Playstation 3 for High Performance Cluster Computing

Rappel sur les bases de données

Initiation à l algorithmique

Conception des bases de données : Modèle Entité-Association

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

Systemes d'exploitation des ordinateurs

UE 8 Systèmes d information de gestion Le programme

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Détection des deux roues motorisés par télémétrie laser à balayage

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Programmation linéaire

CHAPITRE 1 ARCHITECTURE

Introduction au langage C

Métriques de performance pour les algorithmes et programmes parallèles

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Impartition réussie du soutien d entrepôts de données

Cours Informatique Master STEP

Recherche dans un tableau

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

GeFA. Logiciel de Gestion de Flotte Automobile

Cours 1 : La compilation

Par combien de zéros se termine N!?

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Programmes des classes préparatoires aux Grandes Ecoles

PROJET ALGORITHMIQUE ET PROGRAMMATION II

CHAPITRE 1. Introduction aux bases de données

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

TP 1. Prise en main du langage Python

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

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

Exercice 3 (5 points) A(x) = 1-e -0039' e- 0,039x A '() -'-,..--,-,--,------:-- X = (l_e-0,039x)2

Transcription:

Informatique appliquée à la Géomatique Cours destiné à former les Ingénieurs Informaticiens Géomaticiens de l ENSG et les Master 2 "IASIG" de l UPMC François BOUILLÉ Prof. UPMC / ENSG Chapitre 7

Chapitre 7 Le traitement des listes Cedrus atlantica

Objectifs du chapitre 7 : Présenter ce qu est une liste, comment la manipuler, ajouter, insérer ou extraire des éléments, la parcourir à l aide de foncteurs. Mots-clés : ajout / extraction / insertion d un élément, vidage, liste linéaire / circulaire / simple / multiple / croissante / décroissante / chronologique, cardinalité, typage, nombre d occurrences, parcours d une liste, foncteurs de liste, opérateurs de liste, sous-liste, pile, file, chaînage double, descripteur de liste, segmentation, pool de buffers, gestionnaire de listes.

PLAN 1 Opérations élémentaires sur une liste 2 - Déplacements dans la liste 3 Caractéristiques d une liste 4 Quelques foncteurs opérant sur les listes 5 La boucle ensembliste 6 Les opérateurs de liste 7 - Bilan comparatif des listes et des vecteurs 8 - Implantation des listes de très grande taille 9 - Principe d'implantation 10 - Descripteur de liste 11 - Segmentation 12 - Méthodologie 12 - Architecture F. Bouillé ADL Chap.1

1 Opérations élémentaires sur une liste Ajout d un élément à la liste : Extraction d un élément de la liste :

Insertion d un élément X dans la liste L :

Vidage d une liste :

2 - Déplacements dans la liste : (monofoncteurs)

Liste linéaire : (cas implicite) NONE NONE

Liste circulaire : NB : les concepts de premier et dernier existent toujours.

3 Caractéristiques d une liste Organisation de la liste L (linéaire ou circulaire) : -la transformer en liste circulaire : circular L -la retransformer en liste linéaire : linear L

Modification de la multiplicité (implicitement multiple) : -la transformer en liste «single» : single L -la retransformer en liste «tuple» : tuple L

Modification du classement (implicitement chronologique) : -la transformer en liste croissante : (ascendante) ascend L -la transformer en liste décroissante : (descendante) descend L -la retransformer en liste chronologique : (libre) free L

Sauf spécification préalable, une liste, à sa création, est implicitement libre ; il est donc possible ultérieurement de la réorganiser, par exemple, en ordre croissant. Exemple : -soit la liste L ci-dessous contenant les noms bien connus d un certain nombre de batailles, noms rangés en ordre chronologique, c est à dire l ordre d introduction dans la liste, et qui correspond aussi, ici, à la chronologie historique : Camerone Tuyen Quang Messifré Rachaya El Moungar Phu Tong Hoa Faisons alors ou encore : ascend L On obtient la liste L en ordre alphabétique : Camerone El Moungar Messifré Phu Tong Hoa Rachaya Tuyen Quang

Typage d une liste : Ce typage ne concerne pas l étape algorithmique. A l étape de la programmation, une liste pourra être déclarée ou spécifiée d un type donné, qui peut être : -un type de base : -numérique (entier, flottant, complexe, quaternion ) -booléen -texte (caractère, chaîne) -un type abstrait de donnée (cours ultérieur). Les instructions de typage seront vues lors de l étude de la programmation, et seront revues à l occasion du cours de compilation.

4 Quelques foncteurs opérant sur les listes -gestion de file et de pile, -cardinalité, -nombre d occurrences d un élément, -position d un élément dans une liste, -désignation d un élément par sa position, -manipulation d une sous-liste.

Gestion de file et de pile :

Cardinalité : Nombre d occurrences de X dans L: (bifoncteur)

Position d un élément dans une liste : -depuis le début : p vaut 7 -depuis une position quelconque :

Récupération d un élément dont on connaît la position : -on peut aussi utiliser une notation proche de celle des vecteurs :

Expression d une sous-liste :

5 La boucle ensembliste Exploration systématique d une liste :

Exemple :

6 Les opérateurs de liste Opérateurs ensemblistes sur les listes : Attention : les listes sont des ensembles ordonnés Par exemple, en général :

Appartenance d un élément à une liste : Non appartenance d un élément à une liste : Ces deux opérateur donnent un résultat booléen. Ils seront respectivement traduits en ADT sous la forme de : IN et NOTIN

7 - Bilan comparatif des listes et des vecteurs -l utilisation de listes apparaît plus simple et plus claire, -l on n a pas à manipuler les compteurs, -des boucles destinées à explorer le vecteur deviennent inutiles, car il suffit de faire un test exprimant le fait qu un élément appartient ou non à la liste, -de ce fait le degré d emboîtement diminue. mais

Cette facilité apparente ne doit pas faire illusion : -"derrière la scène", une boucle est réellement effectuée, et en raison de l organisation inhérente à l implantation des listes, elle prend plus de temps que le balayage d un simple vecteur, -un compteur, présent dans le descripteur de liste caché à l usager, est incrémenté comme celui d un vecteur, -la diminution du degré d emboîtement facilite la décodabilité de l algorithme par l usager, mais cette diminution n est qu apparente, car des boucles cachées sont effectuées.

Nous verrons lors du cours n 11.4 comment implanter les listes selon un mécanisme très simple, fonctionnant pour des listes de taille "raisonnable". Mais dans certaines applications, l'on a à traiter des listes de très grande taille, comportant des milliers d'éléments, voire des dizaines de milliers (ou beaucoup plus). C'est notamment le cas dans le traitement de problèmes sur des structures complexes, où l'on enchaîne divers foncteurs, dont nous verrons certains exemples dans le cours n 10.2, traitant notamment de la Géomatique. L'on aboutira alors à l'architecture du moteur de listes.

Pour compléter votre information : -chaque chapitre faisant l objet d une vidéo est accompagné d un diaporama. Regardez-le! -reportez-vous aux supports de cours. Les divers fascicules (plus de 1000 pages) sont beaucoup plus détaillés. -reprenez les projets des Travaux Pratiques faits à l ENSG.

Sur ce cours, pour plus d information : - regarder la vidéo, - se reporter au support de cours intitulé : "Le traitement des listes de très grande taille" Travaux pratiques à l ENSG : Ecriture systématique des algorithmes des diverses primitives du Gestionnaire de Listes GLST. Utilisation du GLST pour manipuler des listes de TAD persistants, notamment pour l écriture d un Moteur de Foncteurs (voir cours ultérieurs).

Abies numidica Bon courage!!!