Vous êtes sur la page 1sur 65

École Supérieure de Technologie Khénifra

Chapitre
1
Introduction à Filière : GTER/S1

l’algorithmique

1
🞄Définition de
l’algorithme
🞄Définition de la
Plan du variable?
🞄Définition du type ?
chapitre 🞄Définition de
1 l’expression?
🞄Définition de
l’affectation?
🞄Lecture et écriture
2
Qu’est-ce
qu’un
algorithme
?

3
On exécute toujours des algorithmes dans notre vie quotidienne,
à savoir:

Qu’est-ce - Quand on fait les courses au marché;


qu’un - Quand on montre le chemin à un touriste;

algorithme - Quand on exécute une recette de cuisine.

?
On crée et exécute toujours des algorithmes

4
On utilise des algorithmes tous les jours
Prenons l’exemple de la recette de cuisine:

Qu’est-ce
qu’un données

algorithme
?
Instructions
= ordres
=directives

5
On utilise des algorithmes tous les jours
Prenons l’exemple de la recette de cuisine:

Qu’est-ce
qu’un
algorithme
?
Instructions

6
Qu’est-ce
qu’un
algorithme
?
Instructions

7
Qu’est-ce
qu’un
algorithme Résultat

?
Instructions

8
Prenons un autre exemple des courses du marché:

Qu’est-ce
qu’un Sinon Si c’est frais?

algorithme On répète jusqu’à

? ce que tout soit


ranger

Là encore on trie selon une suite d’instructions pour classer les achats
et les mettre au bon endroit

9
Qu’est-ce
Réflexion

qu’un
algorithme Problème Algorithme Résultats

10
Qu’est-ce Vie courante Maths

qu’un Les algorithmes on en trouve depuis très longtemps dans la vie


courante ou en maths (PGCD par exemple),
algorithme mais la programmation informatique dans tout ça?
?

11
Qu’est-ce
qu’un
algorithme
? Si on regarde un ordinateur, c’est une machine
qui exécute des instructions qu’on lui donne et il
nous calcul le résultat.

Ça ne fait ni plus ni moins.

12
Qu’est-ce
qu’un
• Un algorithme est une suite
d'opérations ou d'instructions
algorithme
?
• Un algorithme est la description, dans un langage
universel (pseudo-langage), des opérations nécessaires
pour résoudre un problème

13
l L'avantage du pseudo-langage est qu'il
Notion permet d'écrire tout algorithme de façon formelle.
de
pseudo
La phase de programmation se trouvera
langage l

nécessairement allégée, puisqu'elle se résumera à


adapter l'ensemble des opérations décrites aux
spécificités du langage utilisé.

14
Algorithme

Qui est
Qu’est-ce Destiné à être
qu’un exécuté par une
algorithme machine
? écrit dans un
langage qu’elle
comprend

15
Qu’est-ce
qu’un
algorithme
?
Exemples concrets de résultats d’algorithmes traduits en programmes

16
Quatre phases principales:
1. Analyse du problème

Élaboratio 2. Expressiond'une solution en langage


courant
n d’un
algorithme
3. Expressiond'une solution en pseudo-
langage

4. Tests et Vérification de l'adéquation de la


solution
17
Elle est composée d’une entête et d’un corps

L’entête spécifie:
Structure  Le nom de l’algorithme (Nom)
d’un  Son utilité (But)
algorithm  Quelle sont les données « en entrée », c’est-à-dire
e éléments
les
(Entrée)
qui sont indispensables à son bon fonctionnement

 Quelles sont les données en « sortie », c’est-à-dire


les éléments calculés, produits par l’algorithme (Sortie:)

18
Le corps est composé:
Structure  du mot clés début
d’un  D’une suite d’instructions
algorithm  Du mot clés fin
e

19
Vue d’ensemble de la structure

Structure
d’un
algorithm
e

20
Structure
Instruction est l’expression dans un pseudo-
d’un
l

code ou dans un langage de programmation d ’un


algorithm ordre fourni à la machine.
e

21
Algo exemple
/* La partie déclaration de l’algorithme */
Constantes // les constantes nécessitent une valeur dès leur déclaration cst1
20 : entier

Syntaxe
cst2 "bonjour!" : chaîne
Variables // les variables proprement dites
générale var3, var4 : réels

de var5 : chaîne

l’algorithme Début // corps de l’algorithme

/* instructions */

Fin

22
Exemple de code :

Noms: addDeuxEntiers
But : additionner deux entiers a et b et mettre le
Syntaxe résultat dans c
générale Entrée: a,b : entiers Variables:

de Sortie: c : entiers a,b, c : entiers

l’algorithme
Début
C  a+b
fin

23
🞄 Unevariable est une entité qui
contient une information

Qu’est 🞄 Une variable possède un nom, on parle d’identifiants

ce 🞄 Une variable possède une valeur


🞄 Une variable possède un type qui caractérise
qu’une l’ensemble
variable
des valeurs que peut prendre la variable

🞄 L’ensemble des variables sont stockées


dans la mémoire de l’ordinateur

24
🞄 Les instructions manipulent des objets.
🞄 Chaque objet possède trois qualificatifs :

identificateur, type et une valeur

Notions
 l ’identificateur : est le nom de l ’objet, une suite de lettres et
d’identificateu chiffres dont le premier caractère est une lettre. Exemples :
de
r et type Prix_unitaire, Taille,
Couleur ...
 Le type : détermine l ’ensemble des valeurs dans lequel l
’objet
prend ses valeurs. Exemples : entier, réel, caractère, chaîne de caractères

 La valeur : de l ’objet est un élément quelconque de l ’ensemble de


définition décrit par son type. Exemples : Prix_unitaire = 12345,5 ; Taille =
180
25
🞄 Il y’a deux grande catégories de type simple:

🞄 Ceux dans le nombre des éléments est fini, les dénombrable


🞄 Et ceux dans le nombre des éléments est infinies,les
indénombrables
Les
🞄 Types simple dénombrable
types  Il y’a le type booléen, les variables ne peuvent prendre que les valeurs VRAI
simples ou FAUX
 Il y’a les caractères
 Il y’a les entiers (positifs et négatifs)
 Il y’a les réels
 Il y’a les chaînes de caractères, par exemple «cours» ou «algorithmique»

26
🞄 Un opérateur est un symbole d’opération
qui permet d’agir sur des variables ou de faire
des calculs
Opérateur,
🞄 Un opérande est une entité (variable, constante
opérande et ouexpression…) utilisé par un opérateur

expression. 🞄 Une expression est une combinaison


d’opérateur(s), et d’opérandes, elle est évaluée
. durant l’exécution de l’algorithme, et possède une
valeur et un type

27
Exemple dans a + b:

🞄 a est l’opérande gauche


Opérateur, 🞄 + est l’opérateur
opérande et 🞄 b est l’opérande droite
🞄 a+b est une expression
expression. 🞄 Si par exemple a vaut 2 et b vaut 3, l’expression a+b vaut 5
. 🞄 si par exemple a et b sont des entiers,
l’expression a+b est un entier

28
🞄 Un opérateur peut être unaire ou binaire
🞄 Unaire s’il n’admet qu’un seul opérande, par exemple l’opérateur
non
🞄 Binaire s’il admet deux opérandes par exemple l’opérateur +
🞄 Un opérateur est associé à un type de
Opérateur donnée et ne peut être utilisé qu’avec des
variables, des constantes ou des expressions
de ce type
🞄 Par exemple l’opérateur + ne peut être utilisé qu’avec les types
arithmétiques le type chaîne de caractères
🞄 On ne peut pas additionner un entier et un caractère
🞄 Toute fois exceptionnellement dans certains cas on accepte d’utiliser
un opérateur avec deux opérandes de types différents, c’est par
exemple le cas avec les types arithmétiques (2+3.5)
29
🞄La signification d’un opérateur peut
changer en fonction du type
opérandes des

Opérateur 🞄 Par exemple l’opérateur + avec des entiers aura pour


sens l’addition, mais avec de chaîne de caractères aura
pour sens concaténation
🞄 2+3 vaut 5
🞄 «bonjour» + «tout le monde» vaut «bonjour tout
le monde »

30
Opérateur notation type des opérandes type du résultat
+ et – unaires +- entier ou celui de
négation NON réel l'opérande
logique booléen booléen
Elévation à la puissance  entier ou réel entier ou réel
Opérateur Multiplication * entier ou entier ou

s sur
Division DIV réel réel
entière / entier entier
les types Division
reste(modulo
MOD réel
entier
réel
entier
simples )
Comparaison < <= >= entier ou entier ou
=  réel tout réel
type booléen
et logique ET booléen booléen
ou OU
logique booléen booléen

31
🞄 Pour les naturels et les entiers div et
mod permettent respectivement de calculer
Un une division entière et le reste de cette
exemple division, par exemple:
d’opérateur
🞄 13 div 2 vaut
6
🞄 13 mod 2 vaut
1

32
🞄 Tout comme en arithmétique les opérations ont des
priorités:
🞄 Par exemple * et / sont prioritaires sur + et
-

(Ordre du plus prioritaire au moins prioritaire)

Priorité
des
opérateurs

33
 Associativité des opérateurs et et ou
a et (b et c) = (a et b) et c
 Commutativité des opérateurs et et ou a
et b = b et a

Les
a ou b = b ou a
 Distributivité des opérateurs et et ou a

opérateur ou (b et c) = (a ou b) et (a ou c)
 a et (b ou c) = (a et b) ou (a et c)
s booléen  Involution (homographie réciproque) :
non non a = a
 Loi de Morgan : non (a ou b) = non a et
non b
non (a et b) = non a ou
non b
 Exemple : soient a, b, c et d quatre entiers quelconques : (a<b)|
|((a>=b)&&(c==d)) est équivalent à (a<b)| |
(c==d)
car (a<b)| |( (a>=b)) qui est égale à (a<b)| |(!(a<b)) est toujours 34
C1 C2 C1 et C2 C1 ou C2 C1 XOR C2
Vrai Vrai Vrai Vrai Faux
Vrai Faux Faux Vrai Vrai
Faux Vrai Faux Vrai Vrai
Table Faux Faux Faux Faux Faux
de
vérité C1 Non C1
Vrai Faux
Faux Vrai

35
l On ne peut faire que deux choses avec une
variable:

Actions sur 1. Obtenir son contenu (regarder le contenu


les du tiroir). Cela s’effectue simplement en
variables nommant la variable

2. Affecter un (nouveau) contenu


(mettre une nouvelle information
dans le tiroir)

36
l Syntaxe

Déclaratio variables
n d’une
variable Nom_variable : type;

37
L'affectation a pour rôle d'attribuer une valeur, résultat d'une
évaluation, à une variable.

La valeur doit être compatible avec le type de la valeur à gauche


de l'affectation. Le symbole utilisé pour l'affectation est

Syntaxe :
Affectatio identifacteur_variable  valeur
n où identifacteur_varaible : indique le nom de la variable
valeur : la valeur à affecter

Exemple : prix_total nb_kg * prix_du_kg

Si nb_kg est de type entier et prix_du_kg est de type réel alors


prix_total doit être de type réel.

38
l Un algorithme peut avoir des interactions avec l’utilisateur

l Il peut afficher un résultat (du texte ou le contenu d’une


variable) et demander à l’utilisateur de saisir une information
afin de la stocker dans une variable
Lecture
et
En tant qu’informaticien on raisonne en se mettant « à la place
écriture
l

de la machine », donc:
Pour afficher une information on utilise la commande écrire suivie
entre parenthèses de la chaîne de caractères entre guillemets
et/ou des variables de type simple à afficher séparées par des
virgules, par exemple:
– Écrire (‘’la valeur de la variable a est’’,a)

39
Pour donner la possibilité à l’utilisateur de saisir une
information on utilise la commande lire suivie
Lecture entre parenthèses de la variable de type simple
et qui va recevoir la valeur saisie par l’utilisateur, par
écriture exemple :

– lire (b)

40
 Réaliser un algorithme, c’est exprimer, dans un
langage précis (le langage algorithmique), les règles
de traitement d’un problème pour le soumettre à un
ordinateur (par un programme).

A  Les données d’un programme sont mémorisées


retenir dans des variables qui sont des cases mémoire.

 Une variable est un contenant, qui contient une et une


seule valeur à un moment donné.

41
 Une variable est caractérisée par :
o un identificateur (son nom)
o une valeur (qui peut varier au
cours du programme, sauf pour les
constantes)
o un type (qui détermine sa taille et les
opérations possibles)
A  Les instructions de base sont :
retenir o l'affectation permet de changer la valeur
d'une variable.
o la saisie permet d'assigner à une variable,
une
valeur entrée au clavier
o l'affichage permet d'écrire le contenu d'une
variable ou d'une expression à l'écran
42
la séquence des
instructions
• Les opérations d'un algorithme sont habituellement exécutées
une à la suite de l'autre, en séquence (de haut en bas et de
gauche à droite).

A  L'ordre est important.


On ne peut pas changer cette séquence de façon arbitraire
retenir 

 Par exemple, enfiler ses bas puis enfiler ses bottes n'est pas
équivalent à enfiler ses bottes puis enfiler ses bas.

43
Exemple 1 : Calcul de la surface d’un rectangle

Analyse :
Exercices: Les trois étapes de cet algorithme :
Exemples 1. Lecture de données, longueur et largeur
de 2. Calcul de la surface,
Synthèse longueur*largeur
3. Affichage du résultat

44
Exemple 1 : Calcul de la surface d ’un rectangle

Algorithme surface_rectangle;
Variables
Exercices: longueur, largeur, surface : réel;

Exemples Début
de Ecrire (‘’ Donner les valeurs de la longueur et la
largeur ’’);
Synthèse Lire (longueur, largeur);
surface  longueur*largeur;
Ecrire (‘ la surface du
rectangle est

: ’, surface);
Fin 45
Afin d'améliorer la lisibilité d'un algorithme, on peut utiliser
des commentaires. Un commentaire est une suite de caractères
quelconques encadrée par les symboles /* et */
Exemple : /* ceci est un commentaire */
Ou //ceci est un commentaire
/* le calcul du prix TTC */
Algorithme prix_ttc; /* entête de l ’algorithme */
/* déclaration des variables */
Commentaires Variables PH,TVA, PTTC : réel;
Début /* lecture des
variables PH et TVA
*/
Ecrire (‘’ Donner les valeurs du PH et de la TVA’’);
Lire (PH, TVA);
PTTC PH*TVA;/* Calcul du PTTC */
Ecrire (‘’ le prix TCC est : ’’,PTTC); /* Edition du
résultat */
Fin

46
Exercice 1
• Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?

Exercices

Affectatio
n
Corrigé

47
Exercice 2
• Quelles seront les valeurs des variables A, B et C après
exécution des instructions suivantes ?

Exercices Corrigé

Affectatio
n

48
Exercice 3
• Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?

Exercices Corrigé

Affectatio
n

49
Exercice 4
• Quelles seront les valeurs des variables A, B et C après
exécution des instructions suivantes ?

Exercices
Corrigé

Affectatio
n

50
Exercice 5
• Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?

Exercices
Corrigé

Affectatio
n

51
Exercice 6

1. Soient n et m deux entiers,


écrire l ’algorithme qui permute (échange) les
Exercices valeurs de 2 variables n et m
(exemple : passer de n=10, m=15 à n=15, m=10)
Echange

52
Algorithme permutation;

Variables X,Y : réel ;


Z : réel ; /* variable intermédiaire */
Exercices Début /* lecture des variables X et Y */
Ecrire (‘ Donner les valeurs de X et de
Y’); Lire (X, Y);

Echange Ecrire (‘’ Avant permutation : X =’’,X, ‘’


Y=‘’ ,Y);
/* permutation des valeurs des variables X et
Y */
Z X ; X
 Y ;
Y  Z ;
Fin
Ecrire (‘’
Après
permuta
tion : X
=’’,X, ‘’ 53
Exercices

Echange

54
Exercice 7
•On dispose de trois variables A, B et C. Ecrivez un algorithme
transférant à B la valeur de A, à C la valeur de B et à A la
valeur de C.

Exercices

Echange

55
Exercice 8
• Que produit l’algorithme suivant ?

Exercices

Expressio
n et
opérations

56
Exercice 9
• Que produit l’algorithme suivant ?

Exercices

Expressio
n et
opérations

57
Exercice 10
• Quel résultat produit le programme suivant ?

Exercices

Expressio
n et
opérations

58
Exercice 11
• Ecrire un algorithme qui demande un nombre entier à
l’utilisateur, puis qui calcule et affiche le carré de ce nombre.
Exercices

Expressio
n et
opérations

Ou bien écrire("le carre de ", nb, "est :", carr)

59
Exercice 12
Écrire un algorithme qui permet d’effectuer la saisie d’un
nom, d’un prénom et affiche ensuite le nom complet
Exercices
Solution

Expressio Algorithme AffichageNomComplet


variables Nom, Prenom, Nom_Complet : chaîne de caractères
n et Début

opérations
écrire("entrez le nom")
lire(Nom)
écrire("entrez le prénom")
lire(Prenom)
Nom_Complet  Nom & " " & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin

60
I.2 Qu’est ce que veut dire « écrire un algorithme »
 Comprendre et Analyser le problème : étude des données
fournies et des résultats attendus.
 Résoudre le problème: C’est trouver les structures de données
adaptées ainsi que l’enchaînement des actions à réaliser pour
passer des données aux résultats;

ENTREE Sortie
Données d’entrée connues Données de sortie produites
avant exécution et sur par l’algorithme et qui sont
lesquelles l’algorithme est en relation spécifiée avec
appliqué. les données d’entrée.

méthode de résolution de problème


énoncée sous la forme d'une série Algorithme
d'opérations à effectuer.
I.4 Propriétés
L’algorithme doit tenir compte de tous les cas possibles:
1. Il traite le cas général et les cas particuliers (possibles).
2. Il contient toujours un nombre fini d’actions.

3. L’ordre des actions est important (exécution séquentielle).

4. Chaque action doit être définie avec précision, sans aucune difficulté.

5. Certaines actions peuvent être raffinées (décomposées).

6. L’algorithme n’est pas nécessairement unique.

7. Il doit produire le résultat désiré.


III. EXEMPLES D’ALGORITHME
Exemple 1:
Calcul des racines d’un polynôme du second degré à coefficients réels:

ax 2  bx  c  0 (a, b, c)  R
Exemple 2:
Algorithme de mise en marche d'une voiture :

Mettre la clé dans le démarreur


Serrer le frein à main
Mettre le levier des vitesses au point mort
Répéter les opérations suivantes
tourner la clé dans le sens des aiguilles d'une montre
attendre quelques secondes
mettre la clé dans la position "marche"
si le moteur ne tourne pas, ramener la clé dans sa position
initiale jusqu'à ce que le moteur démarre

Enclencher la première vitesse


Desserrer le frein à main

Vous aimerez peut-être aussi