Académique Documents
Professionnel Documents
Culture Documents
SMIA S2
2020/2021, Semestre 2
Mme HANNANE RACHIDA
Département d’Informatique
Références :
Ce cours a été dispensé par
Kaddioui 2018 – FSSM-Marrakech
Charlie-soft 2017
El Bachari 2016 – FSSM-Marrakech
Julien Serment 2005 – BTS IRIS France.
et d’autre auteurs . Qu’ils en soient tous remerciés.
1
1
Objectif et plan du cours
Objectif :
Apprendre les concepts de base de l'algorithmique et de la
programmation
Etre capable de mettre en œuvre ces concepts pour analyser
des problèmes simples et écrire les programmes
correspondants
Plan :
Algorithmique (a"ectation, instructions conditionnelles,
instructions itératives, fonctions, procédures, …) : en TD
Langage python (un outil de programmation) : en TP
2
2
Emploi du temps
3
Chapitre I
Introduction à L'algorithmique
4
4
Etapes de réalisation d'un programme
La
Laréalisation
réalisationdedeprogrammes
programmespasse
passepar
parl’écriture
l’écriture
d’algorithmes
d’algorithmes
D’où
D’oùl’intérêt
l’intérêtde
del’Algorithmique
l’Algorithmique 5
5
Algorithmique
7
Algorithme
Dé8nition :
Un algorithme est une description complète et détaillée
des actions à e"ectuer et de leur enchaînement (consécution)
pour arriver à un résultat donné (souhaité)
8
Étapes d’un algorithme
Préparation du traitement :
Saisie (entrée) des données nécessaires à la résolution du
problème.
Traitement :
Résolution pas à pas, après décomposition du problème
en sous-problèmes si nécessaire
• Édition (sortie) des résultats
Impression à l’écran, ou dans un 8chier (sur disque dur
ou clé USB, ou autre) etc ...
9
Merveilleux Algorithme de l’Homme
d’après, Al-Khawarizmi le père de l’Algèbre et de l’Algorithmique
10
Représentation d'un algorithme
L'Organigramme :
+ représentation graphique avec des symboles
(carrés, losanges, etc.)
+ o"re une vue d'ensemble de l'algorithme
- presque abandonnée aujourd’hui
Le pseudo-code :
+ représentation textuelle avec des conventions
comme celles d’un langage de programmation
(mais sans problème de syntaxe)
+ plus pratique pour écrire un algorithme
+ représentation largement utilisée
11
11
Chapitre II
Notions et instructions de
base
Le pseudo-code
deviendra un programme
12
12
Organisation d'un Algorithme
DEBUT
Instruction1
Instruction2 Action
… (Corps de l’algorithme)
FIN
13
Ville Chambres Surface
CodePostal
14
Notion de variable
Une variable possède :
une valeur contenue dans la case mémoire
un identi8cateur : nom unique pour accéder à ce contenu
un type qui dé8nit la taille de la place occupée en mémoire
15
Variable
16
Déclaration statique et dynamique
de variable
Déclarer une variable c’est :
réserver une place en mémoire
attribuer l'identi8cateur à cette place
Déclaration Statique Déclaration dynamique
On indique : On indique :
L'identi8cateur l’identi8cateur
le type La valeur
Exemple :
Exemple :
VAR maVar : réel …
... maVar 2.32
maVar 2.32
17
Types 1/3
18
Types (2/3)
19
Exemple de variables en mémoire
Mémoire centrale
X 25 (mémoire vive) Adresses
des cases
Identi8cateur : X mémoire
...
Type : entier
Valeur : 25 510
X 25 511
Y 3.7 512
Identi8cateur : Y
Y 3.7 513
Type : réel
514
Valeur : 3.7
...
20
20
Les Opérateurs
Exemple d’opération ( X, Y et Z dont des variables réels)
Y 3.5 // a"ectation
X 10.0 // a"ectation
ZX*Y // Calcul de X*Y , (3.5 * 10.0 = 35.0) et après,
// a"ectation de la valeur 35.0 à la variable Z
Par exemple, peut multiplier 2 nombres réels, mais pas deux caractères (ou
chaîne de caractères) :
2.5*2.0 =5.0 est correct
mais ‘A’*’MINA’ n’a aucun sens
21
21
Pour le type Réel
addition +
soustraction -
multiplication *
Division /
comparaisons <, ≤, >, ≥, =, ≠
22
22
Pour le type Entier
23
23
Caractères
Opérations possibles Opérateur ou mot clé
La Comparaison basée sur le <, ≤,>,≥,=,≠
code ASCII des caractères
Exemple : en base 10 :
'A' a pour code ascii : 65
'p' a pour code : 112
On a donc : ‘p' > 'A'
Et de la même façon
'm' >'M' et 'm' < 'n', …
24
24
Chaînes
Concaténation &
Longueur (nombre de caractères) Longueur (chaîne)
Exemple :
Var NomPrenom : chaine
NomPrenom "Moujtahid Fatma"
dans cet exemple, longueur(NomPrenom) vaut 15
25
25
Booléens
opérations Opérateur
possibles ou mot clé
●
comparaison =,≠
●
négation NON
●
conjonction ET
●
disjonction OU
26
26
LES INSTRUCTIONS
27
Instructions
28
28
Informations manipulées par les
instructions
Ces informations peuvent prendre plusieurs formes:
des variables, des constantes, des valeurs littérales
exemple : r, Pi, "bonjour", 45, VRAI
des expressions complexes :
combinaisons de variables, de constantes et de
valeurs littérales avec des opérateurs
Exemple : calcul du perimetre d’un cercle de rayon r
Const Pi ⃪ 3.14 : réel la variable perimetre
Var r, perimetre : réel prend la valeur 31.4
r ⃪ 5.0 2 * 3.14 * 5.0 = 31.4
perimetre ⃪ (2 * Pi * r )
29
29
Les instructions élémentaires
A"ectation :
permet de donner une nouvelle valeur à une variable
(mettre une valeur dans la boite variable)
Lire ou Saisir :
Permet à l'ordinateur de prendre la valeur
que l'utilisateur tape au clavier.
Ecrire ou a+cher :
Permet à l'ordinateur d'a+cher sur l'écran ce qu'on veux
montrer à l’utilisateur
( par exemple le résultat d'un calcul ou la valeur d’une
variable…)
30
30
L'affectation
Syntaxe : Variable ← Valeur
Valeur:est une nouvelle valeur
déterminée à partir d’une :
Variable (le contenu d'une boite…)
Constante (une valeur 8xe : PI, …)
Valeur littérale (3, 5.12, 'a', "Maison", Vrai ,Faux, …)
Expression complexe (un calcul , …)
31
31
Exemples
a) Y ← 12 a) b) c)
b) X ← Y 12 12 25
c) X ← 25 12
d) X ← 3.3
e) C ← 'a'
f) maChaine ← "bonjour"
h)
g) B ← VRAI
72
h) X ← 25 + Y + 35 3.3
32
32
Affectation d’une variable à une autre
X ← Y
a) b) c) d)
12 30
12 12 12
Quand une variable X prend pour valeur une variable Y, on dit aussi
on a"ecte Y à X, on met X à la valeur de Y, X reçoit la valeur de Y, ...
Ça veut dire que la variable X prend la même valeur que Y (8gure b)
le Contenu de la boite mémoire X sera le même que celui de Y
Ça ne veut pas dire que les contenus de X et Y seront toujours égaux.
Si on modi8e ensuite le contenu de Y (8gure c)
alors le contenu de X ne changera pas (8gure d)
33
33
Di"érence entre le signe = en Math et
l’a"ection en Algorithmique
En langage de programmation, le signe = joue le rôle du signe
le signe = est utilisé comme signe d’a"ectation
x 0 et y 5 on écrit : x = 0 et y = 5
En Maths, le signe = est di"érent du signe
En Algo : x y est di"érent de y x
En Maths : x = y équivaut à y = x
En Algo : x + 12 y est impossible !
En Maths : x + 12 = y a un sens
En Algo : x x + 7 a un sens
En Maths : x = x + 7 est impossible (<=> 0=7)
34
La saisie
Syntaxe pour N variables, N>=1 :
Saisir (variable1, variable2, …, variableN)
oubien
Lire (variable1, variable2, …, variableN)
Permet à un utilisateur de communiquer des données au
programme :
Tant que l'utilisateur n'entre rien au clavier, le programme
est stoppé et attend la saisie.
A"ecte aux variables, respectivement les valeur entrées au
clavier.
35
35
Exemples
(Saisie ou lecture d’une ou plusieurs variables)
Saisir(x) ou Lire(x) : la valeur de x (2 par exemple) doit
être tapée au clavier par l’utilisateur, suivi de la touche
Entrée.
Lire(x,y): la valeur de x et la valeur de y, seront tapées
au clavier par l’utilisateur, séparées par un espace ou
par une virgule ,
La saisie se termine par la touche Entrée.
Exemple : Lire(x,y) pour avoir x=2 et y=3, l’utilisateur
doit taper 2 3 Entrée
Lire(a, b, c, d, e, f) (ici aussi même procédure)
36
36
Avantages
Les variables :
un programme qui utilise des variables, peut être utilisé
pour plusieurs données (valeurs) di"érentes
Les instruction de saisie : ( Entrées ou input, d’un périphérique
d’entrée : clavier, clef Usb, 8chier, … )
un programme qui utilise des instructions de saisie, peut
utilisés pour plusieurs données di"érentes, avec des
résultats di"érents
un programme qui ne contient aucune instruction de
saisie, va fournir toujours le même résultat.
37
37
L'affichage
Syntaxe :
A+cher (variable1,variable2,…,variableN)
ou bien
Ecrire (variable1,variable2,…,variableN)
L'instruction d'a+chage permet de fournir des
résultats à l'utilisateur sur l'écran.
Valable aussi pour les constantes et valeurs littérales
38
38
Exemples
Afficher(x)
Ecrire("bonjour")
Afficher(x, y, z)
Ecrire(x + y)
Ecrire("le résultat de x+y est:",x + y)
39
39
Avantages des instructions de Sortie :
A+cher ou Ecrire
40
40
Pièges
41
41
Exemple complet
ALGORITHME bonjour
CONST bj "Bonjour" : chaîne
mr "Monsieur " : chaîne
VAR Nom, ch : chaîne
DEBUT
A+cher ("Quel est votre nom ?")
Saisir(Nom)
ch mr & Nom
A+cher( bj, ch)
FIN
42
42
Trace d'un algorithme inconnu
43
43
Notre exemple en langage python
À gauche le programme et à droite l’algorithme en
commentaire (le # et tout ce qui est à droite du # est ignoré
et ne sera pas executé)
44
En Résumé 1
45
45
En Résumé 2
Une variable est un contenant (une boîte), qui contient une et une seule
valeur à un moment donné.
Elle est caractérisée par
un identi8cateur (son nom)
une valeur (qui peut varier au cours du programme, sauf pour les
constantes)
un type (qui détermine sa taille et les opérations possibles)
Les instructions de base sont :
l'a"ectation (permet de changer la valeur d'une variable)
la saisie (permet donner à une variable, une valeur entrée au clavier)
l'a+chage (permet d'écrire le contenu d'une variable ou d'une
expression à l'écran)
46
46