Cours d Informatique en MPSI. Philippe GAILLARD et Vincent BAYLE Lycée Pierre de Fermat

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

Download "Cours d Informatique en MPSI. Philippe GAILLARD et Vincent BAYLE Lycée Pierre de Fermat"

Transcription

1 Cours d Informatique en MPSI Philippe GAILLARD et Vincent BAYLE Lycée Pierre de Fermat Année scolaire

2 2

3 3 Table des matières 1 Introduction à la programmation structurée Conseils méthodologiques Notion de variable Définition d une variable Affectation d une variable Présentation des principaux types de données en Python Données numériques Type booléen Type chaîne de caractères Type liste Type set Conversion de type Structures de contrôle Tests (ou branchements) Boucles Interaction d un programme avec un utilisateur Fonction d écriture : print() Fonction de lecture : input() Fonctions Correction des exercices du chapitre

4 4 TABLE DES MATIÈRES

5 5 Chapitre 1 Introduction à la programmation structurée Sommaire 1.1 Conseils méthodologiques Notion de variable Définition d une variable Affectation d une variable Présentation des principaux types de données en Python Données numériques Type booléen Type chaîne de caractères Type liste Type set Conversion de type Structures de contrôle Tests (ou branchements) Boucles Interaction d un programme avec un utilisateur Fonction d écriture : print() Fonction de lecture : input() Fonctions Correction des exercices du chapitre Conseils méthodologiques Proposons quelques étapes clés dans la résolution d un problème d algorithmique. Analyser le problème à résoudre (lire attentivement l énoncé). Déterminer les variables nécessaires à sa résolution : distinguer en particulier les paramètres d entrée, les variables internes à l algorithme qui sont créées lors de son exécution et qui n ont plus aucun intérêt ensuite, les valeurs que doit retourner l algorithme. Élaborer un premier schéma d algorithme. Structure générale d un algorithme en pseudo-code Un algorithme clairement rédigé se code ensuite très facilement, quel que soit le langage de programmation choisi. Dans l ouvrage intitulé Structure and Interpretation of Computer Programs, on peut lire les programmes doivent être écrits pour être lus par des gens et accidentellement exécutés par des machines. Il est indispensable d écrire du code en respectant les règles d usage pour le rendre le plus lisible possible, d une part parce qu il est ainsi plus facile de se relire et d autre part, parce qu il est ainsi plus facile d être relu (par un correcteur qui mettra une note en fonction de sa compréhension du code, par un client qui achètera votre programme en fonction de la qualité du code a être adaptable

6 6 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Paramètres d entrée :... # on précisera le type des variables d entrée Variables locales : # instructions successives à effectuer... Renvoyer... # les variables locales, seront, dans ce type d écriture, # les variables utilisées uniquement par l algorithme considéré # on précisera leur type # valeur finale renvoyée par l algorithme et réutilisable par un autre programmeur, par un autre programmeur qui aura pour tâche de faire fonctionner ensemble les programmes rédigés par différents auteurs,...) Règles pour faciliter la compréhension d un programme. Choisir des noms de variables (resp. de fonctions) explicites en lien avec le rôle ou le contenu des variables (resp. des fonctions). Commenter les différentes étapes du programme (utilisation du caractère # en Python : lors de l interprétation, tous les caractères situés sur la même ligne et à gauche d un caractère # sont ignorés) Documenter les fonctions (en donnant, entre autre, le type des paramètres d entrée, le type de la valeur renvoyée par la fonction,... ). Règles de bonne présentation d un programme en Python (pour faciliter la lecture et la relecture). Placer un espace après une virgule, un point virgule, deux points. Ne pas placer d espace avant une virgule, un point virgule, deux points. Placer un espace de chaque côté d un opérateur. Ne pas placer d espace entre le nom d une fonction et sa liste d arguments. Indenter, conformément à la syntaxe de Python, les instructions successives. 1.2 Notion de variable Définition d une variable L essentiel du travail effectué par un programme consiste à manipuler des données. Ces données, bien que d origines très diverses, sont numérisées et se ramènent toujours, dans la mémoire d un ordinateur, à une suite finie de nombres binaires. Pour accéder aux données et pour spécifier leur nature, un programme informatique utilise des variables de différents types, quel que soit le langage dans lequel il est rédigé. Définition Une variable est une zone de la mémoire dans laquelle une valeur est stockée. Aux yeux du programmeur, cette variable est définie par un nom, son nom, tandis que pour l ordinateur, elle est définie par une adresse. Une variable est une référence désignant une adresse mémoire, c est à dire l emplacement précis de la mémoire vive dans lequel est stokée la valeur de la variable. De plus, afin de sélectionner l ensemble des valeurs possibles pour une variable, on lui attribue un type qui renseigne le langage sur la nature des contenus autorisés et donc sur les opérations usuelles qui pourront être effectuées ou pas avec cette variable. Le type peut être, par exemple, nombre entier, nombre réel, chaîne de caractères,... (voir le paragraphe 1.3) Ainsi, une variable informatique var est caractérisée par 1. son nom (pour l utilisateur) qui est var, l adresse à laquelle elle renvoie pour l ordinateur (donnée en Python par l instruction id(var)),

7 1.2. Notion de variable 7 2. son type, auquel on accède en Python avec la fonction type(var), 3. sa valeur, à laquelle on accède (ou on réfère) dans un programme en écrivant var, à savoir le nom de la variable. 1 >>> var = "Python c est bon" 2 >>> id(var) # adresse memoire >>> type(var) # type 5 <class str > 6 >>> var # valeur 7 "Python c est bon" Remarque Nous utiliserons, pour nommer des variables des suites de caractères non accentués, écrits avec des lettres minuscules, des chiffres et le caractère souligné, en évitant soigneusement les mots réservés qui ont un sens pour le langage (and, as, assert, break,...) 1 >>> and = 1 2 SyntaxError: invalid syntax 3 >>> break = 10 4 SyntaxError: invalid syntax 5 >>> nom_var = 12 6 >>> nom_var 7 12 Attention Python est sensible à la casse ce qui signifie que les caractères majuscules et minuscules sont distingués. Par exemple, Var, VAR, var désignent trois variables différentes. Enfin, attention, un nom de variable ne peut pas commencer par un chiffre : 1 >>> _var = ; 2 >>> _var >>> 4var = -1 5 SyntaxError: invalid syntax Affectation d une variable Pseudo-code Affectation de la variable var à la valeur 2013 Code Python var 2013 var = 2013 Remarques En Python, la déclaration d une variable (annonce de son existence en donnant son nom et son type) et son initialisation (c est à dire sa première affectation) sont réalisées en même temps par l opérateur d affectation = (l opérateur d affectation en Python est le signe =, mais attention, ce n est en aucun cas une égalité au sens mathématique!). 1 >>> x 2 Traceback (most recent call last): 3 File "<pyshell#413>", line 1, in <module> 4 x 5 NameError: name x is not defined 6 >>> x = >>> x

8 8 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 2. Enfin, observons l exemple suivant : 1 >>> var = [1,0,2] 2 >>> type(var) 3 <class list > 4 >>> nb = >>> type(nb) 6 <class float > 7 >>> nb1 = 1.5 ; nb2 = 7 8 >>> type(nb1) ; type(nb2) 9 <class float > 10 <class int > En Python, lors de la déclaration d une variable, bien que le programmeur ne spécifie pas le type de la variable, l exécution de l affectation attribue automatiquement et immédiatement le type qui lui semble le plus pertinent compte tenu de la valeur affectée à la variable (voir aussi le commentaire 5 à propos de l exemple 1.6). On dit que le typage des variables de Python est un typage dynamique (par opposition au typage statique des langage C++ et java par exemple, langages dans lesquels la déclaration d une variable se fait en annonçant son nom et son type, et c est après cette étape seulement qu il devient possible de lui assigner une valeur qui doit être compatible avec le type déclaré) L exemple suivant illustre la capacité d adaptation de Python : 1 >>> a = 9 ; type(a) 2 <class int > 3 >>> b, c = a/2, a/3 ; type(b) ; type(c) # / est l operateur de division 4 <class float > # sur les donnees numeriques 5 <class float > 3. La modification du contenu d une variable se fait en effectuant une nouvelle affectation de cette variable. Du point de vue de la rigueur informatique, cette nouvelle affectation doit être cohérente le type de la variable considérée. Nous nous efforcerons de respecter cette règle. Toutefois, puisque Python est un langage faiblement typé, il autorise un changement de type lors d une nouvelle affectation (quant à nous, nous préfèrerons changer de nom de variable pour éviter de jongler avec des variables dont le type change au cours de l exécution d un programme) : 1 >>> a = 3.0 ; type(a) 2 <class float > 3 >>> a = mpsi1 ; type(a) 4 <class str > 4. Il faut toujours déclarer (par l affectation en Python) une variable avant de l utiliser : 1 >>> a = b Traceback (most recent call last): 3 File "<pyshell#591>", line 1, in <module> 4 a = b NameError: name b is not defined 6 >>> b = -4 7 >>> a 8 Traceback (most recent call last): 9 File "<pyshell#593>", line 1, in <module> 10 a 11 NameError: name a is not defined 12 >>> a = b >>> a 14-1 Exercice Échange du contenu de deux variables. Dans l interpréteur Python, on suppose écrites les instructions suivantes :

9 1.2. Notion de variable 9 1 >>> a = [1, 1, 1] 2 >>> b = [0, 1] 1. Remplir le tableau suivant : instructions successives valeur de la variable a valeur de la variable b >>> a = [1, 1, 1] >>> b = [0, 1] >>> b = a >>> a = b 2. Proposer une suite d instructions permettant d aboutir à l échange du contenu des deux variables a et b. Exercice Permutation circulaire du contenu de trois variables. Dans l interpréteur Python, on suppose écrites les instructions suivantes : 1 >>> a = 11 2 >>> b = c++ 3 >>> c = Python Proposer une suite d instructions permettant d aboutir à 1 >>> a 2 c++ 3 >>> b 4 Python 5 >>> c 6 11 Le langage Python possède deux variantes autour de l opérateur d affectation, l une permet d affecter la même valeur à plusieurs variables, l autre permet d affecter plusieurs variables en n utilisant qu une seule fois l opérateur d affectation. Affectation simple 1 >>> var = 1 2 >>> var 3 1 Affectation multiple 1 >>> var_x = var_y = 2 2 >>> var_x ; var_y Affectation parallèle 1 >>> var_x, var_y, var_z = 2, 5, 7 2 >>> var_x ; var_y >>> var_z 6 7 Exercice Retour sur les exercices d échange du contenu de plusieurs variables. Proposer des solutions particulièrement courtes pour résoudre les exercices et grâce aux différentes utilisations possibles de l opérateur d affectation en Python.

10 10 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 1.3 Présentation des principaux types de données en Python Données numériques Type nombre entier Définition Une variable est de type nombre entier, codé int (integer) en Python, si sa valeur est un entier relatif stocké en valeur exacte. Remarque Une variable de type int, nombre entier, est définie par l affectation d une suite de chiffres ne commençant pas par 0 : 1 >>> nb1 = >>> type(nb1) 3 <class int > 4 >>> nb2 = SyntaxError: invalid token # Python refuse l affectation!!! surprenant? 6 >>> type(0221) 7 SyntaxError: invalid token # en fait 0221 n a pas de type, ce qui explique 8 # le refus d affectation precedent Opérations usuelles sur les nombres entiers opérateurs d addition + et de soustraction - 1 >>> p = 121 ; q = 12 2 >>> d = q - p ; d ; type(d) <class int > 5 >>> s = q + p ; s ;type(s) <class int > opérateur de multiplication : * 1 >>> p = 8 ; q = 3 2 >>> prod = p * q 3 >>> prod ; type(prod) <class int > opérateur reste de la division euclidienne de p par q : % 1 >>> p = 15 2 >>> p % opérateur quotient de la division euclidienne de p par q : // (noter la différence avec l opérateur / qui renvoie un entier de type float ) 1 >>> p = 15 2 >>> p // >>> p = 333 ; q1 = 333 // 11 ; q2 = 333 / 11 5 >>> q1 ; type(q1) <class int > 8 >>> q2 ; type(q2) <class float > Remarque Voici une réaction rassurante :

11 1.3. Présentation des principaux types de données en Python 11 1 >>> 1/0 2 Traceback (most recent call last): 3 File "<pyshell#63>", line 1, in <module> 4 1/0 5 ZeroDivisionError: division by zero Type nombre à virgule flottante Définition Une variable est de type nombre à virgule flottante, codé float en Python, si sa valeur est un nombre réel stocké en valeur approchée sous la forme d un triplet (s,m,e) où s désigne le signe, m est la mantisse et e désigne l exposant. Un tel triplet code le nombre réel s m b e en notation scientifique où b est la base de représentation, à savoir 2. En faisant varier e, on fait flotter la virgule décimale. Nous reviendrons ultérieurement sur la façon dont sont codés les nombres réels. Remarque Contrairement aux nombres de type int, lors de la définition d un nombre de type float, si des zéros inutiles précèdent son écriture décimale, Python accepte l affectation et les supprime automatiquement par la suite. 1 >>> # valeur definie >>> type( ) 4 <class float > 5 >>> a = # valeur definie 6 >>> type(a) 7 <class float > 8 >>> # valeur non definie 9 SyntaxError: invalid token

12 12 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Opérations usuelles sur les nombres réels opérateur de comparaison stricte : < (l expression obtenue est booléenne) 1 >>> a = 1.5 ; b = >>> a < b ; type(a<b) 3 True 4 <class bool > opérateur de comparaison large : <= (l expression obtenue est booléenne) 1 >>> a = 1.5 ; b = >>> a <= b ; type(a<b) 3 False 4 <class bool > opérateur de division : / 1 >>> a = 1.5 ; b = >>> c = a/b 3 >>> c ; type(c) <class float > opérateurs d addition + et de soustraction - 1 >>> a = 1.5 ; b = >>> a + b ; a - b opérateur de multiplication : * 1 >>> a = 1.5 ; b = >>> a * b opérateur puissance : ** Les variables a et b étant toutes les deux de type int ou toutes les deux detypefloatmaisaveclacondition supplémentaire a> 0, a puissance b peut se calculer en écrivant soit a**b soit pow(a,b). 1 >>> 3** >>> 0**0 # convention a retenir >>> 0.1**(-3) >>> 3** >>> pow(3,2) >>> pow(2,3) 12 8 # importance de l ordre des arguments 13 >>> 1.732** >>> (-2.1)** >>> 1.732**(-2.2) Remarques Lorsque l opérateur +, -, *, / ou **, agissant entre deux variables numériques de type float se trouve évalué entre une variable de type float et l autre de type int, il renvoie le résultat attendu de type float en convertissant automatiquement la variable de type int en la valeur correspondante de type float. 1 >>> p = 4 ; type(p) 2 <class int > 3 >>> a = 3.14 ; type(a) 4 <class float > 5 >>> prod = a * p ; quot = a / p 6 >>> prod ; type(prod)

13 1.3. Présentation des principaux types de données en Python 13 8 <class float > 9 >>> quot ; type(quot) <class float > Même si le résultat d une opération sur des variables de type float est un entier, le type de ce résultat est float : 1 >>> a = 1.5 ; 2 >>> b = 2 * a 3 >>> b ; type(b) <class float > 2. On peut tester une puissance non entière d un nombre strictement négatif (objet mathématique non défini a priori) : 1 >>> a = (-2)**0.5 2 >>> print(a) 3 ( e j) 4 >>> type(a) 5 <class complex > Il semblerait que ce soit une valeur approchée du nombre complexe i 2. Pourquoi? est-ce légitime? pourquoi ne pas avoir choisi i 2? Type booléen Définition Une variable est de type booléen, codé bool (boolean) en Python, si elle ne peut prendre que deux valeurs, True (vrai) ou False (faux). 1 >>> var = True 2 >>> type(var) 3 <class bool > 4 >>> var 5 True

14 14 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Opérateurs de construction de variables booléennes opérateur d égalité : == (entre deux variables n ayant pas nécessairement le même type) 1 >>> b = 1 2 >>> a = (b == 3) 3 >>> a 4 False 5 >>> ch1 = "Python" ; ch2 = "python" ; ch3 = python 6 >>> a = (ch1 == ch2) ; a 7 False 8 >>> b = (ch1 == 2013) ; b 9 False 10 >>> c = (ch2 == ch3) ; c 11 True # voir les differentes facons de declarer 12 # une chaine de caracteres opérateur différent de :!= (entre deux variables n ayant pas nécessairement le même type) 1 >>> b = rh ; c = dh 2 >>> a = ( b!= c) 3 >>> a 4 True 5 >>> e = (a!= [1,0]) ; e 6 True fonction de négation : not() (les variables booléennes a!= b et not(a == b) ont la même valeur) 1 >>> a = True ; b = False 2 >>> not(a) 3 False 4 >>> a == not(b) 5 SyntaxError: invalid syntax 6 >>> a == ( not(b) ) #importance des parentheses! 7 True opérateurs de comparaison : < et <= (entre variables de type int ou float, Python effectue automatiquement la conversion pour répondre au test) 1 >>> a = 2.7 ; b = >>> type(a <= b) 3 <class bool > 4 >>> a <= b 5 True 6 >>> a = 1.5 ; b = 2 # a et b n ont pas le meme type 7 >>> type(a <= b) ; a <= b 8 <class bool > 9 True Opérations logiques sur les variables booléennes opérateur et : and 1 >>> b = 3 ; c = 4 2 >>> a = ( (b == 3) and (c - b) == 1) ; a 3 True 4 >>> d = ( (b == 4) and (b - c) == 1) ; d 5 False opérateur ou : or 1 >>> b = 3 ; c = 4 2 >>> a = ( (b == 4) or (c - b) == 1) ; a 3 True 4 >>> d = ( (b == 4) or (b - c) == 1) ; d 5 False Type chaîne de caractères Définition

15 1.3. Présentation des principaux types de données en Python 15 Une variable est de type chaîne de caractères, codé str (string) en Python, si c est une collection ordonnée de caractères non modifiables délimitée soit par des apostrophes, soit par des triples apostrophes, soit par des guillemets, soit par des triples guillemets. 1 >>> ch0 = Python ; ch1 = c est bon! ; ch2 = "l info" ; ch3 = """c est beau!""" 2 >>> type(ch0) ; type(ch1) ; type(ch2) ; type(ch3) 3 <class str > 4 <class str > 5 <class str > 6 <class str > 7 >>> ch0 ; ch1 ; ch2 ; ch3 8 Python 9 "c est bon!" 10 "l info" 11 "c est beau!" Remarques Les apostrophes ou les triples apostrophes ou les guillemets ou les triples guillemets sont des délimiteurs, ils ne font pas partie de la chaîne de caractères, leur présence permet au langage Python de reconnaître le type implicite (ici str ) de la variable que l utilisateur veut déclarer. 2. Dans la pratique, si la chaîne de caractères ne contient pas de guillemets (resp. pas d apostrophes), nous la délimiterons par des guillemets (resp. par des apostrophes). Nous réserverons les triples guillemets aux cas où la chaîne contiendrait à la fois des apostrophes et des guillemets. 3. On observera que l affichage d une chaîne de caractères dans l interpréteur de IDLE est entre apostrophes dès qu il n y a pas d apostrophes, entre guillemets s il y a au moins une apostrophe et pas de guillemets. Enfin, si la chaîne de caractères contient au moins une apostrophe et un guillement, l affichage se fait entre apostrophe et dans la chaîne, les apostrophes sont précédées du caractère d échappement \. 1 >>> ch4 = "on met des guillemets s il y a des apostrophes" 2 >>> ch4 3 "on met des guillemets s il y a des apostrophes" 4 >>> ch5 = """il faut des "triples guillemets" s il y a guillemets et 5 apostrophes""" 6 >>> ch5 7 il faut des "triples guillemets" s\ il y a guillemets et apostrophes Pour déclarer la chaîne de caractères vide, il suffit de saisir deux apostrophes consécutivement : 1 >>> ch = 2 >>> type(ch) ; len(ch) 3 <class str > >>> ch2 = "" # autre moyen de definir la chaine vide 6 >>> ch == ch2 7 True 8 >>> ch3 = str() # autre moyen de definir la chaine vide 9 >>> ch >>> ch3 = ch 12 >>> ch3 == ch 13 True Opérations élémentaires sur les chaînes de caractères Puisqu une chaîne de caractères est une collection, si la variable ch est de type str, on dispose des opérations suivantes :

16 16 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE x in ch : expression booléenne qui vaut True si x appartient à la liste ch et False sinon, 1 >>> ch = "Python c est bon" 2 >>> P in ch 3 True 4 >>> r in ch 5 False len(ch) : nombre de caractères de la chîne ch, 1 >>> ch = "Python c est bon" 2 >>> len(ch) 3 16 l objet ch est itérable via l instruction for x in ch, 1 >>> ch = "MPSI-1" 2 >>> for x in ch: 3 print(x) 4 M 5 P 6 S 7 I Opérations usuelles sur les chaînes de caractères : Opération Exemple opérateur de concaténation : + 1 >>> ch1 = demain, ; ch2 = nous travaillerons 2 >>> ch1 + ch2 3 demain,nous travaillerons 4 >>> ch1 + + ch2 5 demain, nous travaillerons opérateur de duplication : * (entre un nombre entier de type int et une chaîne de type str, si l entier est négatif ou nul, le résultat est la chaîne vide) 1 >>> ch = ab 2 >>> 5*ch 3 ababababab 4 >>> ch*3 5 ababab 6 >>> 5.2*ch 7 Traceback (most recent call last): 8 File "<pyshell#355>", line 1, in <module> 9 5.2*ch 10 TypeError: can t multiply sequence by non-int 11 of type float 12 >>> ch * >>> (-3) * ch 15 Une chaîne de caractères est une collection ordonnée ce qui permet de sélectionner un terme précis d une chaîne de caractères : on peut accéder au i e caractère de la chaîne ch en saisissant ch[i] sous les conditions 0 i len(ch)-1 car les indices commencent à 0. 1 >>> ch = mpsi 2 >>> ch[0] 3 m 4 >>> ch[1] 5 p 6 >>> ch[2] 7 s

17 1.3. Présentation des principaux types de données en Python 17 8 >>> ch[3] 9 i 10 >>> ch[4] 11 Traceback (most recent call last): 12 File "<pyshell#93>", line 1, in <module> 13 ch[4] 14 IndexError: string index out of range 15 >>> ch[-1] # les indices negatifs entre -len(ch) et -1 permettent 16 i # aussi d acceder aux caracteres de la chaine ch 17 >>> ch[-2] 18 s 19 >>> ch[-3] 20 p 21 >>> ch[-4] 22 m 23 >>> ch[-5] 24 Traceback (most recent call last): 25 File "<pyshell#98>", line 1, in <module> 26 ch[-5] 27 IndexError: string index out of range Exercice Que valent ch[3], ch[6], ch[7], ch[8], ch[-2], ch[-4], ch[-5] si ch est la chaîne de caractères correspondant à la phrase : Python, c est trop bon!? Remarque Rappelons qu une chaîne de caractères est non modifiable (voir définition 1.3.3) : 1 >>> ch = mpsi 2 >>> ch[0] = p ; ch[1] = c # tentative de modif en pcsi 3 Traceback (most recent call last): 4 File "<pyshell#19>", line 1, in <module> 5 ch[0] = p ; ch[1] = c 6 TypeError: str object does not support item assignment # ouf! Type liste La commande range() La commande range() permet de créer des objets de type range listant une suite arithmétique d entiers. 1 >>> var = range(3) 2 >>> type(var) 3 <class range > 4 >>> for x in var: 5 print(x) Elle est très utile pour créer des listes constituées de suites arithmétiques d entiers, en particulier à l aide de la fonction de conversion list() qui permet de changer un objet de type range en liste : 1 >>> L = list(range(5)) 2 >>> L 3 [0, 1, 2, 3, 4] 4 >>> R = list(range(3,7)) 5 >>> R 6 [3, 4, 5, 6]

18 18 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE pour faire parcourir à l indice d une boucle for une suite arithmétique d entiers (voir la partie traitant de la structure de boucle). Définition Une variable est de type liste, codé list (list) en Python, si c est une collection ordonnée d éléments modifiables séparés par des virgules et délimitée par des crochets. Pour créer une liste, on peut procéder de deux manières différentes : 1. création d une liste par extension : on écrit des objets successifs (éventuellement hétérogènes) séparés par des virgules et entre crochets : 1 >>> L = [1, a, b, 0] 2 >>> type(l); L 3 <class list > 4 [1, a, b, 0] 2. création d une liste par intension : la syntaxe consiste à reproduire la définition mathématique de la liste à décrire, pour définir la liste L0 qui vaut [x+1 x [[0,2]] : 1 >>> L0 = [x + 1 for x in range(3)] 2 >>> L0 ; type(l0) 3 [1, 2, 3] 4 <class list > la liste L1 qui vaut [x 3 +1 x [[0,2]] puis la liste L2 définie par [x 2 x [t 3 +1 t [[0,2]]] : 1 >>> L1 = [x**3 + 1 for x in range(3)] 2 >>> L1 ; type(l1) 3 [1, 2, 9] 4 <class list > 5 >>> L2 = [x * x for x in L1] 6 >>> L2 ; type(l2) 7 [1, 4, 81] 8 <class list > onpeutaussi créer unelisteenintensionparitérationdelavariablexquiparcourtlescaractères de la chaîne ch : 1 >>> ch = "Python" 2 >>> L3 = [2*x for x in ch] 3 >>> L3; type(l3) 4 [ PP, yy, tt, hh, oo, nn ] 5 <class list > Voici deux façons de créer la liste vide : 1 >>> L_vide1 = [] 2 >>> L_vide2 = list() 3 >>> type(l_vide1) ; type(l_vide2) 4 <class list > 5 <class list > 6 >>> L_vide1 == L_vide2 7 True Puisqu une liste est une collection, si la variable L est de type list, on dispose des opérations suivantes : x in L : expression booléenne qui vaut True si x appartient à la liste L et False sinon, 1 >>> L = [1, 2, 3, a, b, c, 10 ] 2 >>> a in L 3 True 4 >>> 10 in L

19 1.3. Présentation des principaux types de données en Python 19 5 False 6 >>> 10 in L 7 True len(l) : nombre d éléments de la liste L, 1 >>> L = [1, 2, a, b, c ] 2 >>> len(l) >>> len([]) 5 0 l objet L est itérable via l instruction for x in L, 1 >>> L = [1, 2, 3, 4]; 2 >>> for x in L: 3 print(x*x) Opérations élémentaires sur les listes : Opération Exemple opérateur de concaténation: + (cas particulier : ajout d un élément) 1 >>> L = [1, a, 3, oui ] 2 >>> L1 = L + [1, 2, 3] 3 >>> print(l1) 4 [1, a, 3, oui, 1, 2, 3] 5 >>> L2 = L + [ non ] 6 >>> print(l2) 7 [1, a, 3, oui, non ] opérateur de duplication : * (entre un nombre entier de type int et une liste de type list, si l entier est négatif ou nul, le résultat est la liste vide) 1 >>> [1, 3] * 2 2 [1, 3, 1, 3] 3 >>> 3 * [1, 0, 0] 4 [1, 0, 0, 1, 0, 0, 1, 0, 0] 5 >>> (-3) * [1, 0, 0] 6 [] 7 >>> [1, 0, 0] * 0 8 [] Exercice Mise au carré des éléments d une liste. Écrireunefonctionliste au carre(l) qui prend en entrée une liste L d entiers et qui renvoie une liste de même taille dont chaque élément est le carré de l élément de même indice dans la liste d entrée. On pourra proposer deux solutions. Une liste est une collection ordonnée ce qui permet d extraire un terme précis de la liste : on peut accéder au i e élément de la liste L en saisissant L[i] sous les conditions 0 i len(l)-1 car les indices commencent à 0. 1 >>> L = [-2, 1, 2, 4, 0] 2 >>> L[0] >>> for i in range(len(l)): 5 print(l[i])

20 20 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 11 >>> L[5] 12 Traceback (most recent call last): 13 File "<pyshell#47>", line 1, in <module> 14 L[5] 15 IndexError: list index out of range 16 >>> L[-1] # les indices negatifs entre -len(l) et -1 permettent 17 0 # aussi d acceder aux caracteres de la liste L 18 >>> L[-5] >>> L[-6] 21 Traceback (most recent call last): 22 File "<pyshell#48>", line 1, in <module> 23 L[-6] 24 IndexError: list index out of range À la différence des chaînes de caractères qui sont des séquences d éléments ordonnés non modifiables, les éléments d une liste sont modifiables (voir définition 1.3.4), il suffit de leur donner une nouvelle affectation : 1 >>> L = [-2, 1, 2, 4, 0] 2 >>> L[0] = 10 3 >>> L[3] = 0 4 >>> L 5 [10, 1, 2, 0, 0] Type set Définition Un variable est de type ensemble, codé par set (set) en python, si sa valeur est une collection non ordonnée (ce n est donc pas une séquence comme les listes, les tuples,..., on ne peut donc pas accéder à l élément d indice i comme pour les séquences) d objets deux à deux distincts (pas de doublons) hashable. Pour créer un ensemble, on écrit une suite d objets (éventuellement hétérogènes) séparés par des virgules et entre accolades : 1 >>> ensemble = {1, 2, a, ab, 1} 2 >>> print(ensemble) 3 { a, 1, 2, ab } 4 >>> type(ensemble) 5 <class set > Attention à la subtilité suivante, pour affecter la valeur ensemble vide à une variable, il faut utiliser l instruction = set() et non l instruction = {} : 1 >>> ens_vide = set() 2 >>> print(ensemble_vide) 3 set() 4 >>> type(ens_vide) 5 <class set > # ensemble 6 >>> len(ens_vide) 7 0 # ensemble vide 8 >>> nouvel_objet = {} 9 >>> type(nouvel_objet) 10 <class dict > # dictionnaire! 11 >>> len(nouvel_objet) 12 0 # c est un dictionnaire sans element, donc vide! Puisqu un ensemble est une collection, si la variable ensemble est de type set, on dispose des opérations suivantes :

21 1.3. Présentation des principaux types de données en Python 21 x in ensemble : expression booléen qui vaut True si x appartient à l ensemble ensemble et False sinon, 1 >>> ensemble = {1, 2, 5, a, z } 2 >>> type(ensemble) 3 <class set > 4 >>> 4 in ensemble 5 False 6 >>> 2 in ensemble 7 True 8 >>> z in ensemble 9 Traceback (most recent call last): 10 File "<pyshell#11>", line 1, in <module> 11 z in ensemble 12 NameError: name z is not defined 13 >>> "z" in ensemble 14 True len(ensemble) : cardinal de l ensemble, 1 >>> ensemble = {1, 2, 5, a, z } 2 >>> type(ensemble) 3 <class set > 4 >>> len(ensemble) >>> ens_vide = {} # ensemble vide 7 >>> len(ens_vide) 8 0 l objet ensemble est itérable via l instruction for x in ensemble. 1 >>> ensemble = {1, 2, a, z } 2 >>> for x in ensemble: 3 print(x + 1) Traceback (most recent call last): 7 File "<pyshell#125>", line 2, in <module> 8 print(x + 1) 9 TypeError: Can t convert int object to str implicitly >>> ens = { m, t, s } 12 >>> for x in ens: 13 print(x + a ) 14 sa 15 ma 16 ta Opérations ensemblistes usuelles :

22 22 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Opération ensembliste opérateur de réunion noté en mathématique et codé par Exemple 1 >>> A = {1, 2, a, b } 2 >>> B = {1, 3, ab, b } 3 >>> union = A B ; type(union) 4 <class set > 5 >>> print(union) 6 { a, 1, 2, b, 3, ab } opérateur d intersection noté en mathématiques et codé par & 1 >>> A = {1, 2, a, b } 2 >>> B = {1, 3, ab, b } 3 >>> intersection = A & B 4 >>> type(intersection) 5 <class set > 6 >>> print(intersection) 7 {1, b } opérateur différence noté \ en mathématique et codé par - 1 >>> A = {1, 2, a, b } 2 >>> B = {1, 3, ab, b } 3 >>> A - B 4 { a, 2} 5 >>> B - A 6 {3, ab } opérateur différence symétrique noté en mathématique et codé parˆ On vérifie que (A\B) (B\A) = A B. 1 >>> A = {1, 2, a, b } 2 >>> B = {1, 3, ab, b } 3 >>> A ^ B 4 { a, 2, ab, 3} 5 >>> (A - B) (B - A) 6 { a, 2, 3, ab } Exercice Prévoir l affichage qui suit l exécution des instructions suivantes : 1. 1 >>> A = {1, 2} ; B = {3, 2, 1} 2 >>> A & B 3 >>> A B 4 >>> for x in range(3): 5 print(x in B) 2. 1 >>> A = {0, 1, 3} ; 2 >>> for x in A: 3 print(a & {x+1, x*x, x+2}) 3. 1 >>> E = {(1, 2), (1, 1), (2, 1)} ; 2 >>> len(e) 3 >>> for x in E: 4 print(x[0] + x[1]) 4. 1 >>> A = set() ; ens = { a, b, 4}; 2 >>> for x in ens: 3 A = A {2 * x} 4 >>> print(a) Exercice Mise au carré des éléments d un ensemble fini. Écrire une fonction ensemble au carre(e) qui prend en entrée un ensemble E de type set constitué d entiers et qui renvoie l ensemble des carrés des éléments de E. On pourra adapter la méthode de l exercice L ensemble renvoyé par la fonction a-t-il le même cardinal que E?

23 1.3. Présentation des principaux types de données en Python 23 Exercice Description du produit cartésien de deux ensembles finis. Écrire une fonction produit cartesien(e,f) qui prend en paramètres les ensembles finis E et F et qui renvoie l ensemble E F.

24 24 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Conversion de type Analysons les exemples suivants qui illustrent quelques subtilités liées à l importance de la notion de type d une variable. Exemples Un opérateur impose, pour être défini, certaines restrictions sur les types de ses arguments : 1 >>> a = "demain" 2 >>> b = 3 3 >>> a % b 4 Traceback (most recent call last): 5 File "<pyshell#53>", line 1, in <module> 6 a % b 7 TypeError: not all arguments converted during string formatting 2. 1 >>> a = 17 # a est de type str 2 >>> b = 3 # b est de type int 3 >>> a * b >>> b * a >>> a ** b 8 Traceback (most recent call last): 9 File "<pyshell#62>", line 1, in <module> 10 a ** b 11 TypeError: unsupported operand type(s) for ** or pow(): str and int 3. 1 >>> a = demain 2 >>> print(a + 1) 3 Traceback (most recent call last): 4 File "<pyshell#68>", line 1, in <module> 5 print( a + 1 ) 6 TypeError: Can t convert int object to str implicitly 7 >>> print( a + str(1) ) 8 demain1 Présentons maintenant quelques fonctions de conversion de type qu il pourra être utile de manipuler. Conversion int / float La fonction int( ) appliquée à un nombre en virgule flottante r de type float renvoie l entier de type int le plus proche de r situé entre 0 et r (c est donc la partie entière si r 0 et la partie entière plus un si r < 0). 1 >>> r1 = >>> int(r1) >>> r2 = # la partie enti\ ere de est -4 5 >>> int(r2) >>> int(-0.01) # la partie enti\ ere de est >>> int(0) >>> int(0.01) 12 0 La fonction float( ) appliquée à un nombre entier nb de type int renvoie le nombre en virgule flottante float de mme valeur que nb.

25 1.3. Présentation des principaux types de données en Python 25 1 >>> nb1 = >>> float(nb1) >>> nb2 = >>> float(nb2) Conversion str / int ou float La fonction int( ) (resp. float()) appliquée à une chaîne de caractères constituée uniquement de chiffres (resp. constituée de chiffres et éventuellement une fois du caractère.) renvoie l entier de type int (resp. le nombre réel de type float ) représenté par cette chaîne. 1 >>> ch1 = ; ch2 = >>> type(ch1) ; type(ch2) 3 <class str > 4 <class str > 5 >>> n1 = int(ch1) ; n2 = float(ch1) ; n3 = float(ch2) 6 >>> n1 ; type(n1) # noter la disparition du zero inutile! 8 <class int > 9 >>> n2 ; type(n2) <class float > 12 >>> n3 ; type(n3) <class float > 15 >>> n4 = int(ch2) # operation impossible ch2 est incompatible avec int() 16 Traceback (most recent call last): 17 File "<pyshell#709>", line 1, in <module> 18 n4 = int(ch2) 19 ValueError: invalid literal for int() with base 10: >>> ch3 = ; n5 = float(ch3) # ch3 est incompatible avec float() 21 Traceback (most recent call last): 22 File "<pyshell#710>", line 1, in <module> 23 ch3 = ; n5 = float(ch3) 24 ValueError: could not convert string to float: La fonction str() appliquée à une donnée numérique de type int( ) ou float()) renvoie la chaîne de caractères de type str constituée des chiffres (et éventuellement du caractère.) qui constitue le nombre considéré. 1 >>> a1 = >>> ch1 = str(a1) ; ch >>> ch1 == "2013" 5 True 6 >>> ch2 = str(1.732) ; ch >>> ch2 == """1.732""" 9 True 10 >>> ch3 = str(0312) # curieux, voyons le type de SyntaxError: invalid token 12 >>> type(0312) # tout s explique, O312 n est pas de type int 13 SyntaxError: invalid token Conversion list / str La fonction list( ) appliquée à une chaîne de caractères renvoie la liste des caractères apparaissant dans la chaîne lue de gauche à droite : 1 >>> ch = "J aime Python"; type(ch) 2 <class str > 3 >>> L = list(ch); type(l) 4 <class list >

26 26 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 5 >>> L 6 [ J, " ", a, i, m, e,, P, y, t, h, o, n ] Attention, les apostrophes autour des caractères de la chaîne regroupés dans la liste L ne font pas partie des éléments de la liste L, leur présence permet de préciser le type des éléments de L. 1 >>> ch = "J aime Python"; L = list(ch); 2 >>> L 3 [ J, " ", a, i, m, e,, P, y, t, h, o, n ] 4 >>> type(l[0]) 5 <class str > La fonction str( ) appliquée à une liste renvoie la liste des caractères apparaissant dans la présentation de la liste en extension : 1 >>> L = [0, oui,3]; type(l) 2 <class list > 3 >>> ch = str(l); type(ch) 4 <class str > 5 >>> print(ch) 6 [0, oui, 3] 7 >>> len(ch) >>> ch[0] ; ch[1] ; ch[2] ; ch[12] 10 [ , 13 ] Conversion list / set. La fonction list( ) appliquée à un ensemble de type set renvoie une liste contenant tous les éléments de l ensemble auquel elle a été appliquée (on ne sait rien a priori de l ordre des éléments dans cette liste puisqu un ensemble n est pas ordonné). 1 >>> ens = {1, aa,2}; L = list(ens) 2 >>> type(l); print(l) 3 <class list > 4 [ aa, 1, 2] La fonction set( ) appliquée à une liste renvoie un ensemble de type set contenant un représentant de chacun des éléments apparaissant dans la liste considérée. 1 >>> L = [1,2,3, a,1]; type(l) 2 <class list > 3 >>> ens = set(l); print(ens); type(ens) 4 { a, 1, 2, 3} 5 <class set > Exercice Prévoir l affichage qui apparaît à la suite de l exécution des instructions suivantes : 1. 1 >>> L = [ L," ", apprentissage,[1,2]]; len(l) 2 >>> type(l[0]) ; type(l[2]) ; type(l[3]) 3 >>> print(l[0]) ; type(l[0]) ; type(l) 4 >>> ch = str(l) ; type(ch) ; len(ch) 5 >>> ch[0]; ch[1]; ch[2]; ch[3]; ch[4]; ch[5] 6 >>> ch[32]; ch[33]; ch[34] 2. 1 >>> L = [3, a, 0, a, 1]; ens = set(l); len(ens) 2 >>> ens = ens set(range(5)); L = list(ens); L Exercice Occurrences d un chiffre dans l écriture décimale d un nombre.

27 1.3. Présentation des principaux types de données en Python Écrire un algorithme puis une fonction occurrences(c,nb) qui cherche le nombre de fois qu apparaît le chiffre c dans l écriture décimale de l entier nb (que l on suppose donné par son écriture décimale) 2. En déduire une fonction occurrencemax(nb) qui renvoie le/un des chiffre(s) de l entier nb qui a/ont l occurrence la plus élevée dans l écriture décimale de l entier nb ainsi que la valeur de cette occurrence maximale.

28 28 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 1.4 Structures de contrôle Remarques préliminaires communes aux tests et aux boucles. 1. On prendra soin de respecter l indentation tant dans l écriture d un pseudo-code que dans la rédaction d un script en Python. Ceci est d autant plus important que dans le langage Python, l indentation est obligatoire si l on veut que les blocs d instructions soient convenablement interprétés. En fait c est le respect de l indentation des blocs qui permet de s affranchir, en Python, des instructions fin de test si, fin de boucle pour et fin de boucle tant que, ce qui rend le langage Python plus simple et plus léger que le pseudo-code. 2. condition est toujours une variable booléenne, ce qui signifie qu elle ne peut prendre que deux valeurs, True ou False. 3. Si condition est construite à partir de plusieurs autres conditions condition 1,..., condition n avecdesconnecteurslogiquesusuels(et,ou,...),ilsuffitd utiliserlasyntaxedepythonpourcoder l expression de la même variable booléenne à partir des variables condition 1,..., condition n Tests (ou branchements) Pseudo-code si condition alors instruction 1 instruction 2... instruction n fin du test si Test si... alors... Code Python if condition: instruction 1 instruction 2... instruction n Pseudo-code si condition alors instruction 1... instruction n sinon instruction n+1... instruction n+p fin du test si Test si... alors... sinon... Code Python if condition: instruction 1... instruction n else: instruction n+1... instruction n+p

29 1.4. Structures de contrôle 29 Pseudo-code si condition 1 alors instruction 1,1... instruction 1,n1 sinon et si condition 2 alors instruction 2,1... instruction 2,n2 sinon et si... alors... sinon et si condition p alors instruction p,1... instruction p,np sinon instruction p+1,1... instruction p+1,np+1 fin du test si Test si... alors... sinon et si... alors Code Python if condition 1 : instruction 1,1... instruction 1,n1 elif condition 2 : instruction 2,1... instruction 2,n2 elif elif condition p : instruction p,1... instruction p,np else: instruction p+1,1... instruction p+1,np+1 Voir l exemple 1 pour une utilisation de cette structure. Remarque Dans la syntaxe du language Python, il n y a pas d espace entre les deux points et la condition Boucles Boucle pour... (Première approche de la boucle pour, il y en aura une seconde, dans un cours ultérieur, spécifique au langage Python et à la notion d objet itérable...) Pseudo-code Boucle pour... Code Python pour indice prenant toutes les valeurs entières de indice debut à indice fin faire instruction 1 instruction 2... instruction n fin de boucle pour for indice in range(ind debut,indice fin+1): instruction 1 instruction 2... instruction n Dans cette description, indice est une variable qui est de type int à savoir entier relatif. Cette variable d itération est automatiquement incrémentée à chaque tour de boucle.

30 30 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE Pseudo-code tant que condition faire instruction 1 instruction 2... instruction n fin de boucle tant que Boucle tant que... faire... Code Python while condition: instruction 1 instruction 2... instruction n Remarque Dans le bloc d instructions délimité par une boucle tant que... faire..., il est indispensable de vérifier que la valeur de la variable condition évolue au cours des itérations et qu elle devient nécessairement False après un nombre fini de tours de boucle, sinon, le programme entre dans une boucle infinie et n en sortira jamais sans aide extérieure...

31 1.5. Interaction d un programme avec un utilisateur Interaction d un programme avec un utilisateur Présentons les instructions de lecture et d écriture qui permettent de communiquer avec la machine lors de l exécution d instructions dans l interpréteur ou lors de l interprétation d un programme rédigé au préalable dans un fichier texte dont l extension est.py Fonction d écriture : print() La fonction print(ch) correspond à l instruction d affichage du contenu de la variable ch sous réserve que son type soit str. Elle permet par exemple d imposer à un programme l affichage de certains calculs intermédiaires au cours de son exécution (ce qui peut s avéver particulièrement utile pour comprendre pourquoi le programme que l on a rédigé ne réalise pas les opérations souhaitées) Exemple Le script suivant permet d appeler la fonction somme chiffres() (elle n a pas d argument) qui demande à l utilisateur de donner un nombre entier dont elle affiche ensuite la somme des chiffres : 1 def somme_chiffres(): 2 ch = input("saisissez un nombre entier ") 3 s = 0 4 for x in ch: 5 s = s + int(x) 6 print("la somme des chiffres du nombre", int(ch),"vaut",s) 1 >>> somme_chiffres() 2 saisissez un nombre entier la somme des chiffres du nombre 1024 vaut 7 4 >>> somme_chiffres() 5 saisissez un nombre entier la somme des chiffres du nombre 2013 vaut Fonction de lecture : input() La fonction input() permet à un utilisateur de fournir des données à un programme en cours d exécution. Il est souhaitable de fournir un message à l utilisateur pour l informer explicitement de la nature de la donnée attendue par l intermédiaire d une chaîne de caractères qui se place en argument de la fonction input() Il est très important de se souvenir que la fonction input() interprète la donnée saisie par l utilisateur comme une chaîne de caractères, elle est donc de type str. Exercice Quelle saison? Écrire une fonction saison() qui demande à l utilisateur le mois et éventuellement le jour de l année en cours afin de lui indiquer la saison dans laquelle il se trouve. On prendra la définition suivante pour les saisons : printemps du 20/3 au 20/6 inclus, été du 21/6 au 21/9 inclus, automne du 22/9 au 20/12 inclus, hiver du 21/12 au 19/3 inclus. Exercice Présentation d une donnée médicale. Écrire une fonction masse corporelle() qui demande à l utilisateur sa taille, son poids puis qui calcule son indice de masse corporelle (noté IMC et égal au quotient du poids en kg par le carré de la taille en mètres) et qui lui renvoie l interprétation correspondant au tableau ci-dessous :

32 32 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE IMC (kg.m-2) Interprétation (d après l OMS) moins de 16,5 Dénutrition 16,5 à 18,5 Maigreur 18,5 à 25 Corpulence normale 25 à 30 Surpoids 30 à 35 Obésité modérée 35 à 40 Obésité sévère plus de 40 Obésité morbide ou massive Exercice Voici la fonction test majorite(date) qui demande à l utilisateur son année de naissance, son mois de naissance, son jour de naissance dans le mois puis qui lui dit s il est majeur au jour correspondant au paramètre d entrée date de la fonction (on pourra choisir le type list pour la variable date.

33 1.6. Fonctions Fonctions Python est particulièrement adapté à la programmation de fonctions. Définition En informatique, une fonction est un groupe d instructions regroupées sous un nom et exécutées à la demande (lors de l appel de la fonction). Une fonction Python dépend de paramètres dont les valeurs doivent être précisées lors de l appel de la fonction. Il est également possible, mais pas nécessaire, que la fonction renvoie une valeur lors de son appel. Exemple Observons puis commentons l exemple de la fonction réelle de deux variables réelles qui calcule l aire d un rectangle en fonction d un couple(l,l) corrrespondant respectivement à la largeur et à la longueur du rectangle. Le script Python de cette fonction est : 1 def aire_rectangle(l, L): 2 """fonction qui calcule l aire d un rectangle admettant pour largeur l 3 et pour longueur L""" 4 aire = l * L 5 return aire La fonction est appelée de la manière suivante dans l interpréteur Python : 1 >>> aire_rectangle(2, 3) >>> aire_rectangle(2.5, 1.1) Commentaires : 1. L algorithme correspondant en pseudo-code est le suivant : Algorithme 1 Fonction aire rectangle Paramètres d entrée : l, L : nombres réels. Variables locales : aire : nombre réel. 1 aire l * L 2 Renvoyer aire 2. Toute fonction débute par le mot clé def puis apparaît le nom de la fonction suivi des paramètres d entrée de la fonction entre parenthèse (s il n y a pas de paramètres d entrée, on écrit quand même les parenthèses, comme pour la fonction input() qui peut ne pas avoir de paramètre d entrée). 3. La chaîne de caractère qui apparaît entre tripes guillemets sur la ligne suivante (avec indentation) est la docstring de la fonction, il s agit d une chaîne de caractères facultative qui a pour but de donner différentes informations sur la fonction codée : ses paramètres, leur type, le calcul effectué par la fonction, le type du résultat renvoyé. Pour accéder à la docstring de la fonction aire rectangle depuis l interpréteur Python, il suffit d écrire la commande aire rectangle. doc 1 >>> aire_rectangle. doc 2 "fonction qui calcule l aire d un rectangle admettant pour largeur l 3 et pour longueur L" Il est aussi possible de taper

34 34 1. INTRODUCTION À LA PROGRAMMATION STRUCTURÉE 1 >>> help(aire_rectangle) 2 Help on function aire_rectangle in module main : 3 4 aire_rectangle(l, L) 5 fonction qui calcule l aire d un rectangle admettant pour largeur l 6 et pour longueur L 4. Lorsqu une fonction renvoie un résultat contenu dans la variable resultat, l instruction correspondante est return resultat 5. On observera que l auteur du programme d une fonction ne spécifie ni le type des paramètres d entrée, ni le type des variables locales, ni le type du résultat attendu, pour la la machine bien sûr (car, à l attention des il peut écrire ces informations en toutes lettres dans la docstring de la fonction)!!! Ceci illustre le fait que Python est un langage faiblement typé. Une conséquence de ce faible typage est que le calcul effectué par la fonction pourra être valide pour des paramètres d entrée de différents types. Observons en particulier le comportement étonnant suivant : 1 >>> aire_rectangle(-3, 2) >>> aire_rectangle(3, a ) 4 aaa 5 >>> aire_rectangle( oh, 2) 6 ohoh 7 >>> aire_rectangle(3, [1, 2]) 8 [1, 2, 1, 2, 1, 2] 9 >>> aire_rectangle([1, 2], -1) 10 [] 11 >>> aire_rectangle([1, 2], 4) 12 [1, 2, 1, 2, 1, 2, 1, 2] Exemples Écrivons une fonction Python pour coder la fonction réelle d une variable réelle fonctionsigne définie par 1 si x < 0, x R, f(x) = 0 si x = 0, 1 si x > 0. L algorithme de calcul de la valeur de cette fonction est le suivant : Algorithme 2 Évaluation de la fonction fonctionsigne Paramètres d entrée : x : nombre réel. Variables locales : valeur : nombre réel. 1 si x < 0 alors 2 valeur -1 3 sinon et si x = 0 alors 4 valeur 0 5 sinon 6 valeur 1 7 fin du test si 8 Renvoyer valeur Le script Python correspondant est : 1 def fonctionsigne(x): 2 """fonction qui prend en argument un nombre x de type int ou float

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

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

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

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

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

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en dé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

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

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

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

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

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

R, Bonnes pratiques. Christophe Genolini

R, Bonnes pratiques. Christophe Genolini R, Bonnes pratiques Christophe Genolini 1 Table des matières 1 Des bonnes pratiques, pour quoi faire? 4 2 Choix de l éditeur de texte 4 3 Architecture du code 6 4 Variables 10 5 Commentaires et documentation

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

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

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

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

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

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

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

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

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

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

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

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

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

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

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

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

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

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

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

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

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

Plus en détail

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

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

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

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

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

IFT2880 Organisation des ordinateurs et systèmes

IFT2880 Organisation des ordinateurs et systèmes Représentation des nombres flottants Notation exponentielle Représentations équivalentes dans la base 10 de 1,234 1 2 3, 4 0 0. 0 x 1 0-2 1 2, 3 4 0. 0 x 1 0-1 1, 2 3 4. 0 x 1 0 1 2 3. 4 x 1 0 1 2. 3 4

Plus en détail

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

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

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

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

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

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Cours de Probabilités et de Statistique

Cours de Probabilités et de Statistique Cours de Probabilités et de Statistique Licence 1ère année 2007/2008 Nicolas Prioux Université Paris-Est Cours de Proba-Stat 2 L1.2 Science-Éco Chapitre Notions de théorie des ensembles 1 1.1 Ensembles

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

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

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

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

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

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

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

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