17/10/2025
2025-2026
1
1
Chapitre 1:Généralités, Rappels
Et Instructions de base de Python
2
2
1
17/10/2025
Question clé du module informatique:
On dispose du matériel informatique (microprocesseur,
mémoire vive, périphériques d’entrée, périphériques de
sortie, et périphériques de stockage). Comment exploiter
ce matériel et le programmer pour résoudre des
problèmes ?
Deux situations:
1) utilisation des programmes faits par d’autres
personnes.
2) Création de nouveaux programmes
3
3
ALGORITHME
Algorithme du surnom latin Algorismi du mathématicien Arabe
Al Khwarizmi.
Définition: Un algorithme est une suite d’actions précises
qui doivent être exécutées dans un ordre déterminé en vue
de la résolution d’un problème.
Objectifs:
Un algorithme sert à transmettre un savoir faire.
Il décrit les étapes à suivre pour réaliser un travail.
Il permet d'expliciter clairement les idées de solution d’un
problème indépendamment d'un langage de programmation.
L'utilisateur d'un algorithme n'aura qu'à suivre les instructions,
dans l'ordre pour arriver au résultat que doit donner l'algorithme.
«Ce que l’on conçoit bien s’énonce clairement et les
mots pour le dire arrivent aisément» [N. Boileau]
4 4
2
17/10/2025
QU'EST-CE QU'UN BON ALGORITHME / PROGRAMME?
On peut noter qu'un bon algorithme est un schéma résolution
possédant les caractéristiques suivantes :
• Correct: s'il répond au problème posé.
• Précis: s'il fournit exactement les résultats attendus
• Rapide : s'il utilise un temps d'exécution minimal
indépendamment de la vitesse de la machine.
• Efficace: s'il utilise le moins d'espace mémoire possible
• Clair et lisible : s'il ne présente pas de difficulté de
compréhension pour un autre programmeur
désirant le maintenir ou le développer,
• Résistant : s'il est capable de détecter les cas de mauvaises
utilisations.
5
5
•Exemple
L'algorithme suivant décrit l'usage d'un appareil téléphonique à pièces de monnaie
pour effectuer une communication:
Début
Décrocher l'appareil;
Insérer les pièces nécessaires;
Composer le numéro désiré;
L’interlocuteur décroche l’appareil
Parler;
Raccrocher;
Fin
Remarque :
On a une représentation de la solution du problème sous la forme d’un algorithme. Mais
certains cas n’ont pas été prévus (numéro occupé par exemple), d’où insuffisance de la
solution proposée. Il est nécessaire de détailler au maximum les ordres élémentaires
connus par la machine et prévoir tous les cas possibles. La machine ne peut pas intervenir
dans les cas non prévus (elle ne peut pas réfléchir, elle exécute vos ordre uniquement).
6
6
3
17/10/2025
Les variables et les constantes
• Une variable est une entité qui 14.25
contient une information, elle Valeur
possède :
– un nom (on parle d’identifiant) Noteinfo
– une valeur Identificateur Données
– un type qui caractérise Réel
l’ensemble des valeurs que peut Type
prendre la variable ainsi que les
opérations permises. Un nom (identificateur d’une variable)
doit commencer par une lettre
• Les variables sont stockées dans la alphabétique etdoit être constitué
mémoire de l’ordinateur et sont uniquement de lettres, de chiffres et du
modifiables contrairement aux soulignement _ (Eviter les caractères de
ponctuation et les espaces)
constantes (Pi=3.14 par exemple) Et doit être différent des mots réservés
du langage.
7
7
Les variables et les constantes
• Type de variable
– entier (python: int) pour manipuler des entiers
– réel (python: float) pour manipuler des nombres
réels
– booléen (python: bool) pour manipuler des valeurs
booléennes
– Caractère (python: str) pour manipuler des caractères
alphabétiques ou numériques. On peut manipuler des
chaînes de caractères permettant de représenter des
mots ou des phrases.
8
8
4
17/10/2025
• Les opérateurs: +, -, *, / Avec en plus pour les entiers div et mod,
qui permettent respectivement de calculer une division entière et le
reste de cette division.
par exemple :11 div 2 vaut 5, 11 mod 2 vaut 1
En Python: 11//2 vaut 5 et 11%3 vaut 2
• L’opérateur d’égalité :
pour les types simples il permet de savoir si les deux opérandes
sont égales ou non.
Il est représenté par le caractère = (en algo) et par (= =) en python
Le résultat d'une expression contenant cet opérateur est un booléen
• On a aussi l’opérateur d’inégalité : ≠ (en python !=)
• Et pour les types possédant un ordre les opérateurs de comparaison
<, ≤, >, ≥
9
9
Priorités des opérateurs arithmétiques
• Tout comme en arithmétique les opérateurs ont des
priorités Par exemple * et / sont prioritaires sur + et -
Pour les booléens, la priorité des opérateurs est : non,
et, ouExclusif et ou
• Pour supprimer toutes ambiguïtés on peut utiliser des
parenthèses
10
10
5
17/10/2025
Les opérateurs logiques
Les operateurs logiques sont : ET ( and en python), OU (or en
python) et NON (not en python).
-Pour que la condition logique : condition1 ET condition2
soit VRAI, il faut impérativement que la condition1 soit
VRAI et que la condition2 soit VRAI.
- Pour que la condition logique : condition1 OU condition2
soit VRAI, il suffit que condition1 soit VRAI ou condition2
soit VRAI. Il est a noter que cette condition logique sera
VRAI si condition1 et condition2 sont VRAI.
- Le NON inverse une condition : NON(condition)
Est VRAI si condition est FAUX, et il sera FAUX si
condition est VRAI. 11
11
12
12
6
17/10/2025
Manipulation des variables
• On peut faire deux choses avec une variable :
1. Obtenir son contenu: cela s’effectue simplement en
appelant la variable par son nom
2. Affecter un (nouveau) contenu: cela s’effectue en
utilisant l’opérateur d’affectation représenté par le
symbole ←
La syntaxe de cet opérateur est :
identifiant_de_la_variable ← expression
En python: identifiant_de_la_variable = expression
13
13
Manipulation de variables
• Par exemple l’expression c ← a + b :
On prend la valeur contenue dans la variable a et
celle contenue dans la variable b. On additionne ces
deux valeurs et on met ce résultat dans la variable c
• Si c avait auparavant une valeur, cette dernière est
perdue !
• Un algorithme peut avoir des interactions avec
l’utilisateur. il peut afficher un résultat (du texte ou le
contenu d’une variable) ou demander à l’utilisateur de
saisir une information afin de la stocker dans une
variable
• En tant qu’informaticien on raisonne en se mettant
“à la place de la machine” 14
14
7
17/10/2025
Les entrées / sorties
• Instruction d'écriture:
L'instruction de restitution de résultats sur le
périphérique de sortie (en général l'écran) est :
écrire(liste d'expressions)
En Python: print(" X= ",X, " Y= ", Y, ……)
Cette instruction réalise simplement l'affichage des
valeurs des expressions décrites dans la liste.
Ces instructions peuvent être simplement des
variables ayant des valeurs ou même des nombres ou
des commentaires écrits sous forme de chaînes de
caractères.
– Exemple d'utilisation : écrire(x, y+2, "bonjour")
15
15
Les entrées / sorties
• Instructions de lecture:
L'instruction de prise de données sur le périphérique
d'entrée (en général le clavier) est :
variable ← lire() ou lire(variable)
En Python:
variable = (int, float, …) (input(« votre message"))
L'exécution de cette instruction consiste à affecter
une valeur à la variable en prenant cette valeur sur le
périphérique d'entrée.
Avant l'exécution de cette instruction, la variable
avait ou n'avait pas de valeur. Après, elle a la valeur
prise sur le périphérique d'entrée.
16
16
8
17/10/2025
Structure séquentielle
a- Définition
On dit qu'un algorithme a une structure séquentielle lorsque les instructions
s'exécutent d'une manière linéaire une après une du début jusqu'à la fin.
b- exemple
Soit l'algorithme suivant:
Algorithme moyenne;
Variables NT1, NT2, NT3, MOY : Réel;
Début
LIRE (NT1);
LIRE (NT2);
LIRE (NT3);
MOY← (NT1+ NT2+ NT3)/3;
ECRIRE (MOY);
Fin
Cet algorithme a une structure séquentielle, les instructions s'exécutent
d'une manière linéaire (l'une après l'autre).
17
17
Exercice 1 : Exercice 2: Écrire un algorithme qui permet
Quels sont les messages affichés à de saisir le prix "Hors taxe" d'une
l’cran après l’exécution des marchandise et d’afficher ensuite le prix
instructions suivantes ? "TTC" sachant que cet article a une T.V.A
1. A<---2 (constante) de 20%. Traduire en Python
2. A<---A+2
3. B<---A*2+A Exercice 3: Écrire un algorithme saisissant
4. C<---4 deux variables entières et qui calcule et
5. C<---B-C affiche leur moyenne. Traduire en Python
6. C<--- C+A-B
7. A<--- B-C*A Exercice 4: Écrire un algorithme saisissant
8. A<--- (B-A)*C un temps en secondes que l’on transcrira en
9. B<--- (A+C)*B jours, heures, minutes et secondes. Traduire
en Python.
10. Ecrire(‘la valeur de A est :’ , A)
11. Ecrire(‘la valeur de B est :’ , B)
Exercice 5: Écrire un algorithme saisissant
12. Ecrire(‘la valeur de C est :’ , C)
la valeur d’une variable X, puis il calcule la
valeur de X16 (rapidement). Traduire en
Traduire cet algorithme au langage
Python.
Python
18
18
9
17/10/2025
Structure conditionnelle ou alternative
• L’instruction si alors sinon permet de conditionner l’exécution
d’un algorithme à la valeur d’une expression booléenne.
Syntaxe :
si expression booléenne alors
suite d’instructions exécutées si l’expression est vrai
sinon
suite d’instructions exécutées si l’expression est
fausse
finsi
Remarque: cette structure est appelée structure alternative ou
sélective simple. S’il n’y a pas le sinon, elle est appelée
structure sélective réduite.
19
19
Exemple en algorithmique:
Algorithme equationDeuxiemeDegre
Variable a,b,c,delta,x1,x2: réels
Début
Ecrire(« donner a, b et c: »)
Lire(a,b,c)
deltab*b-4*a*c
Si(delta<0) alors ecrire(« pas de solutions »)
sinon si (delta=0) alors ecrire(« une solution:»,-b/(2*a))
sinon x1 (-b-racine(delta))/(2*a)
x2 (-b+racine(delta))/(2*a)
Ecrire(« 2 solutions: »,x1,x2)
Finsi
Finsi
Fin 20
20
10
17/10/2025
Exemple en python:
from math import *
print("donner a, b et c: ")
a=float(input("")); b=float(input("")); c=float(input(""));
delta=b*b-4*a*c
if(delta<0) :
print("pas de solutions ")
elif(delta==0) :
print("une solution:",-b/(2*a))
else:
x1 =(-b-sqrt(delta))/(2*a)
x2 =(-b+sqrt (delta))/(2*a)
print("2 solutions:" ,x1,x2)
21
21
Définition
Dans un algorithme ayant une structure alternative les instructions s'exécutent selon la réalisation
d'une condition ou non.
•La condition est une expression logique de type X Relation Y
Avec Relation est l'un des opérateurs de comparaison Suivants:
Opérateur signification Langage Python
= Egal ==
<> ou Différent !=
< Strictement inférieur <
> Strictement supérieur >
<= Inférieur ou égal <=
>= Supérieur ou égal >=
La condition peut être:
Condition simple: Exemples: a<2000; Moy<10;
Condition Composée: Exemple: (Moy>13) ET (Moy <= 16)
22
22
11
17/10/2025
Instruction conditionnelle En Python:
if (conditions 1): ATTENTION à l’indentation en Python !!!!
……………….
elif (conditions 2):
……………….
elif (conditions 3):
…………….
else :
……………….
Les blocs d'instructions sont toujours associés à une ligne
d'en-tête contenant une instruction bien spécifique (if, elif,
else, while,for, def, ...) se terminant par un double point.
23
23
24
24
12
17/10/2025
Instruction conditionnelle
Exemple: Organigramme:
Algorithme ValeurAbs
Variables: valeur, valeurabsolue : réels.
début
Ecrire (‘donner un nombre’);
Lire (valeur);
si valeur ≥ 0 alors
valeurabsolue ← valeur
sinon
valeurabsolue ← valeur * -1
finsi
Ecrire(valeurabsolue )
fin
25
25
Instruction conditionnelle
Exercice 6:
Ecrire l’exemple précédent en langage Python:
Réponse:
print("entrer un nombre");
valeur=float(input()); # (float pour l'ensemble IR et int pour
# l'ensemble Z)
if valeur>=0:
valabsolue=valeur
else:
valabsolue=-1.0*valeur
print("la valeur absolue est: ", valabsolue)
26
26
13
17/10/2025
La boucle déterministe
• Il est fréquent que le nombre de répétitions soit connu à
l'avance, et que l'on ait besoin d'utiliser le numéro de l'itération
afin d'effectuer des calculs ou des tests. Le mécanisme
permettant cela est la boucle Pour.
• Forme de la boucle Pour :
Pour variable de valeur initiale à valeur finale faire
liste d'instructions
fin pour
-------------------------------------------------------------------------
En Python:
for <cible> in <objet>:
<instructions>
else :
<instructions>
27
27
• La boucle for fonctionne sur les chaînes, les listes, les tuples et
d’autres objets.
• La partie else: … est optionnelle.
• L’instruction range (a,b,pas) permet de créer une liste L
croissante ou décroissante d’entiers successifs . aL, a+pas L,
a+2*pas L, a+3*pas L, ….. Et x L: x<b
• Exemple:
for i in range(10,20,3):
print (i);
else:
print("Sortie de la boucle avec i=",i);
input();
Donne à l’exécution: 10
13
16
19
Sortie de la boucle avec i= 19
28
28
14
17/10/2025
Représentation graphique (organigramme) de la boucle pour :
Pour i= i_initiale à i_finale faire
instructions
Fin pour
i ←a
Vrai
i <b instructions i ← i + pas
faux
29
29
boucle indéterministe
• L'utilisation d'une "boucle pour" nécessite de connaître
à l'avance le nombre d'itérations désiré, c'est-à-dire la
valeur finale du compteur. Dans beaucoup de cas, on
souhaite répéter une instruction tant qu'une certaine
condition est remplie, alors qu'il est à priori impossible
de savoir à l'avance au bout de combien d'itérations
cette condition cessera d'être satisfaite. Dans ce cas, on
a deux possibilités :
la boucle Tant que et la boucle Répéter jusqu'à
• Syntaxe de la boucle Tant que :
tant que condition faire
liste d'instructions
ftant
30
30
15
17/10/2025
Les répétitions conditionnelles
• Etant donné que la condition est évaluée avant
l'exécution des instructions à répéter, il est possible
que celles-ci ne soient jamais exécutées.
• Il faut que la liste des instructions ait une incidence
sur la condition afin qu'elle puisse être évaluée à
faux et que la boucle se termine.
• Il faut toujours s'assurer que la condition devient
fausse au bout d'un temps fini.
• Exemple :Un utilisateur peut construire des
rectangles de taille quelconque, à condition que les
largeurs qu'il saisit soient supérieures à 1 pixel.
31
31
En Python:
La boucle while exécute un bloc tant que la condition de continuité est
vérifiée. La particularité de ce while est qu’il peut y avoir un else optionnel
dont le bloc sera exécuté lorsqu’on sort de la boucle.
while <test> :
<instructions>
Exemple: programme qui compte le nombre de chiffres d’un nombre
a=(int)(input("Entrer un entier:"));
if a==0:
print("le nombre de chiffres est:",1);
else:
nbchif=0;
while a>0:
a=a//10;
nbchif=nbchif+1;
print("le nombre de chiffres est:",nbchif);
32
32
16