stephane@gonnord.org www.mp933.fr



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

STAGE IREM 0- Premiers pas en Python

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

Cours 7 : Utilisation de modules sous python

Les équations différentielles

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Architecture des Systèmes d Information Architecture des Systèmes d Information

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Introduction à MATLAB R

Corrigé des exercices sur les références

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

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

TP : Gestion d une image au format PGM

1 Recherche en table par balayage

Recherche dans un tableau

Programmer en JAVA. par Tama

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Tp 1 correction. Structures de données (IF2)

Présentation du langage et premières fonctions

Bernard HAMM, Évelyne LAVOISIER

Plan du cours Cours théoriques. 29 septembre 2014

Licence Sciences et Technologies Examen janvier 2010

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

MIS 102 Initiation à l Informatique

Programmation Web. Madalina Croitoru IUT Montpellier

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

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

4 Exemples de problèmes MapReduce incrémentaux

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Programme Compte bancaire (code)

Organisation Gestion du temps. Participation Notes et résumés Etudes et examens

Initiation à la Programmation en Logique avec SISCtus Prolog

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Arbres binaires de recherche

Programmation linéaire

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Algorithmique I. Algorithmique I p.1/??

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

Programmation système I Les entrées/sorties

Ordonnancement temps réel


modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

TD/TP PAC - Programmation n 3

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Plan du cours. Historique du langage Nouveautés de Java 7

Editer un script de configuration automatique du proxy

Corrigé des TD 1 à 5

= constante et cette constante est a.

Conventions d écriture et outils de mise au point

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Formation tableur niveau 1 (Excel 2013)

Projet de programmation (IK3) : TP n 1 Correction

Cours de Programmation Impérative: Zones de mémoires et pointeurs

TP 1. Prise en main du langage Python

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

Perl Orienté Objet BioPerl There is more than one way to do it

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

PHP 4 PARTIE : BASE DE DONNEES

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

Utilisation d objets : String et ArrayList

CDROM. L amélioration continue de la gestion des risques. René FELL Ingénieur HES en informatique Administrateur chez CDROM

Notes de cours : bases de données distribuées et repliquées

Correction du bac blanc CFE Mercatique

Création d un document PublishView

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

OM 1 Outils mathématiques : fonction de plusieurs variables

TP1 : Initiation à Java et Eclipse

TD/TP PAC - Programmation n 3

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Temps Réel. Jérôme Pouiller Septembre 2011

Sécurité des applications web. Daniel Boteanu

OCL - Object Constraint Language

Cours 1 : La compilation

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

Initiation à la programmation en Python

Environnements de développement (intégrés)

Maple: premiers calculs et premières applications

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

1. Structure d'un programme FORTRAN 95

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

Algorithmique, Structures de données et langage C

Machines virtuelles Cours 1 : Introduction

td3a correction session7az

Chapitre 7 : Intégration sur un intervalle quelconque

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

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

Architecture des ordinateurs

Commun à tous les candidats

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Chapitre 5 : Les procédures stockées PL/SQL

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

Transcription:

Tableaux/ en Tableaux/ en Une première couche Tableaux et Tableaux vs stephane@gonnord.org www.mp933.fr Lycée du parc - Lyon Vendredi 8 et 15 novembre 2013 Lycée du parc

1. Tableaux vs. Tableaux/vecteurs ; ; la chêvre et le choux. 2. ; slicing ; en compréhension. 3. Seconde couche de théorie append et extend ; copie de liste ; passage en argument. 4. Quelques manipulations effectives de parcours basique ; recherche d un maximum ; recherche d un élément ; etc. Tableaux/ en Tableaux et Tableaux vs

Tableaux (vecteurs) vs. Deux structures concurrentes Les x : Un bloc (intervalle) de mémoire. Accès direct en temps constant. Ne peut être «prolongé» à moindre coût. Tableaux/ en Tableaux et Tableaux vs Les (chaînées) : Accès au premier élément, ajout en tête : facile. Ou le contraire! Accès au k-ème : difficile, coûteux.

Une implémentation très astucieuse Les x redimensionnables : pour ajouter/étendre à moindre coût, mais avec accès rapide au k-ième ; recopié au delà de certains seuils. Tableaux/ en Tableaux et Tableaux vs Agrandissement d un jusqu à 1025 éléments : 1 + 2 + 3 + + 1025 1 + 2 + 4 + 8 + + 2048 Complexité : pire des cas, moyenne, amorti...

t = [...,...,...] ; t = [0] * 10 len(t) t[0], t[1],..., t[n-1], t[-1],..., t[-n] >>> x = 5 >>> id(x) 161288320 >>> x = 12 >>> id(x) 161288236 >>> t = [12, 15, 42] >>> id(t) 168387212 >>> t[1] = 841 >>> t [12, 841, 42] >>> id(t) 168387212 Tableaux/ en Tableaux et Tableaux vs

t[a: b] : une tranche de t >>> t = [42, 12, 15, 19, 16, 3, 40] >>> t[2 : 4] [15, 19] Mais recopiée ailleurs! >>> t1 = t[2 : 5] >>> t1 [15, 19, 16] >>> t1[1] = 6 >>> t, t1 ([42, 12, 15, 19, 16, 3, 40], [15, 6, 16]) >>> id(t), id(t1) 152527500, 152529132 Des variantes : t[a: ] ; t[ : b] ; t[ : ] ; t[2: -3] ; t[10: 2] ; t[a : b : s] Tableaux/ en Tableaux et Tableaux vs

Comprehension Dans R : {x R; x 1} = {cost t [0,10]} Tableaux/ en Tableaux et Tableaux vs [x for x in s if condition(x)] >>> [i for i in range(10) if i%3 == 0] [0, 3, 6, 9] [phi(x) for x in s] >>> [i**2 for i in range(4)] [0, 1, 4, 9] [phi(x) for x in s if condition(x)] >>> [i**2 for i in range(10) if i%3 == 0] [0, 9, 36, 81]

Pour appliquer une fonction à chaque élément d une liste >>> def f(x): return 2*x >>> map(f, [3, 10, 40]) [6, 20, 80] >>> map(est_premier, [3, 24, 91, 101]) [True, False, False, True] >>> map(len, [ [1,15], [10], [4,5,6,7] ]) [2, 1, 4] Attention : évaluation retardée en Python 3 >>> map(f, [1, 4, 10]) <map object at 0xa4ffb2c> >>> list(map(f, [1, 4, 10])) [2, 8, 20] Tableaux/ en Tableaux et Tableaux vs

>>> t = [1, 3] >>> t + [17] [1, 3, 17] >>> t [1, 3] >>> id(t) 152528972 >>> t = t + [17] >>> t, id(t) ([1, 3, 17], 152528428) >>> t.append(1515) >>> t, id(t) ([1, 3, 17, 1515], 152528428) >>> t.extend([ pif, 19, paf ]) >>> id(t), t (152528428, [1, 3, 17, 1515, pif, 19, paf ]) Tableaux/ en Tableaux et Tableaux vs

Une liste est une adresse : >>> t1 = [4, 2, 15] >>> t2 = t1[ : ] >>> t3 = t1 >>> t1, t2, t3 [4, 2, 15], [4, 2, 15], [4, 2, 15] >>> map(id, [t1, t2, t3]) [145335084, 145386956, 145335084] >>> t2[1] = 1515 >>> t3[1] = 841 >>> t1, t2, t3 ([4, 841, 15], [4, 1515, 15], [4, 841, 15]) Tableaux/ en Tableaux et Tableaux vs En première approximation : ma_copie = t[ : ] copy.copy vs copy.deepcopy

(Experts : passage par valeur car =pointeur!) Consultation : oui! def maximum(t):... Écriture : possible, mais attention... C est super! def echange(t, i, j): t[i], t[j] = t[j], t[i] C est une catastrophe! Si la fonction est mal écrite (ou volontairement néfaste), elle peut détruire la donnée. Tableaux/ en Tableaux et Tableaux vs

de liste Première version : for i in range(len(t)):... (travail sur t[i]) Deuxième version (souvent meilleure) : for x in t:... (travail direct sur x) Exemples : trouver le maximum d un... ou bien l indice correspondant. Tableaux/ en Tableaux et Tableaux vs

Version 1 : def somme1(t): res = 0 for i in range(len(t)): res = res + t[i] return res Version 2 : def somme2(t): res = 0 for x in t: res = res + x return res Version 3 (votre préférée...) : def somme3(t): return sum(t) Tableaux/ en Tableaux et Tableaux vs

Version 1 : def maxi(t): assert( len(t)>0 ) maxi_provisoire = t[0] for x in t: if x>maxi_provisoire: maxi_provisoire = x return maxi_provisoire Version 2 (...) : def maxi_feignasse(t): return max(t) Tableaux/ en Tableaux et Tableaux vs Exercice : retourner la position du maximum.

End game Merci de votre attention! Tableaux/ en Tableaux et Tableaux vs