Chapitre 5 : Introduction à Python
|
|
- Basile Labbé
- il y a 8 ans
- Total affichages :
Transcription
1 Chapitre 5 : Introduction à Python Alexandre Blondin Massé Laboratoire d informatique formelle Université du Québec à Chicoutimi 5 février 2013 Cours 8STT105 Département d informatique et mathématique A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
2 Table des matières 1 Présentation du langage 2 Éléments de base 3 Structures de données 4 Scripts et fichiers 5 Exercices A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
3 Guido Van Rossum Crée Python en 1989 pendant ses temps libres ; Employé par Google de 2005 à 2012 ; Google has made no secret of the fact they use Python a lot for a number of internal projects. Even knowing that, once I was an employee, I was amazed at how much Python code there actually is in the Google source code system. Maintenant chez Dropbox. Guido van Rossum (créateur de Python) A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
4 Python est facile... # -*- coding: utf-8 -*- import random nombre_essais = 0 nom = raw_input( Bonjour! Quel est votre nom?\n ) nombre = random.randint(1, 20) print u Eh bien, %s, je pense à un nombre entre 1 et 20. % nom while nombre_essais < 6: essai = int(raw_input( Essayez de deviner : )) nombre_essais += 1 if essai < nombre: print Trop petit! if essai > nombre: print Trop grand! if essai == nombre: break if essai == nombre: print u Bravo, %s! Vous avez deviné le nombre en %s essais! % (nom, nombre_essais) else: print u Malheureusement, le nombre auquel je pensais est %s % nombre A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
5 ...en particulier pour mathématiques Créer un tableau : >>> [i**2 for i in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] Calculer des sommes comme : 10 i=0 i2 >>> sum([i**2 for i in range(10)]) 285 Se créer une fonction anonyme et l appliquer à une liste >>> est_pair = lambda n: True if n % 2 == 0 else False >>> map(est_pair, [100, 7, 13, 22, 40]) [True, False, False, True, True] A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
6 Python est portable et gratuit Variantes d Unix ; MacOS ; BeOS ; NeXTStep ; MS-DOS et les différentes variantes de Windows ; Interfaces avec C et C++ : Cython ; Interfaces avec Java : Jython. A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
7 Python est orienté objet (1/2) class Employe: # Attribut de classe nombre_employes = 0 def init (self, nom, salaire): # Constructeur self.nom = nom # Attribut d instance self.salaire = salaire # Attribut d instance Employe.nombre_employes += 1 # Methodes def afficher_nombre_employes(self): print "Nombre total d employes : %d" % Employe. nombre_employes def afficher_employe(self): print "Nom :", self.nom, ", Salaire :", self.salaire A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
8 Python est orienté objet (2/2) Utilisation : e = Employe("Alice", 80000) f = Employe("Bob", 70000) e.afficher_employe() f.afficher_employe() e.afficher_nombre_employes() f.afficher_nombre_employes() Résultat : Nom : Alice, Salaire : Nom : Bob, Salaire : Nombre total d employes : 2 Nombre total d employes : 2 A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
9 Python est... un langage interprété ; un langage de script ; facile à paralléliser ; n utilise aucun pointeur ; très populaire ; complet : sa bibliothèque standard permet de manipuler des expressions régulières, de manipuler des fichiers, d utiliser différents protocoles Internet, etc. développé par une communauté extrêmement dynamique ; très bien documenté, avec de nombreux tutoriels. A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
10 Python est un langage compilé et interprété Langage interprété : Code source Interpréteur Résultat L interpréteur lit le code source Le résultat apparaît sur l écran Langage compilé : Code source Compilateur Code objet Exécuteur Résultat Le compilateur lit le code source......et produit un code objet (binaire) On exécute le code objet......et le résultat apparaît à l écran Langage hybride : Code source Le compilateur Python lit le code source... Compilateur ByteCode Interpréteur Résultat...et produit un pseudocode intermédiaire L interpréteur Python lit le pseudocode......et le résultat apparaît à l écran A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
11 Comment utiliser Python? (1) Il existe plusieurs façons d utiliser Python : 1 À partir d un environnement de développement : Eclipse Iron Python IDLE, la version développée par G. Van Rossum pour Windows Spyder Liste complète : integrated_development_environments_for_python 2 En lançant l interpréteur en ligne de commande (Mac OS, Linux, Windows) alexandreblondinmasse [ ] $ python Python (default, Oct , 06:12:28) [GCC (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
12 Comment utiliser Python? (2) 3 En lançant un script en ligne de commande : $ python easy.py Bonjour! Quel est votre nom? Alexandre Eh bien, Alexandre, je pense à un nombre entre 1 et 20. Essayez de deviner : 10 Trop grand! Essayez de deviner : 5 Trop petit! Essayez de deviner : 8 Trop grand! Essayez de deviner : 6 Trop petit! Essayez de deviner : 7 Bravo, Alexandre! Vous avez deviné le nombre en 5 essais! A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
13 L interpréteur Python Python (default, Oct , 06:12:28) [GCC (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> >>> >>> * 4 19 >>> (7 + 3) * 4 40 >>> 20 / 3 6 >>> 20.0 / >>> 8. / >>> 4 * 2.5 / A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
14 Variables >>> n = 7 >>> msg = Quoi de neuf? >>> msg Quoi de neuf? >>> msg = "Quoi de neuf?" >>> msg Quoi de neuf? >>> pi = >>> print msg # observer la difference avec l instruction print Quoi de neuf? >>> msg = Un message + plus long >>> msg Un message plus long >>> >>> _ + 7 # le caractere de soulignement recupere la derniere valeur 15 A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
15 Structures de contrôle si-sinon if a > 0: print "a est strictement positif" elif a < 0: print "a est strictement négatif" else: print "a n est ni positif ni strictement negatif" print "a est donc nul" L identation est primordiale, sinon, le programme indiquera une erreur de syntaxe Il ne faut pas oublier les deux points : à la fin de chaque ligne commençant par if, elif et else ; Les parenthèses ne sont pas nécessaires comme en C++ A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
16 Boucles tant-que i = 0 while (i < 10): print i i = i + 1 Résultat : # ne pas oublier les deux points # ni l indentation A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
17 Afficher des tables de valeurs a = 0 while a < 12: print a, a**2, a**3 a += 1 Résultat : A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
18 Boucles pour for i in range(10): print i, i**2, i**3 Résultat : range(10) pour itérer de 0 à 9 inclusivement ; range(2, 10) pour itérer de 2 à 9 inclusivement ; range(2, 10, 3) pour itérer de 2 à 9 inclusivement, par bonds de 3, ce qui donne 2, 5, 8 ; A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
19 Les chaînes de caractères >>> phrase1 = les oeufs durs. >>> phrase2 = "Oui", répondit-il, >>> phrase3 = "j aime bien" >>> print phrase2, phrase3, phrase1 "Oui", répondit-il, j aime bien les oeufs durs. Pour les longues chaînes de caractères : >>> s = r"""... Une phrase sur plusieurs lignes... avec des backslashes qui sont... affiches tels quels \n \t voila... """ >>> s "\nune phrase sur plusieurs lignes\navec des backslashes qui sont\ naffiches tels quels \\n \\t voila\n" A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
20 Opérations sur les chaînes de caractères >>> s = "Petit poisson" >>> t = deviendra grand >>> s + t Petit poisson deviendra grand >>> s[0] P >>> s[1] e >>> len(s) 13 >>> x = 24 >>> print On a %s poissons % x On a 24 poissons >>> a = 2; b = 3; print "%s + %s = %s" % (a, b, a + b) = 5 L accès à un caractère précis se fait par l intermédiaire de l opérateur [] L opérateur % est très pratique pour afficher des chaînes de caractères avec des valeurs A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
21 Les listes >>> jours = [ lundi, mardi, mercredi, jeudi, vendredi ] >>> jours[0] lundi >>> print jours[0] lundi >>> jours.append( samedi ) >>> print jours [ lundi, mardi, mercredi, jeudi, vendredi, samedi ] >>> len(jours) 6 >>> del(jours[4]) >>> jours [ lundi, mardi, mercredi, jeudi, samedi ] >>> donnees = [23.4, 18.7, 19.1, 14.5, 20.3] >>> sorted(donnees) [14.5, 18.7, 19.1, 20.3, 23.4] >>> donnees [23.4, 18.7, 19.1, 14.5, 20.3] >>> donnees.sort() >>> donnees [14.5, 18.7, 19.1, 20.3, 23.4] A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
22 Construction d une liste >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(3,7,2) [3, 5] >>> [i**2 for i in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [i + j for i in range(4) for j in range(4)] [0, 1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6] >>> [i**2 for i in range(10) if i % 2 == 0] [0, 4, 16, 36, 64] A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
23 Les tuples >>> p = (3,4) >>> p (3, 4) >>> q = (-1,2) >>> q (-1, 2) >>> p + q # Attention! (3, 4, -1, 2) >>> (x,y) = (4,5) >>> x 4 >>> y 5 >>> p[0] 3 >>> p[1] 4 >>> len(p) 2 >>> p[0] = 3 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: tuple object does not support item assignment A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
24 Les dictionnaires >>> d = { banane : 3, pomme : 2, fraise : 1} >>> d[ banane ] 3 >>> print Nombre de fruits : %s % (d[ banane ] + d[ pomme ] + d[ fraise ]) Nombre de fruits : 6 >>> d[ kiwi ] = 2 >>> d { kiwi : 2, banane : 3, fraise : 1, pomme : 2} >>> d.keys() [ kiwi, banane, fraise, pomme ] >>> d.values() [2, 3, 1, 2] >>> list(d) [ kiwi, banane, fraise, pomme ] A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
25 Les fonctions anonymes >>> f = lambda (a,b,c): %sxˆ2 + %sx + %s = 0 %(a,b,c) >>> f((0,0,0)) 0xˆ2 + 0x + 0 = 0 >>> f((2,3,5)) 2xˆ2 + 3x + 5 = 0 >>> f = lambda x: x + 2 >>> f(5) 7 >>> f(-8) -6 >>> [f(i) for i in range(10)] [2, 3, 4, 5, 6, 7, 8, 9, 10, 11] >>> dict( (i,f(i)) for i in range(10)) {0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 8, 7: 9, 8: 10, 9: 11} A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
26 Scripts Python def moyenne(donnees): """ Retourne la moyenne d un ensemble de donnees """ return float(sum(donnees)) / float(len(donnees)) def variance(donnees): """ Retourne la variance (non corrigee) d un ensemble de donnees La formule est E[Xˆ2] - E[X]ˆ2 """ carres = [d**2 for d in donnees] return moyenne(carres) - moyenne(donnees) ** 2 donnees = [15.52, 14.34, 11.8] print """ Donnees : %s Moyenne : %s Variance : %s """ % (donnees, moyenne(donnees), variance(donnees)) A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
27 Exécution d un script [master] alexandreblondinmasse [ /Documents/Enseignement/8STT105/ hiv2013/slides/5-introduction-python] $ python stats.py Donnees : [15.52, 14.34, 11.8] Moyenne : Variance : A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
28 Lire dans un fichier (1/2) En Python, il est très facile de lire et d écrire dans des fichiers ; input_file = open( lampes.dat, r ) i = 0 for ligne in input_file: ligne = ligne.strip() # On enleve les espaces # et les retour a la ligne # en debut et en fin de # chaines de caracteres print Ligne %s: %s % (i, ligne) print Valeurs : %s % (ligne.split()) i += 1 input_file.close() A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
29 Lire dans un fichier (2/2) Résultat : Ligne 0: Valeurs : [ 1067, 855, 1157, 1022, 923, 521, 930, 999, 901, 996 ] Ligne 1: Valeurs : [ 1187, 824, 844, 1037, 1026, 1039, 1023, 1134, 998, 610 ] Ligne 2: Valeurs : [ 919, 1196, 1092, 1162, 1195, 1195, 978, 832, 1333, 811 ] Ligne 3: Valeurs : [ 933, 928, 807, 954, 932, 1035, 1324, 818, 780, 900 ] Ligne 4: Valeurs : [ 1067, 1118, 653, 980, 814, 1103, 1151, 863, 1147, 883 ] Ligne 5: Valeurs : [ 1083, 1040, 984, 856, 932, 938, 996, 1133, 916, 1001 ] Ligne 6: Valeurs : [ 785, 1170, 1340, 1009, 1217, 1153, 1063, 944, 1250, 1106 ] Ligne 7: Valeurs : [ 1037, 935, 1000, 990, 867, 1289, 924, 1078, 765, 895 ]... A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
30 Ajouter des arguments à un script #!/usr/bin/python import sys def moyenne(donnees): """ Retourne la moyenne d un ensemble de donnees """ return float(sum(donnees)) / float(len(donnees)) def variance(donnees): """ Retourne la variance (non corrigee) d un ensemble de donnees La formule est E[Xˆ2] - E[X]ˆ2 """ carres = [d**2 for d in donnees] return moyenne(carres) - moyenne(donnees) ** 2 print sys.argv[0] print sys.argv[1] fichier = open(sys.argv[1], r ) donnees = [] for ligne in fichier: for valeur in ligne.split(): donnees.append(int(valeur)) fichier.close() print """ Donnees A. Blondin : %s Massé (UQAC) Chapitre 5 5 février / 40
31 Appel d un script avec arguments $ python stats-arg.py lampes.dat Donnees : [1067, 855, 1157, 1022, 923, 521, 930, 999, 901, 996, 1187, 824, 844, 1037, 1026, 1039, 1023, 1134, 998, 610, 919, 1196, 1092, 1162, 1195, 1195, 978, 832, 1333, 811, 933, 928, 807, 954, 932, 1035, 1324, 818, 780, 900, 1067, 1118, 653, 980, 814, 1103, 1151, 863, 1147, 883, 1083, 1040, 984, 856, 932, 938, 996, 1133, 916, 1001, 785, 1170, 1340, 1009, 1217, 1153, 1063, 944, 1250, 1106, 1037, 935, 1000, 990, 867, 1289, 924, 1078, 765, 895, 1126, 936, 918, 929, 950, 905, 1122, 938, 970, 1157, 1151, 1009, 1085, 896, 958, 946, 858, 1071, 1002, 909, 1077, 1049, 940, 1122, 1203, 1078, 890, 704, 621, 854, 958, 760, 1101, 878, 934, 910, 788, 1143, 935, 1035, 1112, 931, 990, 1258, 1192, 699, 1083, 880, 801, 1122, 1292, 1180, 1106, 1184, 775, 1105, 1081, 709, 860, 1110, 1156, 972, 1237, 765, 1311, 1069, 1021, 1115, 1303, 1178, 949, 1058, 1069, 970, 922, 1029, 1116, 954, 1171, 1149, 920, 948, 1035, 1045, 956, 1102, 958, 902, 1037, 702, 830, 1063, 1062, 1157, 833, 1320, 1011, 1102, 1138, 951, 992, 966, 730, 980, 1170, 1067, 932, 904, 1150, 1091, 658, 912, 880, 1173, 824, 529, 705, 1425, 972, 1002] Moyenne : Variance : A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
32 Exercices (1) (1) Utilisez Python pour compter le nombre d entiers entre 1000 et 2000 qui ne sont divisibles ni par 3, ni par 5, ni par 7. (2) Un triplet pythagoricien est un triplet de nombres naturels non nuls (x, y, z) qui vérifient l équation z 2 = x 2 + y 2. Il existe exactement un triplet pythagoricien (x, y, z) pour lequel x + y + z = Trouvez-le à l aide de Python. (3) Écrivez une fonction Python qui prend en entrée une liste de valeurs entières et qui retourne un dictionnaire indiquant, pour chaque valeur, le nombre de fois qu elle apparaît. Essayez de produire une solution qui s exécute en une seule ligne. A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
33 Exercices (2) (4) (5) Écrivez une fonction Python qui prend en entrée une liste de valeurs numériques et qui retourne (a) la moyenne, (b) le mode, (c) la médiane, (d) l étendue, (e) la variance et (f) l écart-type de cette liste de valeurs. Écrivez ensuite une fonction Python qui, étant donné une liste de valeurs numériques, affiche ces six statistiques sous forme de tableau à l écran. Écrivez une fonction Python qui prend en entrée un dictionnaire de la forme (k, v) où k est une valeur numérique et v est la fréquence de cette valeur et qui calcule (a) la moyenne, (b) le mode, (c) la médiane, (d) l étendue, (e) la variance et (f) l écart-type de cette liste de valeurs. Par exemple, l appel moyenne({2: 3, 3: 5}) devrait retourner la valeur A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
34 Exercices (3) (6) (plus long) Écrivez un programme generer-histogramme.py qui vous permet de manipuler des données et de les afficher sous forme d histogramme à l aide de Gnuplot. Plus précisément, vous devrez prendre en entrée un fichier contenant des valeurs, par exemple : Ensuite, votre programme doit répartir les données en k classes, où k sera spécifié comme argument du programme. Pour former vos classes, prenez la valeur minimale m et la valeur maximale M des données et séparez l intervalle [m, M] en k classes de même longueur. Lorsque les données sont réparties, créez un fichier histogramme.dat qui indiquera le nombre de valeurs pour chacune des classes. Finalement, appelez Gnuplot pour qu il génère un histogramme de ces données. En Python, pour appeler un A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
35 Exercices (4) programme externe, il faut utiliser le module subprocess. Ensuite, il suffit d appeler le processus comme suit : import subprocess subprocess.call([ gnuplot, script.gp ]) où le fichier script.gp contient un script Gnuplot qui permet de générer un histogramme, que vous devez vous-même définir. A. Blondin Massé (UQAC) Chapitre 5 5 février / 40
Initiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailLes bases du langage Python
Laboratoire de mathématiques d'orsay 6 décembre 2010 Plan 1 Présentation de Python 2 Les types et les opérations de base 3 Les structures de contrôle 4 Les fonctions 5 Les chiers 6 Les classes 7 Les exceptions
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailINTRODUCTION 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étailL informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailDM 1 : Montre Autoquartz ETA
Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailChapitre 2 Devine mon nombre!
Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction
Plus en détailLes classes en Python
CHAPITRE 1 Les classes en Python Le mécanisme de classe en Python permet d introduire les classes avec un minimum de syntaxe et sémantique nouvelles. Les caractéristiques les plus importantes des classes
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailIntroduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailCours Informatique Master STEP
Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
Plus en détail2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Plus en détailIntroduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011
Dept. de mathématiques, Université de Fribourg (CH) SP 2011 Qu est ce que R? Un logiciel de statistiques libre et gratuit ; Un logiciel multi-plateforme (UNIX, Windows MacOS X) R permet de faire des calculs
Plus en détailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailExonet : sauvegarde automatisée d une base de données
Exonet : sauvegarde automatisée d une base de données Description Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Outils Mots-clés Durée 4h. Auteur(es)
Plus en détail«Clustering» et «Load balancing» avec Zope et ZEO
«Clustering» et «Load balancing» avec Zope et ZEO IN53 Printemps 2003 1 Python : généralités 1989 : Guido Van Rossum, le «Python Benevolent Dictator for Life» Orienté objet, interprété, écrit en C Mêle
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailVision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007
Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................
Plus en détailGuide d installation de MySQL
INF 1250 Introduction aux bases de données Guide d installation de MySQL 1 Introduction Ce guide vous indique la façon d installer et d utiliser le logiciel MySQL de Oracle (disponible en licence GPL).
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailCalcul Scientifique avec 3
ENSAM Bordeaux juin 2015 Calcul Scientifique avec 3 Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un plaisir...", G. van Rossum
Plus en détailPlan du cours 2014-2015. Cours théoriques. 29 septembre 2014
numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailPlate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :
Plate formes mobiles IFC 2 Markus Jaton Utilisation Deux utilisations assez distinctes : Téléphones évolués (Nokia, Motorola) Smartphones (Apple,, Windows) La téléphonie est en stagnation, alors que les
Plus en détailSéance 0 : Linux + Octave : le compromis idéal
Séance 0 : Linux + Octave : le compromis idéal Introduction Linux est un système d'exploitation multi-tâches et multi-utilisateurs, basé sur la gratuité et développé par une communauté de passionnés. C'est
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailRemise à niveau d un programme JAVA du domaine public
Jean-Baptiste VIGUIER 12 septembre 2002 DCEM 2 jb.viguier@free.fr Remise à niveau d un programme JAVA du domaine public Dossier réalisé pour le laboratoire d oncogénétique Docteur P.GORRY MCU-PH institut
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailMachines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailConfigurer la supervision pour une base MS SQL Server Viadéis Services
Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès
Plus en détailINF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Plus en détail1. Structure d'un programme FORTRAN 95
FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailFormulaire d abonnement au service e-bdl
FORMULAIRE [1] : ENREGISTREMENT DU CLIENT ABONNE N d abonné :.... Raison sociale si Entreprise Sinon, Nom & Prénom : N de téléphone fixe : N de téléphone portable : Adresse postale : Client : Entreprise
Plus en détailConventions 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étail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailPrise en main d une Cyberclasse
Prise en main d une Cyberclasse Formation de 1 à 2 H Prise en main Personne ressource Notes de formation 25 pages Guide de Gestion Personne ressource Guide de référence complet 47 pages Guide Utilisation
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailUniversité du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.
Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailLa programmation orientée objet et le langage C++
Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par
Plus en détailtd3a correction session7az
td3a correction session7az August 19, 2015 1 Séance 7 : PIG et JSON et streaming avec les données vélib (correction avec Azure) Plan Récupération des données Connexion au cluster et import des données
Plus en détailThe Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.
The Mozilla Art Of War Laboratoire d Informatique Fondamentale d Orléans 20 septembre 2008 Firefox, c est sûr Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité.
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailLes fichiers de configuration d'openerp
Les fichiers de configuration d'openerp Comme nous l'avons vu dans le cours précédent OpenErp (coté serveur) est basé sur trois briques logicielles : - le serveur (client) web OpenErp ; - le serveur d'application
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détail4e Dimension Clés XML Backup. Windows /Mac OS 4e Dimension 2006 4D SA. Tous droits réservés.
4e Dimension Clés XML Backup Windows /Mac OS 4e Dimension 2006 4D SA. Tous droits réservés. 4e Dimension Clés XML Backup Copyright 2006 4D SA Tous droits réservés. Les informations contenues dans ce manuel
Plus en détailFiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel
Fiche d utilisation du logiciel 1 - Installation J. Thioulouse & D. Chessel Résumé Cette fiche est une introduction à l'utilisation du logiciel R pour les trois environnements Unix, Windows et MacOS. Plan
Plus en détailIntroduction à NetCDF
Introduction à NetCDF École normale supérieure L3 géosciences 2014/2015 Lionel GUEZ guez@lmd.ens.fr Laboratoire de météorologie dynamique Explications préliminaires Deux distinctions générales sur les
Plus en détail1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailEnvironnements informatiques
Environnements informatiques Premiers pas sous Linux (seconde partie) 26 septembre 2008 blansche@dpt-info.u-strasbg.fr 1 /12 Administration sous Linux 2 /12 Démarrage Démarrage de Linux Niveaux de démarrage
Plus en détailwww.ville.lassomption.qc.ca
Bibliothèque Christian-Roy Maison de la culture i Livre-service Aide-mémoire Service de prêt numérique www.ville.lassomption.qc.ca À propos du prêt numérique La plateforme PRETNUMERIQUE.CA permet aux abonnés
Plus en détailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détailalg - Classes, instances, objets [oo] Exercices résolus
alg - Classes, instances, objets [oo] Exercices résolus Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 27 avril 2015 Table des matières 1 Compte bancaire OO 2 1.1
Plus en détailPerl Orienté Objet BioPerl There is more than one way to do it
Perl Orienté Objet BioPerl There is more than one way to do it Bérénice Batut, berenice.batut@udamail.fr DUT Génie Biologique Option Bioinformatique Année 2014-2015 Perl Orienté Objet - BioPerl Rappels
Plus en détailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détail