0% ont trouvé ce document utile (0 vote)
8 vues65 pages

Introduction à Python et Algorithmique 2

Ce document présente un cours d'Algorithmique 2/Python, structuré en plusieurs sections incluant des rappels sur les types de base, les variables, les opérateurs, et les structures de contrôle. Il aborde également des concepts clés tels que les fonctions, la récursivité, les tableaux, et les fichiers, tout en mettant l'accent sur l'utilisation du langage Python. Des exercices pratiques sont fournis pour renforcer l'apprentissage des concepts abordés.

Transféré par

mareyameakil
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues65 pages

Introduction à Python et Algorithmique 2

Ce document présente un cours d'Algorithmique 2/Python, structuré en plusieurs sections incluant des rappels sur les types de base, les variables, les opérateurs, et les structures de contrôle. Il aborde également des concepts clés tels que les fonctions, la récursivité, les tableaux, et les fichiers, tout en mettant l'accent sur l'utilisation du langage Python. Des exercices pratiques sont fournis pour renforcer l'apprentissage des concepts abordés.

Transféré par

mareyameakil
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Faculté des Sciences El

Jadida

Informatique 2 :
Algorithmique 2/Python

MIP – S2 Pr. Souad EL HOUSSAINI 2023-2024


Plan
1
Rappels (Types de base, variables, opérateurs, structures de
contrôle,..)
2
Les fonctions et les
procédures
3
La
récursivité
4
Les tableaux (Listes, chaînes de
caractères)
5
Les types composés (Tuples,
Dictionnaires)
6
Les fichiers
1 Instructions
Rappels élémentaires
Introduction

Notion de Variable

Types de données de

base

Opérateurs 3

Les entrées/sorties
1 Instructions
Rappels élémentaires
Introduction

o Le langage utilisé par l’ordinateur pour traiter les informations est le langage
binaire (constitué par une suite de 0 et 1) directement compréhensible par
la machine. Ce langage est appelé : langage machine (Langages de bas niveau).

o Il est très difficile à l’utilisateur de programmer en langage machine, c’est


pourquoi des langages dis évolués ont été créés (pascal, C, C++, Basic,
Java, Python…) (Langages de haut niveau).

o Un compilateur ou interpréteur est nécessaire pour traduire un programme


écrit en un langage évolué en langage machine.

4
1 Instructions
Rappels élémentaires
Langage Python
o Python est un langage de programmation développé depuis 1989 par Guido van
Rossum et de nombreux contributeurs bénévoles.

o En février 1991, la première version publique, numérotée 0.9.0.


o La dernière version de Python est la version 3, ce cours est basé sur cette version.

5
1 Instructions
Rappels élémentaires
Pourquoi apprendre le langage Python
o Simplicité : Python a une syntaxe simple et claire et qui est facile à apprendre et à comprendre.
o Multi-plateforme : Python peut être exécuté sur de nombreuses plateformes différentes, y
compris Windows, MacOS et Linux, sans nécessiter de modification du code.
o Multitude d'utilisations : Python est utilisé dans de nombreuses applications telles que la
science des données, la programmation Web, la création de scripts et l'Intelligence Artificielle .
o Grande communauté et bibliothèques : Python a une grande communauté active
de développeurs qui contribuent à denombreuses bibliothèques et outils
pour faciliter le
développement.
o Dynamiquement typé : tout objet manipulable par le programmeur possède un type bien défini
à l'exécution, qui n'a pas besoin d'être déclaré à l'avance.
6
1 Instructions
Rappels élémentaires
Environnement de développement intégré (IDE)
o Un IDE est un logiciel de création d'applications, qui se compose habituellement des
éléments suivants :
o Éditeur de code source
o Compilateur ou interpréteur
o Débogueur

o L’installation de Python génère l’installation d’une interface, appelée IDLE (Python’s


Integrated Development and Learning Environment)
o Cette interface vous permet de saisir des instructions en ligne de commande
mais
également d’exécuter des programmes Python enregistrés dans des fichiers
(ayant l’extension .py. Exemple: [Link])
Démonstration 7
1 Instructions
Rappels élémentaires
Structures d’un algorithme

L'algorithme doit avoir une structure bien définie. Cette structure doit comporter :

 L'en-tête qui comprend le nom de l'algorithme pour identifier l'algorithme.

 Les déclarations des données (variables et des constantes).

 Le corps de l'algorithme qui contient les instructions.

8
1 Instructions
Rappels élémentaires
Structures d’un algorithme
Algorithme nom_algo

/*déclaration des variables et des constantes*/


Déclaration
Constantes : déclaration des constantes
des données
Variables : déclaration des variables
Syntaxe générale

Début

Iinstruction1

Instruction 2
Traitement
Suite d’instructions &
Instruction 3
Résultats
… …

Instruction n

Fin 9
1 Instructions
Rappels élémentaires
Variables et Constantes
o Une variable est un objet dont le contenu (sa valeur) peut être modifié par une action.

o Toute variable utilisée dans un programme doit être l’objet d’une déclaration préalable .
o En pseudo-code, la déclaration de variables est effectuée par la forme suivante :

Variables liste d'identificateurs : type

Exemples:

Variables i, j, k : Entier
x, y : Réel
OK: Booléen
C1, C2 :
10
Caractère
1 Instructions
Rappels élémentaires
Variables et Constantes
o Une constante est un objet dont l'état reste inchangé durant toute l'exécution d'un
programme. On ne peut jamais modifier sa valeur et celle-ci doit donc être précisée
lors de la définition de l'objet.

o Par convention, les noms de constantes sont en majuscules;


o Une constante doit toujours recevoir une valeur dès sa déclaration;
o En pseudo-code, la déclaration des constantes est effectuée par la forme suivante :
Const identificateur=valeur : type

Exemple:

Const PI=3.14 : réel


11
1 Instructions
Rappels élémentaires
Types de données de base

Les types les plus utilisés sont :


 entier pour manipuler des entiers,
 réel pour manipuler des nombres réels,
 booléen pour manipuler des valeurs booléennes vrai ou faux,
 caractère pour manipuler des caractères alphabétiques et numériques,
 chaîne pour manipuler des chaînes de caractères permettant de représenter des mots ou
des phrases.

12
1 Instructions
Rappels élémentaires
Syntaxe en Python

o Les variables en Python peuvent être de l'un des types suivants:


 bool : booléen (True ou False)
 int : entier
 float : nombre flottant qui a la précision d'un double (noté avec un point décimal).
 str : chaîne de caractère (string).

13
1 Instructions
Rappels élémentaires
Opérateurs
 Opérateurs arithmétiques
Opérateur Fonction Exemple Langage Python

+ Addition X+Y +

- Soustraction X-Y -

* Multiplication X*Y *

/ Division X/Y / : division ; //division


entière 6/41.5 ; 6//41
^ Puissance 2^3 ** : exemple 2**38

mod Reste division 17 mod 5 (=2) % : 17%52

14
1 Instructions
Rappels élémentaires
Opérateurs
 Opérateurs de comparaison
Opérateur signification Langage Python

= Egal ==

<> Différent !=

< Strictement inférieur <

> Strictement supérieur >

<= Inférieur ou égal <=

>= Supérieur ou égal >=

15
1 Instructions
Rappels élémentaires
Opérateurs
 Opérateurs logiques

Opérateur signification Langage Python

NON Non logique not

OU Ou inclusif or

ET Et logique and

16
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
 Instruction d’entrées: Lecture

Définition
o L'instruction de lecture permet à l'utilisateur de rentrer une valeur au clavier pour
qu'elle soit stockée dans une variable.
Syntaxe
o On écrit l'instruction de lecture de cette façon : Lire (nom_de_variable).

N.B : On peut lire plusieurs valeurs dans une seule instruction en utilisant la virgule.
Exemples :
• Lire (Note)
• Lire (Note1,Note2)
17
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
Syntaxe en Python
 Saisie de données

o Pour permettre à l’utilisateur d’un programme de saisir la valeur d’une variable x,


on utilise la fonction input() comme ceci :

x = input("saisir la valeur de x : ")

o ATTENTION : la variable saisie est toujours de type str. Pour la convertir en


nombre, il faut utiliser la fonction int()ou la fonction float() :

x = int(input("saisir la valeur de x : ")) 18


1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
 Instruction de sortie: Ecriture
Définition
o L'instruction d'écriture permet d'afficher à l'utilisateur des messages ou des résultats de calculs
sur l'écran.
Syntaxe
o Pour afficher la valeur d'une variable : Ecrire (nom_de_variable).
o Pour afficher un message : Ecrire ("message").

N.B : On peut afficher plusieurs messages et valeurs des variables dans une seule instruction.
Exemples :
Ecrire ('Donner la note : ')
Lire (Note)
Ecrire ("Votre note est : ", Note, " Merci !") 19
1 Instructions
Rappels élémentaires
Instructions d’entrées-sorties: lecture et écriture
 Affichage de données
Syntaxe en Python
o La fonction print() de Python est souvent utilisée pour afficher des variables et des chaînes de
caractères.
o La fonction d’écriture standard print([objet1 , objet2 , ..., objetn], [sep =’ ’], [end =’ \n’ ]) :
 affiche la représentation textuelle des objets objeti ;
 les objets sont séparés par la chaîne sep, par défaut un espace;
 se termine par la chaîne end, par défaut \n.
>>> jj, mm, aa = 26, 02, 2024
o Pour afficher la valeur d’une variable x, on écrit : >>> print(jj, mm, aa, sep = ’/’)
print(x) 26/02/2024

o Pour afficher plusieurs valeurs, on les sépare par une virgule :


print(a,b,c,....) 20
1 Instructions
Rappels élémentaires
Syntaxe en Python
o En Python, il n’est pas nécessaire de déclarer le type d’une variable avant de lui
affecter une valeur (il est déterminé dynamiquement à l’exécution),
mais ATTENTION à ne pas utiliser une variable à laquelle on a affecté aucune
valeur :

21
1 Instructions
Rappels élémentaires
Syntaxe en Python
 Bloc d’instruction
o En Python, chaque instruction s'écrit sur une ligne sans mettre d'espace au début.
Exemple:

a = 10
b=3
print(a, b)
o Ces instructions simples peuvent cependant être mises sur la même ligne en les
séparant par des points virgules.
Exemple:

a = 10; b = 3; print(a, b)
 Le bloc d'instructions correspondant se fait par indentation des lignes (décalage).
 Une indentation s'obtient par le bouton tab (pour tabulation) ou bien par 4 espaces successifs .
 il ne faut pas mélanger espaces et tabulations. On utilisera soit l'un, soit l'autre.
 Une mauvaise indentation va provoquer des erreurs! 22
1 Exercices
Rappels d’application
Exemple de programme Python

#exemple de programme Python


x = float(input("La valeur de x: "))
y = float(input("La valeur de y: "))

print("x :",x)
print("y :",y)

test = ( x + y) / 2

print("Résultat :",test)

23
1 Exercices
Rappels d’application

Exercice 1
Écrire un algorithme et un programme en Python demandant à l’utilisateur de saisir son
nom, puis affichant le nom saisi.

24
1 Exercices
Rappels d’application
Solution

Algorithme nom
Variables name : chaîne de
caractères
Début name = input("Quel est ton nom? ")
Ecrire ("Quel est ton print ("Bonjour, ", name)

nom?") Lire (name)


Ecrire ("Bonjour, ",name)
Fin

25
1 Exercices
Rappels d’application

Exercice 2
Ecrire un algorithme et un programme en Python qui permet de :
• Saisir deux nombres entiers
• Les afficher
• Les permuter
• Afficher le résultat

26
1 Exercices
Rappels d’application
Solution 1

Algorithme
deux_nombres_entiers
Variables x,y,t : entier
Début x = int(input("x : "))
y = int(input("y : "))
Ecrire (" x : print ("x = ", x, ", y = ", y)
") Lire (x) t = x
x = y
Ecrire (" y : y = t
") Lire (y) print ("x = ", x, ", y = ", y)
Ecrire (" x " , x , " , y = " ,
y)
=t=x
x=
yy
=t ",x,",y=" ,
y) 27
Ecri
re ("
x=
Fin
1 Exercices
Rappels d’application
Solution 2

x = int(input("x : "))
y = int(input("y : "))
print ("x = ", x, ", y = ",
y) x , y = y , x
print ("x ", x, ", y = ",
= y)
On peut échanger les valeurs
de deux variables d’un coup
(sans introduire de variable
auxiliaire)

28
1 Exercices
Rappels d’application

Exercice 3
Ecrire un algorithme et un programme en Python qui permet de Saisir trois notes d’un
étudiant et d’afficher leur moyenne.

29
1 Exercices
Rappels d’application
Solution 1

Algorithme trois_notes_moyenne
Variables x,y :
note1 = float(input("Entrer la note n°1: "))
entier moyenne note2 = float(input("Entrer la note n°2: "))
: réel note3 = float(input("Entrer la note n°3: "))
Début moyenne = ( note1 + note2 + note3) / 3
Ecrire (" Entrer la note n° 1 :
print("La moyenne est : " , moyenne)
") Lire (note1)
Ecrire (" Entrer la note n° 2 :
") Lire (note2)
Ecrire (" Entrer la note n° 3 :"
) Lire (note3)

moyenne = (note1+note2+note3)/3

Ecrire (" La moyenne est : " ,


30

moyenne)
Fin
1 Exercices
Rappels d’application
Solution 2

note1 = float(input("Ente la note n°1: "))


r
note2 = float(input("Ente la note n°2: "))
r
note3 = float(input("Ente
moyenne = ( note1 + note2 la note n°3:
+ note3) / "))
r
3 print("La moyenne est : %.2f" %
moyenne)

%.2f permet de formater une chaîne de caractères qui représente un nombre flottant avec
 Le "f" signifie que le nombre est de type flottant
deux décimales
 Le ".2" indique le nombre de décimales à afficher après la virgule
 Le "%" est utilisé pour définir le format de la chaîne de caractères. 31
1 Exercices
Rappels d’application
Solution 3

note1,note2,note3 = input("Enter trois notes :


").split() moyenne = ( float(note1) + float(note2) +
float(note3))/3 print("La moyenne est : %.2f" %
moyenne)

32
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Définition

o Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence


d'instructions que si une condition est vérifiée.

La condition peut être:


 Condition simple :
Exemples : a<2000;
Moy<10;

 Condition Composée :
Exemples : (Moy>13) ET
(Moy <= 16) 33
1 Structures alternatives
(conditionnelles/Tests)
Rappels

Il existe différents types de traitements alternatifs :


1) Forme simple: SI_ALORS
2) Forme alternative : SI_ALORS_SINON

Algorithme Langage Python

Si Condition Alors if Condition :


Séquence1 Séquence1
Sinon else:

Séquence2 Séquence2
Finsi

Le bloc "else" est optionnel. 34


1 Structures alternatives
(conditionnelles/Tests)
Rappels
Exemple d’application

Algorithme Solution 1
ValeurAbs Variable
x = float ( input (" Entrez un réel
x : réel Début
: " )) if x < 0 :
Ecrire(" Entrez un réel :
print ("la valeur absolue de ", x,
" ) Lire (x)
"est:",-x) else :
Si x < 0 alors
print ("la valeur absolue de ", x,
Ecrire ("la valeur absolue de ", x, "est:", x)
"est:",-x) Sinon
Solution 2
Ecrire ("la valeur absolue de ", x,
"est:", x) Finsi x = float ( input (" Entrez un réel : " ))

Fin print ("la valeur absolue de ", x, "est:",


abs(x)) 35
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Structures alternatives imbriquées
Les tests peuvent avoir un degré quelconque d'imbrications.
Exemple1:
Algorithme Langage Python
Si condition1 alors if Condition1 :
Si condition2 alors if condition2 :
instructionsA
Sinon instructionsA
instructionsB
else:
Finsi
Sinon
instructionsB
Si condition3 alors
instructionsC else:
Finsi if condition3 :
Finsi
instructionsC

else est associé avec le if le plus proche 36


1 Structures alternatives
(conditionnelles/Tests)
Rappels
Structures alternatives imbriquées

Exemple 2 Algorithme Langage Python


if Condition1 alors if Condition1:
instruction 1 instruction 1
instruction 2 instruction 2
instruction 3 instruction 3
.
instruction n .
instruction n

SinonSi Condition2 alors


bloc_instructions elif Condition2:
Sinon bloc_instructions
autre_bloc_instructions else :
Finsi autre_bloc_instructions

n’oubliez pas le double point !


n’oubliez pas l’indentation ! 37
1 Structures alternatives
(conditionnelles/Tests)
Rappels
Important en Python
o L'indentation dans les instructions if/elif/else en Python sert à délimiter les blocs
de code qui seront exécutés si la condition est vraie ou fausse.

o Les instructions indentées après if/elif/else font partie de ces blocs, tandis que les
instructions non-indentées n'en font pas partie.

o Respecter une bonne indentation dans les instructions if/elif/else est essentiel pour
obtenir un code fonctionnel et éviter des erreurs de syntaxe.

o Il est recommandé d'utiliser des espaces plutôt que des tabulations pour
l'indentation en Python, car cela évite les problèmes de mise en forme et
facilite la lisibilité du code.
38
1 Structures alternatives
(conditionnelles/Tests)
Rappels

Exemple d’application

Ecrire un algorithme et un programme en Python qui demande à l’utilisateur de saisir un


numéro de jour de la semaine et affiche ensuite le jour correspondant.

39
1 Structures alternatives
(conditionnelles/Tests)
Rappels Algorithme nomJour
Variable n : Entier
Début n = int ( input (" Entrez un nombre
Ecrire ("Entrez un nombre entier : ") entier : " )) if n == 1 :
Lire (n)
Solution 1 Si (n=1) Alors print
Ecrire ("Lundi") ("Lundi") elif
Sinon Si (n=2) Alors n==2 :
Ecrire print
("Mardi") ("Mardi")
Sinon Si (n=3) Alors elif n==3 :
Ecrire ("Mercredi") print
Sinon Si (n=4) Alors ("Mercredi") elif
Ecrire ("Jeudi") n==4 :
Sinon Si (n=5) Alors
print
Ecrire
("Vendredi") ("Jeudi")
Sinon Si (n=6) Alors elif n==5 :
Ecrire ("Samedi") print
Sinon Si (n=7) Alors ("Vendredi") elif
Ecrire ("Dimanche") n==6 :
Sinon print
Ecrire ("Jour ("Samedi")
inexistant ")
elif n==7 :
Finsi
Fin print
("Dimanche")
else :
print ("Jour
1 Structures alternatives
(conditionnelles/Tests)
Rappels
L’instruction match
Algorithme Langage Python
o Jusqu’à sa version Python 3.9 (2020-10-05),
Selon variable match variable:
le langage python n’a pas l’instruction Cas1:
qui est équivalente à l’instruction #Traitement à faire
case cas1:
Selon..Cas #Traitement à faire
Cas2:
o Avec la version Python 3.10 (2021-10-04), #Traitement à faire case cas2:

La communauté de python a ajouter #Traitement à faire


…….. #Les autres cas
une nouvelle instruction appelée …….. #Les autres cas
Sinon :
match. #Traitement à faire case _:
#Traitement à faire
Sa syntaxe est la suivante : FinSelon

41
1 Structures alternatives
(conditionnelles/Tests)
Rappels
n = int ( input (" Entrez un nombre
Algorithme nomJour entier : " )) match n :
Variable n : Entier
Solution 2 Début
case 1:
Ecrire ("Entrez un nombre entier : ") print
Lire (n) ("Lundi") case
Selon n 2:
1 : Ecrire ("Lundi") print (" Mardi
2 : Ecrire ("Mardi") ") case 3:
3 : Ecrire ("Mercredi") print (" Mercredi
4 : Ecrire ("Jeudi") ") case 4:
5 : Ecrire ("Vendredi") print (" Jeudi
6 : Ecrire ("Samedi") ") case 5:
7 : Ecrire ("Dimanche") print (" Vendredi
Sinon : Ecrire ("Jour ") case 6:
inexistant") FinSelon print (" Samedi
Fin ") case 7:
print ("
Dimanche ") case
print ("Jour 42
_: inexistant")
1 Exercices
Rappels d’application

Exercice 1
Ecrire un algorithme et un programme en Python qui permet de lire deux nombres
entiers. et déterminer s’ils sont rangés ou non par ordre croissant et, dans tous les cas, il
affiche leur différence (entre le plus grand et le plus petit).

43
1 Exercices
Rappels d’application
Solution en Algorithme

Algorithme rang_2nombres
Variable a,b : entier
Début
Ecrire (" Entrer deux nombres entiers positifs: ")
Lire (a,b)
Si (a<b) alors
Ecrire (" Les nombres sont rangés par ordre croissant")
Ecrire (" La différence entre les nombre est de:“, b-a)
Sinon
Ecrire (" Les nombres ne sont pas rangés par ordre croissant ")
Ecrire (" La différence entre les nombre est de:“, a-b)
Finsi
Fin
44
1 Exercices
Rappels d’application
Solution en Python

# Lecture des deux nombres entiers


a = int(input("Entrez le premier nombre : "))
b = int(input("Entrez le deuxième nombre : "))
# Détermination de l'ordre croissant
if a < b:
print("Les nombres sont rangés par ordre croissant")
else:
print("Les nombres ne sont pas rangés par ordre croissant")
# Calcul de la différence (abs : la valeur absolue)
diff = abs(a - b)
print("La différence entre les nombres est de", diff)

45
1 Exercices
Rappels d’application

Exercice 2
• Ecrire un algorithme et un programme en Python qui lit un entier représentant un mois
de l’année (1 pour janvier, 4 pour avril...) et qui affiche le nombre de jours de ce
mois (on supposera qu’on n’est pas en présence d’une année bissextile).
• On tiendra compte du cas où l’utilisateur fournit un numéro incorrect, c’est-à-dire non
compris entre 1 et 12.

46
1 Exercices
Rappels d’application
Solution en Algorithme

Algorithme nb_jours_mois
Variable mois, nb_jours : Entier
Début
Ecrire ("Entrez le numéro du mois (1-12) : ")
Lire (mois)
Si (mois=2) Alors
nb_jours=28
Sinon Si (mois=4) ou (mois=6) ou (mois=9) ou (mois=11) Alors
nb_jours=30
Sinon Si (mois=1) ou (mois=3) ou (mois=5) ou (mois=7) ou (mois=8) ou (mois=10) ou (mois=12)
Alors nb_jours=31
Sinon
Ecrire (" Numéro de mois incorrect. ")
Finsi

Ecrire (" Le mois numéro ",mois, "a


Fin " ,nb_jours, "jours. ") 47
1 Exercices
Rappels d’application
Solution 1 en Python

mois = int(input("Entrez le numéro du mois (1-12) :


"))

if mois == 2: = 28
nb_jours
elif mois == 4 or mois == 6 or mois == 9 or mois == 11:
nb_jours = 30
elif mois == 1 or mois == 3 or mois == 5 or mois == 7 or mois
== 8 or mois == 10 or mois == 12:
nb_jours = 31
else:
print("Numéro de mois incorrect.")
exit()

print("Le mois numéro {} a {}


48
jours.".format(mois, nb_jours))
1 Exercices
Rappels d’application
Solution 2 en Python

mois = int(input("Entrez le numéro du mois (1-12) :


"))

if mois == 2: = 28
nb_jours
elif mois in (4, 6, 9, 11):
nb_jours = 30
elif mois in (1, 3, 5, 7, 8, 10, 12):
nb_jours = 31
else:
print("Numéro de mois incorrect.")
exit()

print("Le mois numéro {} a {}


jours.".format(mois, nb_jours))
49
1 Exercices
Rappels d’application

Exercice 3
Le prix de photocopies dans une reprographie varie selon le nombre demandé:
 0,10 DH pour les 10 premières copies.
 0,09 DH pour les 10 copies suivantes.
 0,08 DH au-delà.
Ecrire un algorithme et un programme en Python qui demande à l’utilisateur le nombre
de photocopies effectuées, qui calcule et affiche le prix à payer.

50
1 Exercices
Rappels d’application
Solution en Algorithme Solution en Python

Algorithme
Prix_Photocopies Variables
N=int(input("Nombre photocopies:"))
N, prix : Entier Début
if N<=10 :
Ecrire ("Nombre de
prix = N*0.1
photocopies : ")
elif N<=20 :
Lire (N) prix = 10*0,1+(N-10)*0.09
Si N <= 10 Alors else:
prix ← N * 0,1 prix = 10 * 0,1 + 10 * 0,09 + (N – 20)
SinonSi N <= 20 Alors * 0,08
prix ← 10 * 0,1 + (N – 10)
* 0,09 print("Le prix total est: %.2f" % prix)
Sinon
prix ← 10 * 0,1 + 10*
0,09 + (N – 20) * 0,08
FinSi 51
Ecrire ("Le prix total est: ",
prix)
Fin
1 Structures répétitive ou itérative
(boucles)
Rappels
Définition

o La structure répétitive permet de répéter une action ou une séquence d’actions tant
qu’une condition est vraie.
o Une structure répétitive est aussi appelée boucle.

Il existe trois types de structures itératives:


 La structure « POUR …… FAIRE »
 La structure « TANT QUE …… FAIRE »
 La structure « REPETER ... JUSQUA »

52
1 Structures répétitive ou itérative
(boucles)
Rappels

o La structure « TANT QUE …… FAIRE »


• Le traitement est exécuté tant qu’une condition est vérifiée. Si dès le début cette
condition est fausse, le traitement ne sera exécuté aucune fois.
• Une boucle « TantQue » peut s’exécuter 0, 1 ou n fois.
o La structure « REPETER ... JUSQUA »
• La séquence d’instructions est exécutée une première fois, puis l’exécution se répète
jusqu’à ce que la condition de sortie soit vérifiée.
• Une boucle « répéter » s’exécute toujours au moins une fois.
o La structure « POUR …… FAIRE »
• Cette structure consiste à répéter un certain traitement un nombre de fois fixé à
l’avance en utilisant une variable de contrôle (compteur) d’itérations caractérisée par :
sa valeur initiale, sa valeur finale et son pas de variation. La progression se fait dans
l’ordre croissant ou décroissant.
• La structure Pour est utilisée impérativement lorsqu’on connaît à priori le nombre de
53
répétitions à effectuer.
1 Structures répétitive ou itérative
(boucles)
Rappels
Syntaxe

Algorithme avec Algorithme avec Langage Python


Tant que…faire Répéter…Jusqu’à

Tant que (Condition) faire Répéter while condition :


instruction(s)
Instruction(s) Instruction(s)
Fin Tantque Jusqu’à (Condition)

54
1 Structures répétitive ou itérative
(boucles)
Rappels

Exemple d’application

Ecrire un algorithme et un programme en Python qui demande à l’utilisateur une note


comprise entre 0 et 20 jusqu’à ce que la réponse convienne.

55
1 Structures répétitive ou itérative
(boucles)
Rappels
Solution en Algorithme

Algorithme ControleSaisie
Variable note : réel ;
Début

Ecrire ("Donner la note :") ;


Lire(note) ;
Tantque ((note<0) ou
(note>20)) faire
Ecrire("Erreur de saisie") ;
Ecrire ("Donner la note :") ;
Lire(note) ;
Fin TantQue
Ecrire (" La saisie est correcte:" , 56
note) ;
Fin
1 Structures répétitive ou itérative
(boucles)
Rappels
Solution 1 en Python Solution 2 en Python

note=float(input("Donner la note:"))
note=input("Donner la note:")
note=float(note)
while (True):
while note<0 or note>20 :
if note<0 or note>20 :
print("Erreur de saisie")
print("Erreur de saisie")
note=input("Donner la note:")
note=float(input("Donner
la note:")) note=float(note)
else: print ("La saisie est correcte:" ,
note) ;
print ("La saisie est correcte:", note)
break
57
1 Structures répétitive ou itérative
(boucles)
Rappels
Syntaxe

Algorithme avec Langage Python


Pour…faire

for variable in liste_valeurs :


Pour compteur  initiale jusqu’à finale pas ValeurPas Faire Instruction(s)
Instruction(s)

Fin Pour

58
1 Structures répétitive ou itérative
(boucles)
Rappels

Exemple d’application

Ecrire un algorithme et un programme en Python qui permet d'afficher le message


"Bonjour" 100 fois.

59
1 Structures répétitive ou itérative
(boucles)
Rappels Solution
Algorithme Programme Python
Algorithme Bonjour
Variable i : Entier for i in range(1,101) :
Début print("Bonjour")
Pour i ← 1 jusqu’à 100 Faire
Ecrire ("Bonjour")
Fin Pour
Fin

Remarque :
 Vous pouvez utiliser la boucle for pour parcourir une séquence de nombres à l'aide
de la fonction range intégrée.
 range() c’est une fonction qui permet de créer une liste d’entier en Python.

60
1 Structures répétitive ou itérative
(boucles)
Rappels
La fonction range
o La fonction range renvoie une séquence de nombres, commençant par 0 par défaut et incrémentée
de 1 (par défaut), et s’arrête avant un nombre spécifié. Syntaxe : range(start, stop, step) avec :
• start (facultatif) : Un nombre entier spécifiant à quelle position commencer. La valeur par
défaut est 0.
• stop (requis) : Un nombre entier spécifiant à quelle position s’arrêter (non inclus).
• step (facultatif) : Un nombre entier spécifiant l’incrémentation. La valeur par défaut est 1.

Exemples :
range(6) représente la liste des valeurs : 0,1, 2, 3, 4, 5
range (1,6) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1, 6,1) représente la liste des valeurs : 1, 2, 3, 4, 5
range (1,6, 2) représente la liste des valeurs : 1,3,5
61
1 Structures répétitive ou itérative
(boucles)
Rappels
Attention aux boucles infinies
1) Une des instructions du corps de la boucle (TantQue et Répéter) doit absolument
changer la valeur logique de la condition (après un certain nombre
d'itérations), sinon le programme tourne indéfiniment.
2) Il faut éviter de modifier la valeur du compteur (et de finale) à l'intérieur de la
boucle. En effet, une telle action présente le risque d'aboutir à une boucle
infinie.

Exemples des boucles infinies :


Pour i ← 1 jusqu’à 10 Faire i←2 i←1
Ecrire(" i = " , i) Tant Que (i > 0) Faire Répéter
i ← i -1 i ← i+1 Ecrire(" i = " , i)
Fin Pour Fin Tant Que i ← i -1
Jusqu’à (i > =10)
62
1 Structures répétitive ou itérative
(boucles)
Rappels
Instructions d'échappement
Pour rompre le déroulement séquentiel d'une suite d'instructions

BREAK: permet d’arrêter le déroulement de la CONTINUE : permet l’abandon de l’itération courante et le


boucle (for ou while) et le passage à l’instruction qui passage à l’itération suivante
la suit.
for n in range(1, 11):
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
if n % 2 == 1: # si le nombre est impair
search_number = 7
continue # passer à l'itération suivante sans afficher le nombre
for n in numbers:
print(n)
if n ==
search_number:

# si le nombre est
trouvé
print("Nombr 63
e trouvé !")
break

# sortir de la
boucle
1 Exercices
Rappels d’application

Exercice
Ecrire un algorithme et un programme en Python qui demande un nombre de
départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée
comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
•7x1=7
• 7 x 2 = 14
• 7 x 3 = 21
•…
• 7 x 10 = 70

64
1 Exercices
Rappels d’application
Solution

Algorithme
Table_Multiplication
Variables b, i : Entiers nombre = int(input("Entrez un nombre : "))
Début print("Table de multiplication de", nombre, ":")
Ecrire (“Entrer une
valeur : “) Lire (b) for i in range(1, 11):
Pour i allant de 1 à 10 resultat = nombre * i
print(nombre, "x", i,
faire Ecrire (b, “X”, i, "=", resultat)
“=”, b * i) Ecrire (“\
n”)
FinPour
Fin
65

Vous aimerez peut-être aussi