Programmation en Python

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

Download "Programmation en Python"

Transcription

1 Programmation en Python Version conseillée : PYZO (et non pas Idle), disponible sur le site Lors du lancement du logiciel, on dispose d une fenêtre où apparaissent - d une part un écran sur lequel sont représentés les résultats ; pour a cher les résultats, utiliser print(...) - d autre part un espace (ou contenu d un chier) sur lequel on peut éditer les. On peut sélectionner les à exécuter (utiliser la rubrique Exécuter ). Pour obtenir de l aide sur une fonction, utiliser : help("nom_de_la_fonction"). Principe général de la syntaxe de la programmation en Python Les sont séparées soit par un point-virgule soit par un passage à la ligne. Dans un même bloc, deux de même profondeur logique doivent avoir strictement la même indentation. Par exemple, une instruction avec un test if-then-else admet la syntaxe : if test : instruction1 else : instruction2 Avec une telle convention, il est inutile de marquer le début et la n d un bloc par des éléments du langage (comme les mots begin et end utilisés dans certains langages). Un respect scrupuleux des indentations est essentiel. Remarque : Indenter et dédenter s obtiennent par les touches Tab et Maj+Tab (cf menu Editions dans Pyzo). Remarque : Une variante consiste à écrire : if test : instruction1 else : instruction2 Remarque : En revanche, les mots-clés if et else doivent se trouver en première position. On ne peut donc pas écrire la totalité de l instruction sur une unique ligne. Objets élémentaires J Nombres entiers (integer), nombres ottants ( oat), et complexes Division et quotient dans les entiers : a//b et a%b renvoient le quotient et le reste de a par b. Opérations sur les ottants : a*b, a/b, max(a,b), a**b (qui donne a b ), abs(x) : valeur absolue Les nombres ottants (= nombre à virgule ottante) sont de la forme ou 2.1e10. Remarque : Pour chaque nombre ottant (en précision usuelle, dite double-précision), 52 bits sont utilisés pour stocker la mantisse, 1 bit pour le signe et 11 bits pour la puissance, donc au total 64 bits (c est-à-dire 8 octets). Nombres complexes : complex(x,y) ou x+y*1j représentent le complexe x + iy

2 Remarque : Python considère comme égaux l entier 4, le ottant 4:0 et le nombre complexe 4+0j. Exemple : L instruction round(x,5) renvoie la meilleure approximation décimale de x avec 5 chi res après la virgule. Par exemple, round(3.75,1) renvoie 3.8 et round(3.75) renvoie 4. J Booléens (boolean) : True, False (avec majuscules), and, or, not, a!=b (qui signi e a 6= b). En Python, toutes les valeurs sont comprises comme True sauf la constante False, la constante None, la constante 0, la liste vide [], le tuple vide (), l ensemble vide set(), le dictionnaire vide {}. Par exemple : Le booléen (i%3) est vrai ssi i n est pas congru à 0 modulo 3. On rappelle que i%3 renvoie le reste de l entier i par la division euclidienne par 3. J Intervalles d entiers : range(a,b,h) représente l intervalle des entiers x = a + kh, avec k entier tel que a x < b: Important : Par défaut, la valeur de h est 1. Ainsi, range(0,5) renvoie la liste [0,1,2,3,4]. Remarque : range(n) équivaut à range(0,n). Remarque : Si b < a, range(a,b,h) est la liste des valeurs x = a + kh tel que b < x a: Important : Noter que x est toujours distinct b : La valeur b est toujours exclue de la liste. Exemple : (i in range(a,b,h)) est vrai ssi i appartient à l intervalle. Remarque : Pour convertir un intervalle en une liste d entiers, on utilise la conversion : list(range(a,b,h)) De même, pour convertir un intervalle en un tableau, on utilise array (du module numpy) au lieu de list. Exemples : list(range(3)) renvoie [0,1,2] et list(range(3,0,-1)) renvoie [3,2,1] Listes La structure de données la plus utilisée en Python est la liste. Les listes python sont en fait des tableaux dynamiques : on peut accéder à n importe quel élément du tableau et le modi er en temps constant et on peut au besoin ajouter des éléments en queue de tableau, dans le cas le pire en temps proportionnel à la taille du tableau et en temps amorti constant. J Dé nitions d une liste Considérons l exemple dé ni par a = [1,2,3,"toto"] J Longueur de la liste : len(a) renvoie la longueur n de la liste (c est-à-dire le nombre d éléments) J Obtention et modi cation d un élément : a[i] renvoie l élément d indice i dans la liste, pour 0 i < n: Ainsi, avec l exemple précédent, a[0] renvoie 1 et a[3] renvoie toto On peut modi er les éléments d une liste : a[1] = a[1]+1 Important : Ces opérations se font en temps constant (en moyenne, et dans le cas le pire en temps proportionnel à n).

3 J Listes dé nies en extension (construites à l aide d une itérateur sur une autre liste) : La syntaxe élémentaire générale est : [ f(i) for i in range(n)]. Exemples : [3*i**2 + 1 for i in range(1,10)] renvoie la liste [0,1,2,3,4,5,6,7,8,9] [i**2 for i in range(10) if i%3!= 1] renvoie la liste [0,2,3,5,6,8,9] [(3*i+j) for i in range(2) for j in range(3)] : Les éléments sont placés dans l ordre lexicographique associé à (i; j) : le plus simple est de se souvenir que cette construction remplace deux boucles for imbriquées dans le même ordre. Ainsi, on obtient la liste [0,1,2,3,4,5]. J Appartenance à une liste (utilisée souvent dans les tests) : (x in a) vaut True x appartient à l. J Opérations sur les listes Concaténation de listes : a + [4,5] renvoie [1,2,3, toto,4,5] Répétitions : a * 3 équivaut à a + a + a Important : On peut ainsi dé nir et initialiser à 0 un tableau a de longueur n par : a = [0]*n Une autre solution est a = [0 for i in range(n)]. J Sous-listes ( slicing ) a[2:4] renvoie [3,"toto"] ; en particulier, a[0:len(a)] renvoie la liste complète De manière générale, la syntaxe des tranches est a[start:stop:step] où start désigne l indice où commencer, stop l indice avant lequel il faut s arrêter et step l incrément à donner à l indice à chaque étape. On peut omettre ces valeurs start, stop, step, auquel cas Python leur donne respectivement les valeurs 0, n et 1, où n est la longueur de la liste. Ainsi a[1::2] désigne la liste des éléments de a de rang impair. J Opérations orientées-objets sur les listes (cf aussi dernier paragraphe) Pour les opérations sur les listes, il vaut mieux privilégier les procédures orientées-objet : - Ajout d un élément x à la n de la liste a : a.append(x) - Suppression et a ectation d un élément : a.pop(i) supprime le i-ième élément et renvoie sa valeur. La valeur par défaut de i est le dernier indice : a.pop() supprime le dernier élément de la liste. - Concaténation de deux listes (modi e la liste a) : a.extend(b) - Insertion d un élément x en position i : a.insert(i,x) - Tri (rapide) de la liste (d enteirs ou de ottants) : a.sort() - Inversion de la liste : ; a.inverse() - Suppression de l élément en position i : del a[i] et plus généralement del a[i:j] - Suppression de la première occurrence de x : a.remove(x) Remarque : Les procédures tri, extend, insert, del et remove sont de type None. Exemple : a = [4,1,3] ; a.sort() ; a.append(2) ; print(a) # a che [1; 3; 4; 2]

4 J Copie b = list(a) revient à faire une copie (physique) du tableau a: Remarque : Autre méthode possible : b = [a[i] for i in range(len(a))] Autres structures Les di érences les plus importantes entre les di érents types d objets sont : - mutable / non mutable : les listes, ensembles et dictionnaires sont mutables, pas les autres. - ordonné / non ordonné : les listes, chaînes, tuples et ranges sont «ordonnés» dans le sens où l ordre dans lequel ils renvoient leurs éléments est bien dé ni. Ce n est pas le cas a priori pour for x in {1, 2, 3}. - paresseux / «normal» : un itérateur paresseux ne calcule ses éléments que quand on le lui demande. Par exemple, range(10**10) ne contient pas vraiment entiers : il les créera au fur et à mesure des besoins. J Caractères et chaînes de caractères (string) : Chaîne : coco ou "coco" ; "c" représente un caractère ( = chaîne de longueur 1) Longueur : len("coco") ; concaténation : "coco" + "rico" Eléments d une chaîne s : s[i] est le caractère d indice i, par exemple "coco"[0] est le caractère "c" Remarque : Les éléments ne peuvent pas être modi és comme dans une liste (les chaînes sont non mutables ). J Piles Liste munies des opérations l.pop() et l.append(x) qui respectivement suppriment le dernier élément et ajoute l élément x en n de liste (ce qui équivaut à l += [x] ou même à l[len(l):len(l)] = [x]). J Ensembles Ensembles (set) : {1,1,2,4} désigne l ensemble f1; 2; 4g Remarque : set convertit un itérable (souvent des listes) en ensemble, par exemple set([1,1,2,4]) Remarque : Ne pas confondre l ensemble vide set() avec le dictionnaire vide {} J Tuples J Tuples : L exemple classique est celui des couples : (a,b) noté aussi a,b. De même les triplets (a,b,c), etc. Les tuples ne sont pas mutables : On accède aussi aux éléments comme pour les listes, mais on ne peut pas les modi er. Par exemple, a = (1,2) ; print(a[0]) a che 1. L a ectation est possible directement dans les tuples : (x,y,z) = (1,2,3) Ainsi, pour échanger les valeurs de deux variables, il su t donc de considérer : (x,y) = (y,x). Attention : Une fonction prenant en argument un couple n est pas la même chose qu une fonction prenant en argument deux variables. En pratique, on ne prend jamais des tuples en argument (on leur préfère les listes). En revanche, il arrive souvent que les fonctions renvoient des tuples (notamment des couples). J Dictionnaires (= tables d association)

5 Essentiellement, un dictionnaire est un ensemble de couples (clé,valeur), où valeur peut être n importe quel objet (un entier, une liste, une fonction,...) et clé est un objet hachable. Pour faire simple, les objets hachables sont les objets non mutables, typiquement des nombres (entiers ou ottants), des chaînes de caractères ou des tuples, mais pas des listes ni des ensembles. On peut voir un dictionnaire comme une généralisation d un tableau (ou vecteur), qui au lieu d être indexé par les entiers de 0 à n 1 est indexé par des clés arbitraires. On peut dé nir un dictionnaire soit directement : dico = { a : 3, b : 2, c : 1, 0 : 0}) ; dico_vide = {} soit à partir d une liste de couples : couples = [( a,3),( b,2),( c,1),(0,0)] d = dict(couples) Ajout d un élément à un dictionnaire : d[c]=v ; suppression : del dico[ a ] Appartenance : (c in d) renvoie True ssi c est une clé. Itération : [k for k in d] permet d itérer sur les clés d un dictionnaire. Modules ( = bibliothèques) Un module est en pratique un chier Python contenant des dé nitions de fonctions (ou de classes). Pour charger le module math : import math. Ensuite, on utilise alors math.log Variante conseillée : from math import *. Ensuite, on utilise alors log directement au lieu de math.log. Fonctions classiques : sqrt, sin, exp,, pi et e, floor et ceil (donnant E(x) = bxc et dxe). Autres modules courants : from scipy import * # calcul numérique from numpy import * # calcul vectoriel, par exemple array from matplotlib.pyplot import * # fonctions graphiques, par exemple plot Remarque : matplotlib est une librairie de modules graphiques. from random import randrange ; nombrealeatoire = randrange(1000) from cmath import * # nombres complexes Remarque : Dans la littérature, on utilise souvent la syntaxe suivante : import numpy as np Ce qui permet ensuite d utiliser l abréviation np.array au lieu de numpy.array Instructions de programmation J A ectation des variables = Exemple fondamental : L instruction x = x + a ajoute la valeur de a à la valeur de x: Abréviation : x += a signi e x = x + a ; de même avec x *= a signi e x = x* a. Attention à ne pas confondre = (a ectation) et == (symbole d égalité dans les équations).

6 Exemple important : L échange de variables. La suite d z=x ; x=y; y=z ; permet d échanger les valeurs respectives de x et y: En fait, Python autorise l assignation sur le couple (x; y) en écrivant x,y = y,x J Branchements et expressions conditionnels : IF if test : if test : else : if test1 : elif test2 : else : Exemple : L instruction if x<y : m = x else : m = y attribue à la variable m le maximum des valeurs de x et y. Expression conditionnelle : expression1 if condition else expression2 Exemple : (x if x<y else y) J Répétitions inconditionnelles : boucles FOR Syntaxe : for x in l : (x) Dans certains cas, l instruction dépend à la fois de la valeur de l élément mais aussi de l indice. On utilise alors : for i in range(len(l)) : instruction(i,l[i]) Remarque : L instruction break au seind une instuction dans une boucle provoque la sortie immédiate de la boucle. J Types d objets itérables

7 Listes [1,2,3], chaînes de caractères 123, tuples (1,2,3), les intervalles range(1:4), les ensembles {1,2,3}, les dictionnaires { a =1, b =2, c =3} Exemple : for x in 123 : print(x) Exemple : Filtrage des tuples : for x,y in [(1,1),(1,2),(2,3)] : print(x+y) Listes dé nies (par extension) à l aide d une boucle : [ f(i) for i in range(0,n)] J Répétitions conditionnelles : boucles WHILE Syntaxe : while test : Exemple. La suite d x = 1 while x<100 : x = 2*x # on pourrait aussi écrire x = 2*x attribue à x la plus petite puissance de 2 qui est strictement supérieure à 100, à savoir 128. Evaluation paresseuse : while test1 and test2 : n équivaut pas à while test2 and test1 : Les tests sont évalués dans l ordre où ils sont écrits. Par exemple, while i<=n-2 and a[i+1]==a[i] :... Fonctions et procédures J Syntaxe : def nom_de_la_fonction ( arguments ) : corps_de_la_fonction L appel d une procédure se fait en utilisant le nom de la procédure complété entre parenthèses des paramètres correspondants aux arguments. Exemple : def factorielle(n) : x = 1 for i in range(1,n+1) : x = x*i # On peut écrire l instruction sous la forme : x *= i return x Une fois déclarée la procédure f actorielle; l instruction factorielle(5) renvoie 120, et plus généralement, si n est un entier naturel, factorielle(n) renvoie la valeur de n!: Exemple : La fonction division renvoie le reste de la division euclidienne de a par b; où a 2 N et b 2 N : def division(a,b): while a >= b :

8 a = a-b # On peut écrire l instruction sous la forme : a -= b return a J Instruction return La valeur de retour d une fonction est obtenue par une instruction (return valeur) dans le corps de la fonction. Il peut y avoir plusieurs return, mais on sort de la procédure dès le premier return rencontré. J Type None Python propose le type NoneType, dont la seule valeur est None : c est une représentation du rien, de l absence de valeur. La séquence des arguments d une fonction peut très bien être vide. Si f est une telle fonction, l instruction y=f() appelle la fonction (provoque son exécution) et place le résultat dans la variable y. On notera que les parenthèses sont indispensables, pour distinguer l objet f qui est une fonction de l objet f() qui est le résultat d un appel à cette fonction. Dans un tel cas, il est préférable de penser que f prend tout de même un argument, à savoir la valeur None. Remarque : L oubli de return est une erreur classique. Dans ce cas, la fonction renvoie la valeur None. Remarque : Un a chage obtenu par print dans le corps d une fonction ne doit pas être considéré comme le résultat de la fonction (c est un simple e et de bord ). D ailleurs la fonction print renvoie la valeur None. Remarque : un return vide (c est-à-dire suivi d aucune expression) renvoie la valeur None. Exemple : def f(x) : print (x*x) # Ici, f(2) a che 4 et renvoie la valeur None def g(x) : return x*x # Ici, g(2) renvoie la valeur 4 ; on peut par exemple utiliser print(g(2)) J Variables locales, variables globales : Les variables locales sont des variables internes à la procédure : elles ne modi ent pas les variables de l environnement (même si elles portent le même nom). En revanche, si on veut qu une procédure puisse modi er une variable de l environnement, il faut la déclarer comme variable globale. Exemple : def essai(...) global x ;... J Fonction anonymes : En Python, une fonction lambda est une fonction anonyme (à laquelle on n a pas donné de nom), et qu on peut appliquer à la volée dans une expression. La syntaxe est : lambda paramètres : expression Exemple : list(map(lambda x = x*x,range(0,5)) équivaut à [x*x for x in range(0,5)]. J Arguments par défaut : Une fonction peut être dé nie avec davantage d arguments qu elle n est utilisée. Dans ce cas, les arguments supplémentaires doivent avoir une valeur par défaut. Exemple : def essai(x=1,y=2,z=3) : return(x*y*z) print(essai(2)) a che 12, car la valeur de x est 2 et les valeurs de y et z sont les valeurs par défaut 2 et 3: Et de même, print(essai()) a che 6:

9 Adresses ( = références) et passage des arguments par références J Une référence est une adresse indiquant où la donnée se trouve en mémoire. Lors d une a ectation x = y, on stocke dans la case mémoire de nom x l adresse se trouvant dans la case mémoire de nom y. Par exemple, après les y = 2 ; x = y ; y = 3, la valeur de x vaut 2. L a ectation par adresses (on dit généralement par référence) n a d importance que dans le cas où un objet est mutable. En Python, il existe en e et deux types d objets: les mutables (listes, dictionnaires, ensembles) et les non mutables (entiers, nombres ottants, chaînes de caractères, tuples). Par exemple, si b = [0,0,0], l instruction b[0] = 1 modi e la valeur référencée par b mais ne modi e par l adresse de b. Si a et b sont des listes, l instruction a = b est très rapide car elle consiste seulement à placer dans a l adresse de b. Après, a et b ont la même référence. Ainsi, après les b = [0,0,0] ; a = b ; b[0] = 1, les deux listes a et b ont la même référence et valent [1,0,0]. Remarque : id(x) renvoie l adresse de la valeur de x. Ainsi, l égalité x == y compare les valeurs, alors que id(x) == id(y) compare les adresses des valeurs de x et y. Le premier test peut être vrai sans que le second le soit. J Passage des arguments des fonctions par références Exemple : def modifie(a) : a[0] = a[0] + 1 Un appel de la fonction modifie (qui est de type None) sur une liste (non vide) va ajouter un au premier terme de la liste. On dit souvent que modifie est une procédure (plutôt qu une fonction). En Python, les arguments des fonctions sont toujours passés par référence (en fait par valeur mais les valeurs en question sont des références). Autrement dit, ces références ne peuvent être changées car elles sont passées par valeur. Récursivité Une fonction (ou procédure) récursive est une procédure qui s appelle elle-même. Exemple : def factorielle(n) : if n==0 : return 1 else : return n*factorielle(n-1) Exemple : def division(a,b) : if a<b : return a

10 else : return division(a-b,b) Tableaux (array) (cf aussi le document sur le calcul numérique) J Avec le module numpy, on peut dé nir et utiliser des tableaux (array) : from numpy import * J Construction de tableaux (vecteurs et matrices) : X = array([1,1,1]) ; M = array([[1,2,3],[1,1,1]]) Remarque : On construit souvent les vecteurs à partir d une liste l qu on convertit en tableau à l aide de array(l), et les matrices (tableaux à deux dimensions) en utilisant une liste de listes, par exemple [[1,2,3],[1,1,1]]. M = array([[1,2,3],[1,1,1]]) dé nit M = Remarque : Contrairement aux listes, les éléments d un tableau doivent être du même type (entier, ottants,...). J Les commandes zeros(n) et zeros(n,p) créent des vecteurs et matrices de coe cients initialisés à 0. J M.shape renvoie le couple (n; p) donnant respectivement les nombres de lignes et de colonnes. Remarque : On pourrait aussi dé nir n = len(m) et p = len(m[0]). J Sur les tableaux, les opérations s e ectuent terme à terme. Ainsi, array([1,1,1])+array([1,0,1]) renvoie : array([2,0,2]), à ne pas confondre avec l addition sur les listes : par exemple, [1,1,1]+[1,0,1] vaut [1,1,1,1,0,1]. a = array([1,0,2]) ; exp(a) renvoie le tableau array([ ,1., ]) J dot(m,x) renvoie le produit matriciel M X (produit de matrices ou de vecteurs). Ne pas confondre dot(m,m) avec M**2 (qui consiste à mettre au carré tous les coe cients de M). Copies et conversions J Les fonctions int, float, str, list, array, set permettent de convertir un objet en un objet de type di érent. Exemple : a = float(2) équivaut à a = 2.0 ; s = str(2) équivaut à s = "2" Exemple : Pour dé nir le tableau [0; 1 5 ; 2 5 ; 3 5 ; 4 5 ; 1], on peut utiliser l une des deux suivantes : from numpy import * ; array(range(6))/5 ; array([i/5 for i in range(6)]) J Les commandes str, list, array permettent aussi de faire une copie (physique) des chaînes, listes, tableaux. Exemple : a = [1,2,3] ; b = list(a) ; On pourrait aussi faire une copie à l aide de : b[0::len(a)] = a Remarque : Les modi cations ultérieures de b ne modi ent pas a. Ce ne serait pas le cas si on avait choisi : b = a Programmation orientée objet

11 J La programmation procédurale maintient une séparation stricte entre code et données : Les variables d une part, les procédures d autre part. Les procédures utilisent les valeurs des variables ou agissent sur les variables. Or, il se trouve que beaucoup d opérations sont communes à des objets du même type. Dans un langage orienté objet, les opérations sont dé nies en tant que propriété de l objet. Python utilise la dot syntax pour accéder aux attributs des objets, selon la syntaxe objet.methode(arguments). ( a = a + [0] Considérons les deux suivantes sur la liste a : a.append(0) Dans les deux cas, l e et est d ajouter à la liste a l élément 0 en n de liste. Dans la seconde instruction, on applique la méthode append à l objet a, qui ici est une liste. Dans le premier cas, pour créer la liste a + [0], Python crée une copie de a, auquelle il ajoute l élément 0. Le coût est proportionnel à la longueur de a, et l adresse de a est donc modi ée par l instruction a = a + [0]. En revanche, l instruction a.append(0) opère directement sur la liste référencée par a en lui ajoutant 0. Le coût est constant (en fait en moyenne), et l adresse de a n est pas modi ée par l instruction a.append(0). Remarque : Considérons les deux fonctions : def f(a) : a = a + [0] def g(a) : a.append(0) Autrement dit, l instruction a = a + [0] dans f crée une variable locale a : ainsi, la variable globale a n est pas modi ée). En revanche, a est un objet dans g, qui est modi é par la procédure g (les opérations sont e ectuées sur l objet, et plus précisement sur la valeur associée à la référence de a). J Une méthode n est en fait rien d autre qu une fonction, mais une fonction qui est associée à un objet. Elle fait partie de la dé nition de cet objet, ou plus précisément de la classe particulière à laquelle cet objet appartient (nous étudierons ce concept de classe plus tard). Mettre en oeuvre une méthode associée à un objet consiste en quelque sorte à faire «fonctionner» cet objet d une manière particulière. Par exemple, on met en oeuvre la méthode methode4(self,...) d un objet objet3, à l aide d une instruction du type : objet3.methode4(...), c est-àdire le nom de l objet, puis le nom de la méthode, reliés l un à l autre par un point. Ce point joue un rôle essentiel : on peut le considérer comme un véritable opérateur. Dans l exemple ci-dessus, en utilisant a.append(0), on applique la méthode append à l objet a qui est ici une liste. En l occurrence, la méthode append() qui est en fait une fonction spéci que des listes, a pour e et d ajouter un élément par la n. L élément à ajouter est transmis entre parenthèses, comme tout argument qui se respecte. On obtient un résultat similaire si on utilise à la place a = a + [b]. Cette façon de procéder est cependant moins rationnelle et moins e cace, car elle consiste à redé nir à chaque itération de la boucle une nouvelle liste a, dans laquelle la totalité de la liste précédente est à chaque fois recopiée avec ajout d un élément supplémentaire. En revanche, lorsque l on utilise la méthode append(), l ordinateur procède bel et bien à une modi cation de la liste existante (sans la recopier dans une nouvelle variable). Cette technique est évidemment plus rapide.

12 J Dé nition d une classe d objets et de ses attributs Dans l exemple suivant, on dé nit une nouvelle classe d objets, appelés complexe. Les attributs d un complexe sont dé nis à l aide de la fonction spéciale init (qu il faut écrire avec une paire de double _ ). Les attributs d un objets sont écrits sous la forme objet.attribut. Le mot-clé self représente l objet qui sera utilisé ultérieurement. class complexe : def init (self,x,y) : self.re = x ; self.im = y def module(self) : return (self.re**2+self.im**2)**(1/2) Ainsi, on dé nit ici deux attributs re et im aux objets de la classe complexe. On peut aussi dé nir des fonctions (appelées méthodes) qui sont elles aussi attachées aux objets de la classe complexe. Ainsi en est-il de la fonction module. Une fois dé ni la nouvelle classe d objets et ses attributs, on peut dé nir un objet : z = complexe(3,4) print(z.re) # a che 3 print(z.module()) # a che 5:0

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

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

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

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

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

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

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

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

Python - introduction à la programmation et calcul scientifique

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

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

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

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

Licence Sciences et Technologies Examen janvier 2010

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

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

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

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

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

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

Maple: premiers calculs et premières applications

Maple: premiers calculs et premières applications TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent

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

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

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

# 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

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

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

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

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

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

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

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

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

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

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

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

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

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

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

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

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

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

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

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

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

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

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

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

as Architecture des Systèmes d Information

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

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations

Plus en détail

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4 PROGRAMMER EN MQL4 Apprenez à automatiser vos stratégies sur MetaTrader 4 3 2011 Henri Baltzer. Tous droits réservés. Veuillez excuser par avance les nombreuses erreurs qui subsistent probablement dans

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

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

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

Présentation du PL/SQL

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

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

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

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

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

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

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine Initiation à VBA pour Excel Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine Septembre 2008 2 Chapitre 1 Références F. Riva Applications nancières sous Excel en Visual Basic,

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

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

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

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

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

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

Introduction au langage C

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

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world!

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world! Exo7 Algorithmes et mathématiques Vidéo partie 1. Premiers pas avec Python Vidéo partie 2. Ecriture des entiers Vidéo partie 3. Calculs de sinus, cosinus, tangente Vidéo partie 4. Les réels Vidéo partie

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

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

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

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

Continuité d une fonction de plusieurs variables

Continuité d une fonction de plusieurs variables Chapitre 2 Continuité d une fonction de plusieurs variables Maintenant qu on a défini la notion de limite pour des suites dans R n, la notion de continuité s étend sans problème à des fonctions de plusieurs

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

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

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

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

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

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

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

Optimisation, traitement d image et éclipse de Soleil

Optimisation, traitement d image et éclipse de Soleil Kléber, PCSI1&3 014-015 I. Introduction 1/8 Optimisation, traitement d image et éclipse de Soleil Partie I Introduction Le 0 mars 015 a eu lieu en France une éclipse partielle de Soleil qu il était particulièrement

Plus en détail