theme2

20
THÈME 2 PREMIERS PAS SIO-2109 Z1 Introduction à la programmation 1 2011-01-20

Upload: salmazen

Post on 09-Jun-2015

298 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Theme2

1

THÈME 2PREMIERS PAS

SIO-2109 Z1 Introduction à la programmation

2011-01-20

Page 2: Theme2

2

MODES DE PROGRAMMATION PYTHON

Deux moyens de programmer

Calculatrice: communiquer les instructions via la console une à une

Programme/ script: ensemble d’instructions écrit dans un fichier compilé par Python

Page 3: Theme2

3

CALCULER AVEC PYTHONSaisir des opérations arithmétiquesExemples

Calculs simples

>>> 5 + 38

>>> 2 - 9-7

Division entière Vs. Division de réels

>>>20/36

>>> 20. / 36.666666666666667

>>> 20.5 / 36.833333333333333

>>> 20.5 // 36.0

>>> 8,7 / 5(8, 1.4)

>>> 7 / 51.4 

Priorité des opérateurs>>> 7 + 3 * 419

>>> (7 + 3) * 440

Page 4: Theme2

4

DONNÉES ET VARIABLES

Données: entrées par l’utilisateur du programme ou le programmeur via les périphériques d’entrée

Variables: conteneurs des données manipulées par le programme

Plusieurs variables de différents types Entier Réel Caractère / Chaîne de caractères Liste, …

Les noms des types dépend du langage de programmation

EntierPascal Java

Integer int

Page 5: Theme2

VARIABLES EN MÉMOIRE

5

@3

@5

@8

@7

Employee1

verre3

B2B_Server_Name

EntrepriseName

Verre2

@2 Verre3

Checked

@1

@4

Page 6: Theme2

6

NOMS DE VARIABLES (1/2)

Choisis par le programmeur à l’exception de mots réservés au langage

Règles de syntaxe: Lettre+Séquence de chiffres et de lettresPas d’espaces(blanc ou tabulation)Pas de caractères spéciaux

La casse est significativeStudent1 n’est pas la même variable que

student1.

Page 7: Theme2

7

NOMS DE VARIABLES (2/2)

Exemples

x, y, x2, y3, checked, IsChecked,Verre1, EntrepriseName, Employee_2, B2B_Server_Name, …

95X, @personName, Customer_N#2,… Génèrent des erreurs de syntaxe. Noms réservés à Pythonand as assert break class continue def

del elif else except false finally for

from global if import in is lambda

none nonlocal not or pass raise return

true try while with yield

Page 8: Theme2

8

AFFECTATION

Affecter = assigner une valeur à une variable

Affectation: lien entre le nom de la variable et son contenu

>>> n = 14 n prend la valeur 14 et est de type entier

>>> msg = "Hello world! "   msg prend la valeur "Hello world! " et est de type chaîne de

caractères

>>> pi = 3.14 pi prend la valeur 3.14 et est de type nombre a virgule flottante (float)

>>> verre1=verre2 verre1 prend la valeur contenue dans verre2

Page 9: Theme2

9

AFFICHAGE Pour afficher la valeur d’une ou plusieurs

variables Indiquer le nom de la variable

>>n14

>>> msg'Quoi de neuf ?‘

>>> pi3.14159

Utiliser le mot réservé(??) print

>>print(msg)Quoi de neuf ?

Page 10: Theme2

10

AFFECTATIONS MULTIPLES

Assigner une valeur à plusieurs variables simultanément

>>>x=y=56>>>x56>>>y56

Affectations parallèles avec le même opérateur m1,m2 = 14, 1.11

>>>m114>>>m21.11

• La virgule «,»: séparateur

• Le point «.»: virgule des nombres réels

Page 11: Theme2

11

Exemple: permutations

Verre 1 Verre 2

Verre 3

Verre 1 Verre 2

???

Verre 1 Verre 2

Verre 3Verre 1 Verre 2

Verre 3Verre 1 Verre 2

Verre 3Verre 1 Verre 2

11

Algorithme

InitialisationDébut || Vider verre1 dans verre 3|||| Vider verre2 dans verre 1|||| Vider verre 3 dans verre 2 |Fin

Page 12: Theme2

12

Solution: permutations

Verre 3Verre 1 Verre 2

Verre 3Verre 1 Verre 2

Verre 3Verre 1 Verre 2

Verre 3Verre 1 Verre 2

12

>>> verre1="café">>> verre2="lait">>>verre3=""

>>>verre1, verre2, verre3???

>>>verre3=verre1>>>verre1, verre2, verre3???

>>>verre1=verre2>>>verre1, verre2, verre3???

>>>verre2=verre3>>>verre1, verre2, verre3???

Quel est l’état final de la variable verre3???

Page 13: Theme2

13

Remarque

>>>Verre1=‘lait’>>>Verre2=‘café’>>>Verre2=Verre1

Verre2 et Verre1 contiennent ‘lait’ et non pas les deux valeurs ‘lait’ et ‘café’.

Les variables scalaires recoivent une seule valeur à la fois.

Page 14: Theme2

14

Exemple

1. Décrivez le plus clairement et le plus complètement possible ce qui se passe à chacune des trois lignes de l’exemple ci-dessous

>>> largeur = 20

>>> hauteur = 5 * 9.3

>>> largeur * hauteur

930.0

2. Assignez les valeurs respectives 3, 5, 7 à trois variables a, b, c.

Effectuez l’opération a - b//c. Interprétez le résultat obtenu. 14

Page 15: Theme2

15

Solutions

>>> largeur = 20 La variable largeur reçoit une valeur entière de 20

>>> hauteur = 5 * 9.3 La variable hauteur reçoit le résultat de la multiplication de 5 par

9.3. Le résultat obtenu est un nombre à virgule flottante (float). D’ou hauteur est un float.

>>> largeur * hauteur L’instruction « hauteur*largeur » affiche le résultat de la

multiplication de la valeur de la variable largeur par la valeur de la variable hauteur.

  >>>a,b,c=3,5 ,7>>>a - b//c Le résultat obtenu est 3. La division entière de b par c (b//c) est

effectué en premier lieu. L’opérateur // est prioritaire par rapport à l’opérateur.

b//c donne 0. Le programme soustrait b//c de la valeur de c qui est égale à 3 et on obtient 3.

15

Page 16: Theme2

16

OPÉRATEURS ET EXPRESSIONS

On manipule les valeurs et les variables qui les référencent en les combinant avec des opérateurs pour former des expressions

>>> a, b = 7.3, 12

>>> y = 3*a + b/5

>>> print(y)

23.899999…

>>> 10 % 3

1

>>> 10 % 5

0

Page 17: Theme2

17

PRIORITÉ DES OPÉRATIONS Lorsqu’il y a plus d’un opérateur dans une expression, l’ordre dans

lequel les opérations doivent être effectuées dépend de règles de priorité.

Vous pouvez les mémoriser aisément à l’aide d’un « truc » mnémotechnique, l’acronyme PEMDAS

P pour parenthèses.

E pour exposants.

M et D pour multiplication et division, qui ont la même priorité.

A et S pour addition et soustraction, qui ont la même priorité.

Si deux opérateurs ont la même priorité, l’évaluation est effectuée de gauche à droite.

Page 18: Theme2

18

Exemple

1. Testez les lignes d’instructions suivantes. Décrivez ce qui se passe

>>> r , pi = 12, 3.14159>>> s = pi * r**2>>> print(s)>>> print(type(r), type(pi), type(s))

2. Quelle est, à votre avis, l’utilité de la fonction type() ?

Page 19: Theme2

19

COMPOSITION

Composition

L’une des grandes forces d’un langage de programmation de haut niveau est qu’il permet de construire des instructions complexes par assemblage de fragments divers.

>>> print(17 + 3) 20

>>> h, m, s = 15, 27, 34

>>> a=((h*m)**3)%6 Dans une expression, ce que vous placez à la gauche du

signe égale doit toujours être une variable, et non une expression.

Page 20: Theme2

20

Affichez les 13 premières numéros de la suite de Fibonacci en utilisant des variables et des expressions arithmétiques

La suite de Fibonacci est 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

Un nombre de la suite est le résultat de la somme de ses deux précédents

0 1 1 2 3 5 8 13 21 34 55 89 144