Vous êtes sur la page 1sur 46

Algorithmique I

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

Chaque étudiant aura une séance TP hebdomadaire les


dates voir l'a*chage
20 heures de cours (1 séance hebdomadaire)
30 heures de TD/TP integré
Ressources pédagogiques disponible sur la plateforme
https://ecampus-fssm.uca.ma/
Évaluation : QCM + Contrôle Continu + Contrôle 8nal et
Rattrapage.

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

Le terme algorithme vient du nom du


mathématicien arabe Al-Khawarizmi
(820 après J.C.)

L'algorithmique désigne aussi la discipline qui étudie les


algorithmes et leurs applications en Informatique

Une bonne connaissance de l'algorithmique permet d'écrire


des algorithmes exacts et e+caces
6
6
Concepts Importants En Informatique

Algorithme : du nom du mathématicien al_Khwarizmi,


Un algorithme prend des données en entrée, applique un
traitement particulier et fournit des données en sortie.
Programme : série d’instructions pouvant s’exécuter en
séquence, ou en parallèle (parallélisme matériel) qui réalise
(implémente) un algorithme sur une machine.

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é)

Intérêt : séparer analyse et codage (évite les problèmes de syntaxe)


Qualités:
exact (fournit le résultat souhaité),
e+cace (temps d'exécution minimum, mémoire occupée minimum),
clair (compréhensible par tous),
général (traite le plus grand nombre de cas possibles), …

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

Si l’Homme est éthique et plein de morale :


c’est = 1
S’il est en plus charmant :
on lui ajoute un zéro, c’est = 10
S’il est riche :
On lui ajoute un autre zéro, c’est =100
S’il est d’origine noble :
On lui ajoute un autre zéro et c’est = 10000
Si la valeur morale (nombre 1) de cette personne disparaît :
il ne lui reste que les zéros qui n’ont aucune valeur
*Parole des sages à travers les ages*

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

Exemple d’un algorithme :


Algorithme monProgr

/* Constantes: initialisation obligatoire */


CONST const1 ← 10 : entier
const2 ← "bonjour!" : chaîne déclaration
Pi ← 3.1415 : réel
// les variables au sens strict
VAR varReel1, varReel2 : réels
varChaine : chaîne

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

Ne pas confondre la variable et son contenu


Une variable est un contenant (case ou boîte)
Le contenu d'une variable est une valeur numérique,
alphanumérique…

15
Variable

Une variable (déclarée par le mot VAR)


est donc une " boite " :

dans laquelle on met une valeur (un nombre, un mot…)

qui peut changer (sa valeur peut être modi8ée par
exemple par l’utilisateur)

Une variables dont la valeur ne change pas au cours de


l'exécution de l’Algorithme est appelée variable constante
(déclarée par le mot CONST)

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

Type entier : les nombres entiers signés et non signés


Exemples : 3 45 -133
Type réel : les nombres réels
Exemples : 3.14 -37.7
Type booléen : 2 valeurs sont possibles : VRAI ou FAUX
Exemple : 3>2 vaut VRAI et 4<2 vaut FAUX

18
Types (2/3)

Type caractère : lettres, chi"res, ponctuation, code des


opérations, espace, retour chariot, etc…

Exemples : 'a' '+' '.' ' '

Type chaîne de caractère : suites de caractères

Exemples : "Bonjour" "COP22-Marrakech"

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

Les opérations possibles (+ - * / …) sur les variables


dépendent du type de ces variables.

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

opérations possibles Opérateur ou mot clé

addition +
soustraction -
multiplication *
Division /
comparaisons <, ≤, >, ≥, =, ≠

22
22
Pour le type Entier

Opérations possibles symbole ou mot clé


addition +
soustraction -
Multiplication *
Division /
Division entière DIV
Modulo MOD ou %
Comparaisons <, ≤, >, ≥, =, ≠

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

opérations possibles symbole ou mot clé

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

Une Instruction est un ordre que l'ordinateur peut


exécuter. Un programme est constitué d’instructions
Quand un programme s’exécute, il y a :
Échanges d'informations en mémoire
Calculs
A+chage de résultats

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)

On peut afficher plusieurs choses à la suite grâce à la virgule !

39
39
Avantages des instructions de Sortie :
A+cher ou Ecrire

Quand on utilise les instructions de sortie : a+cher ou Ecrire,


cela permet de :
fournir un résultat,

guider l'utilisateur en lui indiquant ce qu’il doit faire

A+cher des valeurs intermédiaires, pour information,


Déboguer (rechercher les erreurs dans un programme).

40
40
Pièges

L’utilisateur peut Saisir une valeur ne correspondant pas


au type de la variable où elle doit être stockée
S’il saisie au clavier une valeur de type chaîne de
caractère(exemple son Nom) qui sera a"ectée à une
variable de type réel (exemple sa Moyenne Générale).
L'utilisateur peut penser que le programme s'est arrêté
Si il n'y a rien d'a+ché, l'utilisateur ne voit qu'un
curseur clignotant…

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

Ecrire un algorithme : On va ecrire en pseudo-code les règles


de traitement d’un problème, avant de les traduire en
programme sur ordinateur.
Les données d’un programme sont mémorisées dans des
variables qui sont des cases mémoire

Les instructions permettent de manipuler et de déplacer


une donnée d'un endroit à un autre de la mémoire

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

Vous aimerez peut-être aussi