Informatique 2
Informatique 2
Informatique 2 :
Algorithmique 2/Python
Notion de Variable
Opérateurs
Les entrées/sorties 3
1 Instructions élémentaires
Rappels
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).
4
1 Instructions élémentaires
Rappels
Langage Python
o Python est un langage de programmation développé depuis 1989 par Guido van
Rossum et de nombreux contributeurs bénévoles.
5
1 Instructions élémentaires
Rappels
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 à de nombreuses 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 élémentaires
Rappels
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
Démonstration 7
1 Instructions élémentaires
Rappels
Structures d’un algorithme
L'algorithme doit avoir une structure bien définie. Cette structure doit comporter :
8
1 Instructions élémentaires
Rappels
Structures d’un algorithme
Algorithme nom_algo
Début
Iinstruction1
Instruction 2
Traitement
Suite d’instructions &
Instruction 3
Résultats
… …
Instruction n
Fin 9
1 Instructions élémentaires
Rappels
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 :
Exemples:
Variables i, j, k : Entier
x, y : Réel
OK: Booléen
C1, C2 : Caractère
10
1 Instructions élémentaires
Rappels
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.
Exemple:
12
1 Instructions élémentaires
Rappels
Syntaxe en Python
13
1 Instructions élémentaires
Rappels
Opérateurs
Opérateurs arithmétiques
Opérateur Fonction Exemple Langage Python
+ Addition X+Y +
- Soustraction X-Y -
* Multiplication X*Y *
14
1 Instructions élémentaires
Rappels
Opérateurs
Opérateurs de comparaison
Opérateur signification Langage Python
= Egal ==
<> Différent !=
15
1 Instructions élémentaires
Rappels
Opérateurs
Opérateurs logiques
OU Ou inclusif or
ET Et logique and
16
1 Instructions élémentaires
Rappels
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 élémentaires
Rappels
Instructions d’entrées-sorties: lecture et écriture
Syntaxe en Python
Saisie de données
21
1 Instructions élémentaires
Rappels
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)
print("x :",x)
print("y :",y)
test = ( x + y) / 2
print("Résultat :",test)
23
1 Exercices d’application
Rappels
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 d’application
Rappels
Solution
Algorithme nom
Variables name : chaîne de caractères
Début
Ecrire ("Quel est ton nom?") name = input("Quel est ton nom? ")
print ("Bonjour, ", name)
Lire (name)
Ecrire ("Bonjour, ",name)
Fin
25
1 Exercices d’application
Rappels
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 d’application
Rappels
Solution 1
Algorithme deux_nombres_entiers
Variables x,y,t : entier
Début
x = int(input("x : "))
Ecrire (" x : ") y = int(input("y : "))
Lire (x) print ("x = ", x, ", y = ", y)
t = x
Ecrire (" y : ") x = y
Lire (y) y = t
print ("x = ", x, ", y = ", y)
Ecrire (" x = " , x , " , y = " , y)
t=x
x=y
y=t
Ecrire (" x = " , x , " , y = " , y)
Fin 27
1 Exercices d’application
Rappels
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 d’application
Rappels
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 d’application
Rappels
Solution 1
Algorithme trois_notes_moyenne
Variables x,y : entier
note1 = float(input("Entrer la note n°1: "))
moyenne : réel note2 = float(input("Entrer la note n°2: "))
Début note3 = float(input("Entrer la note n°3: "))
Ecrire (" Entrer la note n° 1 : ") moyenne = ( note1 + note2 + note3) / 3
Lire (note1)
print("La moyenne est : " , moyenne)
Ecrire (" Entrer la note n° 2 : ")
Lire (note2)
Ecrire (" Entrer la note n° 3 :" )
Lire (note3)
moyenne = (note1+note2+note3)/3
%.2f permet de formater une chaîne de caractères qui représente un nombre flottant avec
deux décimales
Le "f" signifie que le nombre est de type flottant
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 d’application
Rappels
Solution 3
32
1 Structures alternatives (conditionnelles/Tests)
Rappels
Définition
Condition Composée :
Exemples : (Moy>13) ET (Moy <= 16)
33
1 Structures alternatives (conditionnelles/Tests)
Rappels
Séquence2 Séquence2
Finsi
Le bloc "else" est optionnel. 34
1 Structures alternatives (conditionnelles/Tests)
Rappels
Exemple d’application
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
39
1 Structures alternatives (conditionnelles/Tests)
Rappels Algorithme nomJour
Variable n : Entier
Début n = int ( input (" Entrez un nombre entier : " ))
Ecrire ("Entrez un nombre entier : ") if n == 1 :
Lire (n)
Solution 1 Si (n=1) Alors
print ("Lundi")
Ecrire ("Lundi") elif n==2 :
Sinon Si (n=2) Alors print ("Mardi")
Ecrire ("Mardi") elif n==3 :
Sinon Si (n=3) Alors print ("Mercredi")
Ecrire ("Mercredi") elif n==4 :
Sinon Si (n=4) Alors print ("Jeudi")
Ecrire ("Jeudi") elif n==5 :
Sinon Si (n=5) Alors print ("Vendredi")
Ecrire ("Vendredi")
elif n==6 :
Sinon Si (n=6) Alors
Ecrire ("Samedi") print ("Samedi")
Sinon Si (n=7) Alors elif n==7 :
Ecrire ("Dimanche") print ("Dimanche")
Sinon else :
Ecrire ("Jour inexistant ") print ("Jour inexistant")
Finsi 40
Fin
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 qui
Cas1:
est équivalente à l’instruction Selon..Cas case cas1:
#Traitement à faire
#Traitement à faire
o Avec la version Python 3.10 (2021-10-04), Cas2:
case cas2:
La communauté de python a ajouter une #Traitement à faire
nouvelle instruction appelée match. …….. #Les autres cas
#Traitement à faire
…….. #Les autres cas
Sa syntaxe est la suivante : Sinon :
case _:
#Traitement à faire
#Traitement à faire
FinSelon
41
1 Structures alternatives (conditionnelles/Tests)
Rappels
n = int ( input (" Entrez un nombre entier : " ))
Algorithme nomJour match n :
Variable n : Entier
Solution 2 Début
case 1:
Ecrire ("Entrez un nombre entier : ") print ("Lundi")
Lire (n) case 2:
Selon n print (" Mardi ")
1 : Ecrire ("Lundi") case 3:
2 : Ecrire ("Mardi") print (" Mercredi ")
3 : Ecrire ("Mercredi") case 4:
4 : Ecrire ("Jeudi") print (" Jeudi ")
5 : Ecrire ("Vendredi") case 5:
6 : Ecrire ("Samedi") print (" Vendredi ")
7 : Ecrire ("Dimanche") case 6:
Sinon : Ecrire ("Jour inexistant") print (" Samedi ")
FinSelon case 7:
Fin print (" Dimanche ")
case _:
print ("Jour inexistant") 42
1 Exercices d’application
Rappels
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 d’application
Rappels
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 d’application
Rappels
Solution en Python
45
1 Exercices d’application
Rappels
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 d’application
Rappels
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 " ,nb_jours, "jours. ")
Fin 47
1 Exercices d’application
Rappels
Solution 1 en Python
if mois == 2:
nb_jours = 28
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()
if mois == 2:
nb_jours = 28
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()
49
1 Exercices d’application
Rappels
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 d’application
Rappels
Solution en Algorithme Solution en Python
Algorithme Prix_Photocopies
Variables N, prix : Entier
N=int(input("Nombre photocopies:"))
Début
if N<=10 :
Ecrire ("Nombre de photocopies : ")
prix = N*0.1
Lire (N) elif N<=20 :
Si N <= 10 Alors prix = 10*0,1+(N-10)*0.09
prix ← N * 0,1 else:
SinonSi N <= 20 Alors prix = 10 * 0,1 + 10 * 0,09 + (N – 20) * 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
Ecrire ("Le prix total est: ", prix)
Fin
51
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.
52
1 Structures répétitive ou itérative (boucles)
Rappels
54
1 Structures répétitive ou itérative (boucles)
Rappels
Exemple d’application
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:" , note) ;
56
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
Fin Pour
58
1 Structures répétitive ou itérative (boucles)
Rappels
Exemple d’application
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 :
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 d’application
Rappels
Solution
Algorithme Table_Multiplication
Variables b, i : Entiers
Début nombre = int(input("Entrez un nombre : "))
Ecrire (“Entrer une valeur : “) print("Table de multiplication de", nombre, ":")
Lire (b)
Pour i allant de 1 à 10 faire for i in range(1, 11):
resultat = nombre * i
Ecrire (b, “X”, i, “=”, b * i) print(nombre, "x", i, "=", resultat)
Ecrire (“\n”)
FinPour
Fin
65