GLO-190 Introduction à la programmation avec Python

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

Download "GLO-190 Introduction à la programmation avec Python"

Transcription

1 GLO-190 Introduction à la programmation avec Python Énoncés et syntaxe de base Marc Parizeau (automne 2011) Marc Parizeau, Département de génie électrique et de génie informatique

2 Plan Énoncés séquentiels expressions / affectations appels de fonction Énoncés conditionnels if / elif / else Énoncés répétitifs (boucles) for / else while / else break / continue Complexité algorithmique 2

3 Énoncés séquentiels Un énoncé se termine normalement par la fin d'une ligne on peut cependant séparer deux énoncés par un «;», mais il ne faut pas en abuser! >>> x = 1; y =2 on peut poursuivre un énoncé sur la ligne suivante lorsqu'on est à l'intérieur d'une paire de parenthèses («()»), de crochets («[]») ou d'accolades («{}») >>> x = [1, 2, 3,... 4, 5, 6,... 7, 8, 9] >>> print("une première chose,",... "une deuxième chose,",... "une troisième chose, etc.") Rappel: on veut limiter la longueur de nos lignes à 79 caractères ou moins! 3

4 Affectations Une affectation engendre toujours la création d'une référence sur un objet Python créé un nom de variable lors de sa première affectation la variable réfère toujours au dernier objet affecté Il faut toujours affecter une valeur à une variable avant d'utiliser celle-ci dans une expression quelconque >>> print(x) NameError: name 'x' is not defined 4

5 Les affectations peuvent prendre plusieurs formes plus ou moins complexes >>> spam = 'spam' >>> spam = ham = 'spam' >>> spam, ham = 'yum', 'YUM' >>> spam, ham ('yum', 'YUM') >>> [spam, ham] = 'yum', 'YUM' >>> spam, ham ('yum', 'YUM') >>> a, b, c, d = 'spam' >>> a, b, c, d ('s', 'p', 'a', 'm') >>> a, *b = 'spam' # le * désigne le reste >>> a, b ('s', ['p', 'a', 'm']) 5

6 Le principe est simple: on peut affecter un «itérable» dans un autre «itérable» chaque élément sera affecté à son correspondant dans la séquence >>> spam = 'spam' >>> a, b = spam[0], spam[1:] >>> a, b ('s', ['p', 'a', 'm']) >>> ((a, b), c) = ('sp', 'am') >>> a, b, c ('s', 'p', 'am') Cas de l'opérateur * >>> a, b = 'spam' ValueError: too many values to unpack >>> a, *b, c = 'spam' >>> a, b, c ('s', ['p', 'a'], 'm') >>> *a, b, c = 'spam' >>> a, b, c (['s', 'p'], 'a', 'm') >>> a, b, c, *d = 'spam' >>> a, b, c, d ('s', 'p', 'a', ['m']) 6

7 Affectations multiples: attention! >>> a = b = 0 >>> b = b + 1 >>> a, b (0, 1) >>> a = b = [] # a et b sont 2 références # sur le même objet >>> b.append(1) >>> a, b ([1], [1]) Opérateurs augmentés Au lieu d'écrire «b = b+1», on peut aussi écrire «b += 1» x += y x &= y x -= y x = y x *= y x ^= y x /= y x %= y x <<= y x >>= y x **= y x //= y 7

8 Noms de variable Le premier caractère est une lettre ou «_», les caractères suivants sont des lettres, des chiffres ou «_» «spam», «_spam» et «spam_1» sont légaux, mais pas «1_spam», «spam$», ni Les majuscules et les minuscules sont différentes «spam», «Spam», et «SPAM» sont trois variables différentes Les mots réservés suivants ne doivent jamais être utilisés: False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise 8

9 Conventions Les noms qui débutent et se terminent par, par exemple «name» ont une signification spéciale pour l'interpréteur Python; ne pas les utiliser De même, les noms qui débutent par un seul «_» ne sont pas traités de la même façon que les autres lors de l'importation de modules nous y reviendrons plus loin... 9

10 Expressions Les expressions sont formées de: constantes variables (expression) expression opérateur expression fonction(expression, expression,...) >>> 1 # constante 1 >>> a # variable a >>> a + 1 # exp op exp >>> (a + 1) # ( exp ) >>> fct(a, b) # appel de la fonction fct 10

11 Fonction print() Ce qui est entre crochet est optionnel: print([exp1, exp2,...][,sep=' '][,end='\n']) La fonction affiche la valeur des expressions exp1, exp2, etc., énumérées en argument L'argument sep spécifie ce qui doit être affiché entre les valeurs par défaut, c'est un espace L'argument end spécifie ce qui doit être affiché après le dernier objet par défaut, c'est un retour à la ligne 11

12 print([exp1, exp2,...][, sep=' '][,end='\n']) >>> a = 1; b = 'spam'; c = [3, '4', 'spam'] >>> print() >>> print(a, b, c) 1 spam [3, '4', 'spam'] >>> print(a, b, c, sep='---') 1---spam---[3, '4', 'spam'] >>> print(a, b, c, end='---\n') 1 spam [3, '4', 'spam']--- 12

13 Quiz Nommez trois façons différentes pour affecter une valeur unique à trois variables différentes? Quel est le résultat de l'affectation suivante? >>> a, b, c, d, *e = 'spam' Quel est le problème potentiel lorsqu'on affecte le même objet à trois variables différentes? Soit la variable x associée à une liste. Quel est le problème avec l'énoncé «x = x.sort()»? 13

14 Énoncés conditionnels Format général: if <test #1>: <bloc d'énoncés #1> elif <test #2>: <bloc d'énoncés #2>... elif <test #n>: <bloc d'énoncés #n-1> else: <bloc d'énoncés #n> # optionnel # optionnel # optionnel Si le test #1 est vrai, alors le bloc d'énoncés #1 est exécuté, sinon si le test #2 est vrai, alors le bloc d'énoncés #2 est exécuté, sinon si...; autrement, si aucun des tests n'est vrai, alors le block d'énoncés #n est exécuté le nombre de clauses sinon si («elif») n'est pas limité; la clause autrement («else») est unique; ces deux clauses sont optionnelles 14

15 Un test est une expression booléenne (dont la valeur est «True» ou «False») >>> if True:... print('vrai') >>> else:... print('faux') Un bloc d'énoncés doit être indenté vers la droite d'un nombre fixe de colonnes le nombre d'espaces doit être rigoureusement le même pour tous les énoncés d'un même bloc par convention nous utiliserons 4 espaces 15

16 Par exemple: >>> print("entrez le jour de la semaine") >>> jour = input() >>> if jour == 'lundi':... act = "dépannage de 16:30 à 17:30" >>> elif jour == 'mardi':... act = "cours de 15:30 à 17:30" >>> elif jour == 'mercredi':... act = "aucune activité" >>> elif jour == 'jeudi':... act = "cours de 10:30 à 12h30\n"... act += "dépannage de 12:30 à 13:30" >>> elif jour == 'vendredi':... act = "dépannage de 13:30 à 16:30" >>> else:... act = "jour inconnu ou invalide!" >>> print("activités du jour:") >>> print(act) 16

17 Exemples d'exécution >>> ============================= RESTART ============================= >>> Entrez le jour de la semaine lundi Activités du jour: dépannage de 16:30 à 17:30 >>> ============================= RESTART ============================= >>> Entrez le jour de la semaine mardi Activités du jour: cours de 15:30 à 17:30 >>> ============================= RESTART ============================= >>> Entrez le jour de la semaine jeudi Activités du jour: cours de 10:30 à 12h30 dépannage de 12:30 à 13:30 >>> ============================= RESTART ============================= >>> Entrez le jour de la semaine samedi Activités du jour: jour inconnu ou invalide! >>> 17

18 Usage d'une liste d'activités >>> print("entrez le jour de la semaine") >>> jour = input() >>> act = [] # liste vide >>> if jour == 'lundi':... act.append("dépannage de 16:30 à 17:30") >>> elif jour == 'mardi':... act.append("cours de 15:30 à 17:30") >>> elif jour == 'mercredi':... act.append("aucune activité") >>> elif jour == 'jeudi':... act.append("cours de 10:30 à 12h30")... act.append("dépannage de 12:30 à 13:30") >>> elif jour == 'vendredi':... act.append("dépannage de 13:30 à 16:30") >>> else:... act.append("jour inconnu ou invalide!") >>> print("activités du jour:") >>> print(act) 18

19 >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine lundi Activités du jour: ['dépannage de 16:30 à 17:30'] >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine mardi Activités du jour: ['cours de 15:30 à 17:30'] >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine mercredi Activités du jour: ['aucune activité'] >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine jeudi Activités du jour: ['cours de 10:30 à 12h30', 'dépannage de 12:30 à 13:30'] >>> 19

20 Usage d'un dictionnaire >>> print("entrez le jour de la semaine") >>> jour = input() >>> act = {'lundi': "dépannage de 16:30 à 17:30",... 'mardi': "dépannage de 16:30 à 17:30",... 'mercredi': "aucune activité",... 'jeudi': ("cours de 10:30 à 12h30",... "dépannage de 12:30 à 13:30"),... 'vendredi': "dépannage de 13:30 à 16:30"} >>> print("activités du jour:") >>> if act.get(jour):... print(act[jour]) >>> else:... print("jour inconnu ou invalide!") 20

21 >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine lundi Activités du jour: dépannage de 16:30 à 17:30 >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine mardi Activités du jour: dépannage de 16:30 à 17:30 >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine jeudi Activités du jour: ('cours de 10:30 à 12h30', 'dépannage de 12:30 à 13:30') >>> ============================ RESTART ============================ >>> Entrez le jour de la semaine dimanche Activités du jour: jour inconnu ou invalide! >>> 21

22 Synthèse Les énoncés s'exécutent normalement du premier au dernier jusqu'à ce que vous précisiez autrement les énoncés conditionnels et répétitifs permettent de modifier le flux d'exécution Les blocs d'énoncés sont détectés automatiquement, basé sur l'indentation Les énoncés composés ont une forme normalisée <en-tête> «:» <bloc d'énoncés indentés> Les lignes blanches, les espaces et les commentaires sont habituellement ignorés par contre, le nombre d'espace en début de ligne détermine l'indentation l'indentation définit les frontières des blocs d'énoncés 22

23 x = 1 if x: y = 2 if y: print("bloc #2") print("bloc #1") print("bloc #0") Toujours utiliser des espaces pour indenter; jamais des caractères de tabulation il faut configurer adéquatement notre éditeur pour qu'il fasse le travail à notre place on appui sur la touche <tab> et l'éditeur insère le bon nombre d'espaces dans le fichier 23

24 Expression booléenne Tout nombre non zéro possède une valeur True zéro est équivalent à False Tout contenant (liste, tuple, dictionnaire, fichier, etc.) non vide possède la valeur True un contenant vide est équivalent à False Les opérateurs de comparaison (<, >, <=, >=, ==,!=) retournent soit True, soit False, selon le résultat de la comparaison Les opérateurs logiques and, or et not retournent True ou False selon le résultat de l'opération 24

25 if / else ternaire Forme: (exp1 if exp2 else exp3) retourne exp1 si exp2 est vrai, autrement exp3 par exemple: a = y if x else z équivalent aux énoncés: if x: a = y else: a = z 25

26 Quiz Décrivez deux façons de traiter un ensemble de cas? Comment fait-on pour construire une expression qui incorpore une condition? Comment fait-on pour étendre un même énoncé sur plusieurs lignes À quoi correspondent les valeurs True et False? 26

27 Énoncés répétitifs Deux énoncés possibles: while for Format général du while: while <test>: <bloc d'énoncés #1> else: # optionnel <bloc d'énoncés #2> 27

28 Par exemple: >>> while True:... print("entrer CTL-C pour m'arrêter!")... Entrer CTL-C pour m'arrêter! Entrer CTL-C pour m'arrêter! Entrer CTL-C pour m'arrêter! etc. >>> x = 'spam' >>> while x:... print(x, end=' ')... x = x[1:]... spam pam am m >>> a = 0; b = 10 >>> while a < b:... print(a, end=' ')... a +=

29 break / continue On peut utiliser l'énoncé break pour sortir de la boucle avant sa terminaison normale On peut se servir de l'énoncé continue pour passer immédiatement à l'itération suivante de la boucle Format général: while <test1>: <bloc d'énoncés #1> if <test2>: break if <test3>: continue # retourner au test1 <bloc d'énoncés #2> else: <bloc d'énoncés #3> # sortir de la boucle maintenant # exécuté lorsque test1 est faux Lorsque présente, la clause else est toujours exécutée à la fin de la boucle, sauf lorsqu'un break vient interrompre le déroulement normal de celle-ci 29

30 Par exemple: >>> while True:... nom = input("entrez un nom: ")... if nom == 'stop': break... age = input("entrez votre age: ")... print("bonjour %s!" % nom)... print("votre age au carré est %d"... % age **2)... Entrez un nom: Marc Entrez votre age: 47 Bonjour Marc! Votre age au carré est 2209 Entrez un nom: stop >>> 30

31 else Test pour vérifier si un nombre est premier (algorithme non optimal) >>> from math import sqrt >>> p = int(sqrt(x)) >>> while p > 1:... if x % p == 0:... print(p, "est un facteur de", x)... break... p -= 1... else:... print(x, "est premier!") 31

32 Boucle for Forme générale: for <cible> in <itérable>: <bloc d'énoncés #1> if <test>: break # facultatif if <test>: continue # facultatif else: # facultatif <bloc d'énoncés #2> pour chaque objet <cible> contenu dans un <itérable>, exécuter <bloc d'énoncés #1»; à la fin, exécuter <bloc d'énoncés #2> à condition de ne pas être sorti de la boucle avec un «break» le continue met fin à l'itération courante de la boucle le break met fin à la boucle les énoncés continue et break peuvent se trouver n'importe où dans le corp de la boucle 32

33 Par exemple: >>> for x in ['spam', 'eggs', 'ham']:... print(x, end=' ')... spam eggs ham >>> somme = 0 >>> for x in [1, 2, 3, 4]:... somme = somme + x... >>> somme 10 >>> produit = 1 >>> for x in [1, 2, 3, 4]:... produit *= x... >>> produit 24 33

34 On peut itérer sur tout ce qu'on veut; par exemple sur des tuples: >>> t = [(1,2), (3,4), (5,6)] >>> for (a,b) in t:... print(a, b) On peut aussi itérer sur les clés d'un dictionnaire: >>> d = {'a': 1, 'b': 2, 'c'= 3} >>> for x in d:... print(x, '=>', d[x])... a => 1 b => 2 c => 3 34

35 Approche équivalente utilisant la fonction items: >>> d = {'a': 1, 'b': 2, 'c'= 3} >>> for (cle,valeur) in d.items():... print(cle, '=>', valeur)... a => 1 b => 2 c => 3 Cas de l'opérateur * >>> l = [(1,2,3,4), (5,6,7), (8,9)] >>> for (a,b,*c) in l:... print(a,b,c) [3, 4] 5 6 [7] 8 9 [] 35

36 Boucles imbriquées >>> items = ['aaa', 111, (4,5), 2.01] >>> cles = [(4,5), 3.14] >>> for cle in cles:... print('cle', cle, end=' ')... for item in items:... if(item == cle):... print('trouvée')... break... else:... print('non trouvée')... cle (4, 5) trouvée cle 3.14 non trouvée Solution alternative: >>> for cle in cles:... print('cle', cle, end=' ')... if cle in items:... print('trouvée')... else:... print('non trouvée')... cle (4, 5) trouvée! cle 3.14 non trouvée. 36

37 While vs for? Quand doit-on utiliser la boucle while et quand doit-on utiliser le for? en Python on utilise le plus souvent le for, car il est conceptuellement plus simple et plus direct, lorsqu'on doit itérer sur tous les éléments d'un objet «itérable» (liste, tuple, dictionnaire, etc.) le while sert moins souvent, on l'utilisera dans des cas particuliers, par exemple lorsqu'on doit répéter des traitements sur des objets pour lesquels il n'est pas aisé d'itérer d'une façon régulière (rarement le cas) 37

38 range([start,]stop[,step]) Fonction qui produit une séquence itérable d'entiers compris dans l'intervalle [start,stop[, en utilisant le pas step par défaut, start = 0 et step = 1 >>> list(range(5)) [0, 1, 2, 3, 4] >>> list(range(-1,5)) [-1, 0, 1, 2, 3, 4] >>> list(range(5, -1, -1)) [5, 4, 3, 2, 1, 0] >>> for i in range(5):... print(i, end=' ')

39 zip(*iterable) Reçoit un nombre quelconque d'objets «itérables» et retourne un autre «itérable» dont les éléments correspondent à l'agrégation des éléments des objets reçus >>> x = [1,2,3,4,5] >>> y = [6,7,8,9,0] >>> list(zip(x,y)) [(1, 6), (2, 7), (3, 8), (4, 9), (5, 0)] >>> for (i,j) in zip(x,y):... print(i,'+',j,'=',i+j) = = = = = 5 39

40 Quiz Quelle est la différence fondamentale entre une boucle while et une boucle for? Quelle est la différence entre les énoncés break et continue? Sous quelle condition la clause else d'une boucle est-elle exécutée? En supposant l'existence d'une liste de clés et d'une liste de valeurs, construisez un dictionnaire à l'aide d'une boucle for et de la fonction zip 40

41 Définition «en compréhension» d'une liste On peut aussi définir une liste en utilisant une expression similaire à l'énoncé for >>> a = [1,2,3,4,5] >>> b = [i+10 for i in a] >>> b [11, 12, 13, 14, 15] Sa forme simple est: [<exp> for <objet> in <itérable>] Nous verrons sa forme générale plus tard... 41

42 Documentation Les commentaires débutent par «#» tout ce qui suit est ignoré par l'interpréteur sert à documenter un ou plusieurs énoncés dont l'interprétation n'est pas évidente La fonction dir permet d'afficher l'ensemble des attributs associés à un objet: >>> dir([]) [' add ', ' class ', ' contains ', ' delattr ', ' delitem ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' getitem ', ' gt ', ' hash ', ' iadd ', ' imul ', ' init ', ' iter ', ' le ', ' len ', ' lt ', ' mul ', ' ne ', ' new ', ' reduce ', ' reduce_ex ', ' repr ', ' reversed ', ' rmul ', ' setattr ', ' setitem ', ' sizeof ', ' str ', ' subclasshook ', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] 42

43 L'attribut doc est une chaîne de caractères qui documente l'objet C'est ce qu'on appel la «docstring» >>> print([]. doc ) list() -> new empty list list(iterable) -> new list initialized from iterable's items La première string d'un fichier est sa «docstring» Documenter vos fichiers, vos classes et vos fonctions #!/usr/bin/env python # -*- coding: utf-8 -*- """ Description du module """ auteur = "Prénom Nom" date = "aaaa-mm-jj" coequipiers = "Coéquipier 1", "Coéquipier 2" class MaClasse(object): """Description de la classe """ def unefonction(): """Description de la fonction """ 43

44 Outil PyDoc3 Permet d'inspecter automatiquement tous les attributs d'un objet et d'afficher la documentation associée à ces attributs les classes les fonctions les données La fonction help permet d'afficher la documentation associée à un objet directement dans l'interpréteur Le programme Pydoc3 affiche une interface graphique et permet de consulter la documentation en HTML Si vous documentez adéquatement votre code, vous pourrez vous aussi produire automatiquement une documentation sous forme de pages web 44

45

46 Complexité algorithmique Un programme traite habituellement un nombre variable de données L'ordre de la complexité algorithmique indique la façon dont le temps d'exécution croît avec la quantité de données à traiter croissance linéaire O(n) croissance quadratique O(n 2 ) croissance cubique O(n 3 ) etc. 46

47 Dans le cas linéaire, lorsqu'on double la quantité de données, on double aussi le temps de traitement Dans le cas quadratique, cependant, lorsqu'on double la quantité de données, on quadruple le temps de traitement La notation O(f(n)) spécifie que l'ordre de la complexité se comporte au plus comme une fonction en f(n), où n est la taille du problème (la quantité de données) c'est une borne supérieure sur la complexité on appelle cette notation «Big-O» 47

48 x 2x 10x 100x O(n) O(n 2 ) O(n 3 ) O(n log n) ~2.3 ~15 ~200 Croissance du temps de calcul pour une algorithme hypothétique requérant 1 unité de temps pour résoudre un problème de taille x 48

49 temps O(n 3 ) O(n 2 ) O(n log n) O(n) n 49

50 Par exemple, un algorithme simple de tri sera O(n 2 ); p. ex. le «tri bulle» Un bon algorithme de tri (comme celui du Python) est O(n log n) dans le pire des cas Problème du «Maximum Subsequence Sum» (MSS) dans une séquence quelconque d'entiers (positifs et négatifs), on veut trouver la sous-séquence dont la somme des éléments est maximum a1 a2 a3 a4... an-3 an-2 i j 50

51 MSS - algorithme #1 Essayer toutes les sous-séquences: il y en a autant que le nombre de combinaisons de 2 objets choisis parmi n+1 (sans répétition) C(2,n+1) = (n+1) x n / 2 = O(n 2 ) Pour chaque sous-séquence, calculer la somme qui, en moyenne, contient un nombre de termes proportionnel à n Au total, O(n 3 ) opérations sont nécessaires 51

52 def MSS1(sequence): n = len(sequence) maxsum = 0 for i in range(n): for j in range(i, n): thissum = 0 for k in range(i,j): thissum += sequence[k] if thissum > maxsum: maxsum = thissum return maxsum a1 a2 a3 a4... an-3 an-2 i j 52

53 MSS - algorithme #2 Soit «Si,j» la somme des termes de la sous-séquence (i,j) Observation: Si,j+1 = Si,j + aj+1 Le calcul de la somme peut donc se faire en temps constant, à condition de mémoriser la somme précédente L algorithme devient quadratique! 53

54 def MSS2(sequence): n = len(sequence) maxsum = 0 for i in range(n): thissum = 0 for j in range(i, n): thissum += sequence[j] if thissum > maxsum: maxsum = thissum return maxsum a1 a2 a3 a4... an-3 an-2 i j 54

55 MSS - algorithme #3 Doit-on vraiment considérer toutes les sous-séquences? Observation: une sous-séquence négative ne peut pas précéder la MSS, sinon on l enlèverait!... S < 0 MSS?... i j 55

56 def MSS3(sequence): n = len(sequence) thissum = maxsum = 0 i = j = 0 while j < n: thissum += sequence[j] if thissum > maxsum: maxsum = thissum elif thissum < 0: i = j + 1 thissum = 0 j += 1 return maxsum a1 a2 a3 a4... an-3 an-2 i j 56

57 Conclusion L'indentation fait partie intégrante de la syntaxe du python utiliser les espaces pour indenter L'énoncé if / elif / else permet d'exécuter des blocs d'énoncés conditionnellement indenter le bloc d'énoncés ; ne pas oublier le «:» Les énoncés while / for / else permettent de boucler sur un bloc d'énoncés indenter le bloc d'énoncés ; ne pas oublier le «:» utiliser l'énoncé break permet terminer prématurément la boucle; utiliser l'énoncé continue pour passer immédiatement à l'itération suivante 57

58 Il faut documenter vos programmes chaque fichier chaque classe chaque fonction Le fait d'imbriquer des boucles augmente généralement la complexité algorithmique attention aux complexités quadratique et cubique qui, en pratique, limitent fortement la taille des problèmes pouvant être résolus dans un temps raisonnable 58

59 Quiz Comment pourrait-on modifier les solutions du problème MSS pour retourner à la fois la valeur de la sousséquence maximum et les indices qui la définissent? comment identifier ces indices? comment retourner trois valeurs au lieu d'une seule? 59

Initiation à la programmation en Python

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étail

Chapitre 2 Devine mon nombre!

Chapitre 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étail

STAGE IREM 0- Premiers pas en Python

STAGE 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étail

Découverte de Python

Dé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étail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Présentation du langage et premières fonctions

Pré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étail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES 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étail

Algorithmique et Programmation, IMA

Algorithmique 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étail

1/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/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étail

TP 1. Prise en main du langage Python

TP 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étail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Les chaînes de caractères

Les 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étail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

1 Recherche en table par balayage

1 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étail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Licence 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étail

Programmer 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) 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étail

Introduction à MATLAB R

Introduction à 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étail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Plus en détail

Les classes en Python

Les 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étail

Cours 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 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étail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

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

IN 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étail

I. Introduction aux fonctions : les fonctions standards

I. 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étail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

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

1 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étail

Cours Informatique Master STEP

Cours 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étail

1. 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. 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étail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 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étail

L informatique en BCPST

L 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étail

Python Les fondamentaux du langage

Python Les fondamentaux du langage Editions ENI Python Les fondamentaux du langage (Nouvelle édition) Collection Ressources Informatiques Extrait 654 Python Les fondamentaux du langage 1.2 Objectifs du chapitre Dans ce chapitre sont présentés

Plus en détail

1. Structure d'un programme FORTRAN 95

1. 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étail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours 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étail

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. 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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan 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étail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Les bases du langage Python

Les 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étail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Bernard HAMM, Évelyne LAVOISIER

Bernard HAMM, Évelyne LAVOISIER 92 MAÎTRISE DE PROGICIELS DE GESTION DE BASES DE DONNÉES ET DE TRAITEMENT DE TEXTE Compte rendu d'un stage à l'usage des professeurs de sciences sociales. Ce stage a été programmé A la demande et avec

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

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

Licence 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étail

DM 1 : Montre Autoquartz ETA

DM 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étail

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Introduction à 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étail

Chapitre 4 : Édition de fichiers texte - Vi

Chapitre 4 : Édition de fichiers texte - Vi Édition de fichiers texte - Vi ÉNONCÉSDUCHAPITRE4 33 Chapitre 4 : Édition de fichiers texte - Vi X Durée : 1heure30 X Mots-clés : Éditeur, texte, vi, vim. X Objectif À l'issue de ce chapitre, vous serez

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

Plus en détail

2 Comment fonctionne un ordinateur, dans les grandes lignes

2 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étail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ 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étail

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

Langage 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étail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

4 Exemples de problèmes MapReduce incrémentaux

4 Exemples de problèmes MapReduce incrémentaux 4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank

Plus en détail

Exercices 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 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étail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Initiation à l algorithmique

Initiation à 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étail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java 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étail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Perl 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 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étail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 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étail

Université Ibn Zohr Excel Résume de cours

Université Ibn Zohr Excel Résume de cours Le logiciel Excel: Excel est un tableur qui permet de saisir des données, de les afficher et de faire des traitements sur ces données. Les originalités du tableur sont l'organisation des données et les

Plus en détail

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1 Instructions et spécifications pour la transmission en format XML de déclarations par lots 30 mai 2015 MODULE 1 Table des matières Modifications apportées dans la présente... 3 1 Renseignements généraux...

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module 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étail

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

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

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

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David Guide de formation avec cas pratiques Excel 2007 Programmation Avancé VBA Guide de formation avec cas pratiques Philippe Moreau Patrick Morié Daniel-Jean David Tsoft et Groupe Eyrolles, 2009, ISBN : 978-2-212-12446-0

Plus en détail

Le modèle de données

Le modèle de données Le modèle de données Introduction : Une fois que l étude des besoins est complétée, deux points importants sont à retenir : Les données du système étudié Les traitements effectués par le système documentaire.

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

OCL - Object Constraint Language

OCL - 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étail

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

TABLEAU CROISE DYNAMIQUE

TABLEAU CROISE DYNAMIQUE EXCEL NIVEAU III Mireille DUCELLIER MARS 2003 BASE DE DONNEES RAPPEL Une base de données est une plage de cellules contiguës située sur une la feuille 1. Elle commence en A1. On parle alors de champs,

Plus en détail

http://cermics.enpc.fr/scilab

http://cermics.enpc.fr/scilab scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours 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étail

Solutions du chapitre 4

Solutions 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étail

TD3: tableaux avancées, première classe et chaînes

TD3: 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étail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

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

# 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

SOMMAIRE. 1. Préambule...2. 2. Le calendrier...2. 3. Trajectoire d un objet lancé...6. 4. Régression linéaire...9

SOMMAIRE. 1. Préambule...2. 2. Le calendrier...2. 3. Trajectoire d un objet lancé...6. 4. Régression linéaire...9 SOMMAIRE 1. Préambule...2 2. Le calendrier...2 3. Trajectoire d un objet lancé...6 4. Régression linéaire...9 5. Calcul de commissions par tranches...12 6. Base de données...16 7. Valeur cible...19 ATTENTION

Plus en détail

Module : Informatique Générale 1. Les commandes MS-DOS

Module : Informatique Générale 1. Les commandes MS-DOS 1 Les commandes MS-DOS I. Introduction Le DOS est le système d'exploitation le plus connu, sa version la plus commercialisée est celle de Microsoft, baptisée MS-DOS (Microsoft Disk Operating Système).MS-DOS

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail