Académique Documents
Professionnel Documents
Culture Documents
Fondamentaux de l’algorithmique 1 / 45
Outline
1 Plan
2 Les Bases
Types de Base
Opérateurs
3 Instructions d’entrée/sortie
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 2 / 45
Plan
1 Plan
2 Les Bases
Types de Base
Opérateurs
3 Instructions d’entrée/sortie
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 3 / 45
Plan
Paradigmes de Programmation
Programmation impérative : décrit les séquences exactes des
commandes à exécuter.
Programmation structurée/procédurale
FORTRAN, PASCAL, C, ...
Programmation Orientée Objet
C++, Java, C#,Python, ...
Fondamentaux de l’algorithmique 4 / 45
Plan
Paradigmes de Programmation
Programmation impérative : décrit les séquences exactes des
commandes à exécuter.
Programmation structurée/procédurale
FORTRAN, PASCAL, C, ...
Programmation Orientée Objet
C++, Java, C#,Python, ...
Programmation déclarative : décrit ce qu’il faut faire, pas
comment le faire
Programmation fonctionnelle
Lisp, ML, ...
Programmation logique
Prolog
Fondamentaux de l’algorithmique 4 / 45
Python
Fondamentaux de l’algorithmique 5 / 45
Propriétés du langage
Fondamentaux de l’algorithmique 6 / 45
Ce qu’est programmer
Fondamentaux de l’algorithmique 7 / 45
Syntaxe et Sémantique
Fondamentaux de l’algorithmique 8 / 45
Apprendre à programmer
Fondamentaux de l’algorithmique 9 / 45
Interpréteur Python
Interface interactive pour Python
kais$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Fondamentaux de l’algorithmique 10 / 45
Interpréteur Python
Interface interactive pour Python
kais$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Fondamentaux de l’algorithmique 10 / 45
Interpréteur Python
Interface interactive pour Python
kais$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Fondamentaux de l’algorithmique 10 / 45
Interpréteur Python
Interface interactive pour Python
kais$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Fondamentaux de l’algorithmique 10 / 45
Pycharm Integrated Development Environment
(IDE)
Fondamentaux de l’algorithmique 11 / 45
Pycharm Integrated Development Environment
(IDE)
Fondamentaux de l’algorithmique 11 / 45
Plan
1 Plan
2 Les Bases
Types de Base
Opérateurs
3 Instructions d’entrée/sortie
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 12 / 45
Exemple de code
Fondamentaux de l’algorithmique 13 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
Fondamentaux de l’algorithmique 14 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
La première affectation à une variable la crée.
Le type d’une variable n’est pas renseigné au préalable.
Python trouve le type d’une variable en fonction du contexte (le
type de l’expression qui lui est affectée).
Fondamentaux de l’algorithmique 14 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
La première affectation à une variable la crée.
Le type d’une variable n’est pas renseigné au préalable.
Python trouve le type d’une variable en fonction du contexte (le
type de l’expression qui lui est affectée).
L’affectation utilise = alors que le test d’égalité utilise ==.
Fondamentaux de l’algorithmique 14 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
La première affectation à une variable la crée.
Le type d’une variable n’est pas renseigné au préalable.
Python trouve le type d’une variable en fonction du contexte (le
type de l’expression qui lui est affectée).
L’affectation utilise = alors que le test d’égalité utilise ==.
Opérations sur les nombres : + - * / %.
Utilisation spéciale de l’opérateur + pour concaténer deux
chaînes de caractères .
Utilisation spéciale de l’opérateur % pour formatter une chaîne
de caractère (comme en C pour printf)
Fondamentaux de l’algorithmique 14 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
La première affectation à une variable la crée.
Le type d’une variable n’est pas renseigné au préalable.
Python trouve le type d’une variable en fonction du contexte (le
type de l’expression qui lui est affectée).
L’affectation utilise = alors que le test d’égalité utilise ==.
Opérations sur les nombres : + - * / %.
Utilisation spéciale de l’opérateur + pour concaténer deux
chaînes de caractères .
Utilisation spéciale de l’opérateur % pour formatter une chaîne
de caractère (comme en C pour printf)
Opérateurs logiques sont des mots (and, or, not), et non pas des
symboles (comme en C).
Fondamentaux de l’algorithmique 14 / 45
Compréhension du Code
Indentation importe pour le sens du code:
La structure d’un bloc est déterminée par l’indentation
La première affectation à une variable la crée.
Le type d’une variable n’est pas renseigné au préalable.
Python trouve le type d’une variable en fonction du contexte (le
type de l’expression qui lui est affectée).
L’affectation utilise = alors que le test d’égalité utilise ==.
Opérations sur les nombres : + - * / %.
Utilisation spéciale de l’opérateur + pour concaténer deux
chaînes de caractères .
Utilisation spéciale de l’opérateur % pour formatter une chaîne
de caractère (comme en C pour printf)
Opérateurs logiques sont des mots (and, or, not), et non pas des
symboles (comme en C).
Simple affichage avec print (print (quelque chose,end =" ") finit
avec un espace au lieu d’un retour à la ligne).
Fondamentaux de l’algorithmique 14 / 45
Plan
2 Les Bases
Types de Base
Opérateurs
Fondamentaux de l’algorithmique 15 / 45
Types de Base
Fondamentaux de l’algorithmique 16 / 45
Types de Base
Fondamentaux de l’algorithmique 16 / 45
Types de Base
Fondamentaux de l’algorithmique 16 / 45
Commentaires et espaces
Fondamentaux de l’algorithmique 17 / 45
Commentaires et espaces
Fondamentaux de l’algorithmique 17 / 45
Commentaires et espaces
Fondamentaux de l’algorithmique 17 / 45
Affectation
Fondamentaux de l’algorithmique 18 / 45
Affectation
Fondamentaux de l’algorithmique 18 / 45
Affectation
Fondamentaux de l’algorithmique 18 / 45
Affectation
Fondamentaux de l’algorithmique 18 / 45
Affectation Multiple
Fondamentaux de l’algorithmique 19 / 45
Affectation Multiple
Fondamentaux de l’algorithmique 19 / 45
Règles de nomage
Fondamentaux de l’algorithmique 20 / 45
Règles de nomage
Fondamentaux de l’algorithmique 20 / 45
Plan
2 Les Bases
Types de Base
Opérateurs
Fondamentaux de l’algorithmique 21 / 45
Opérateurs
Fondamentaux de l’algorithmique 22 / 45
Opérateurs
Fondamentaux de l’algorithmique 22 / 45
Opérateurs
Fondamentaux de l’algorithmique 22 / 45
Opérateurs
Opérateurs binaires
~ (négation binaire)
« (décalage à gauche)
» (décalage à droite)
& (ET binaire )
^ (XOR binaire)
| (OR binaire)
Fondamentaux de l’algorithmique 23 / 45
Opérateurs
Opérateurs binaires
~ (négation binaire)
« (décalage à gauche)
» (décalage à droite)
& (ET binaire )
^ (XOR binaire)
| (OR binaire)
Opérateurs logiques
not (NON logique )
and (ET logique)
or (OU logique)
Fondamentaux de l’algorithmique 23 / 45
Opérateurs
Opérateurs relationnels
> supérieur à
>= supérieur ou égal
< inférieur à
<= inférieur ou égal
== égal
!= différent
Fondamentaux de l’algorithmique 24 / 45
Opérateurs
Fondamentaux de l’algorithmique 25 / 45
Plan
1 Plan
2 Les Bases
Types de Base
Opérateurs
3 Instructions d’entrée/sortie
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 26 / 45
Instructions d’entrée/sortie
Fondamentaux de l’algorithmique 27 / 45
Instructions d’entrée/sortie
Fondamentaux de l’algorithmique 27 / 45
Plan
1 Plan
2 Les Bases
Types de Base
Opérateurs
3 Instructions d’entrée/sortie
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 28 / 45
Structures de contrôle
Structure conditionnelle
Décider quel code exécuter en fonction de la valeur de vérité
d’une expression booléenne.
if
if-else
Fondamentaux de l’algorithmique 29 / 45
Structures de contrôle
Structure conditionnelle
Décider quel code exécuter en fonction de la valeur de vérité
d’une expression booléenne.
if
if-else
Boucles
Exécuter un code plusieurs fois, tant qu’une expression
booléenne est vraie .
while
for
Fondamentaux de l’algorithmique 29 / 45
Plan
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 30 / 45
Expression booléenne
Fondamentaux de l’algorithmique 31 / 45
Expression booléenne
Fondamentaux de l’algorithmique 31 / 45
Plan
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 32 / 45
Instruction conditionnelle
If
if (condition)
action; F
based on if condition
syntaxe T
if condition :
action
bloc d’instructions
on evaluated
Condition is a C expression,
which evaluates to TRUE (non-zero) or FALSE (zero).
Action is a C statement,
which may be simple or compound (a block).
57 CSE 240 58
Fondamentaux de l’algorithmique 33 / 45
Instruction conditionnelle
If
if (condition)
action; F
based on if condition
syntaxe T
if condition :
action
bloc d’instructions
on evaluated
Condition is a C expression,
Condition est une
whichexpression booléenne,
evaluates to TRUE (non-zero) qui vaut(zero).
or FALSE True ou False.
Action is a C statement,
Bloc d’instructions est be
which may une ou orplusieurs
simple compound (ainstructions
block). en Python.
57 CSE 240 58
Fondamentaux de l’algorithmique 33 / 45
Exemples
Instruction composée
if x <= 10 :
y = x * x + 5
z = (2 * y) / 3
Les deux instructions seront exécutées si x <= 10
Fondamentaux de l’algorithmique 34 / 45
Exemples
Instruction composée
if x <= 10 :
y = x * x + 5
z = (2 * y) / 3
Les deux instructions seront exécutées si x <= 10
Utiliser l’indentation pour les blocs
Fondamentaux de l’algorithmique 34 / 45
Exemples
Instruction composée
if x <= 10 :
y = x * x + 5
z = (2 * y) / 3
Les deux instructions seront exécutées si x <= 10
Utiliser l’indentation pour les blocs
(:) après l’expression booléenne
if x <= 10 :
y = x * x + 5
z = (2 * y) / 3
Seule la première instruction sera exécutée si la condition est
vraie; la deuxième instruction sera toujours exécutée.
Fondamentaux de l’algorithmique 34 / 45
D’autres exemples
Fondamentaux de l’algorithmique 35 / 45
Instruction alternative
If-else
if-else if (condition)
syntaxe action_if; T F
condition
else
if condition :
action_else;
statements_if
else : action_if action_else
statements_else
61 CSE 240 62
Fondamentaux de l’algorithmique 36 / 45
Instruction alternative
If-else
if-else if (condition)
syntaxe action_if; T F
condition
else
if condition :
action_else;
statements_if
else : action_if action_else
statements_else
61 CSE 240 62
Fondamentaux de l’algorithmique 36 / 45
if-else : imbrication
Fondamentaux de l’algorithmique 37 / 45
Plan
4 Structures de contrôle
Expression booléenne
Instruction conditionnelle
Boucles
Fondamentaux de l’algorithmique 38 / 45
Boucles
While
== 9 || while (test)
while loop_body; F
test
syntaxe
while test : T
| bloc d’instructions loop_body
;
Executes loop body as long as
test evaluates to TRUE (non-zero)
Fondamentaux de l’algorithmique 39 / 45
Boucles
While
== 9 || while (test)
while loop_body; F
test
syntaxe
while test : T
| bloc d’instructions loop_body
;
Exécute le corps de la boucle (bloc d’instructions) tant que le
Executes loop body as long as
test vaut True
test evaluates to TRUE (non-zero)
Test est évalué avant d’exécuter le corps de la boucle
Note: Test is evaluated before executing loop body
65Boucles imbriquées
CSE 240 : le corps de la boucle peut (bien sûr) 66
contenir une ou plusieurs autres boucles.
Fondamentaux de l’algorithmique 39 / 45
Exemple de boucle While
Fondamentaux de l’algorithmique 40 / 45
break, continue et assert
Fondamentaux de l’algorithmique 41 / 45
Boucle For
La boucle for exécute un bloc d’instructions pour chaque item
appartenant à une collection ou tout autre objet "itérable"
for <item> in <collection>:
<bloc d’instructions>
Si <collection> est une liste de tuples, alors la boucle s’exécute
pour chaque élément de la séquence.
Si <collection> est une chaîne de caractère, alors la boucle
s’exécute pour chaque caractère de la chaîne.
Fondamentaux de l’algorithmique 42 / 45
Boucle For
Fondamentaux de l’algorithmique 43 / 45
Boucle For
Fondamentaux de l’algorithmique 44 / 45
Exercices
Fondamentaux de l’algorithmique 45 / 45