Vous êtes sur la page 1sur 60

École Supérieure de Technologie Khénifra

Chapitre 1

Introduction à l’algorithmique Filière : GTER/S2

imanzaimi@gmail.com

Pr I. ZAIMI 1
Définition de l’algorithme
Définition de la variable?
Plan du Définition du type ?
chapitre 1 Définition de l’expression?
Définition de l’affectation?
Lecture et écriture

Pr I. ZAIMI 2
Qu’est-ce
qu’un
algorithme
?

Pr I. ZAIMI 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

Pr I. ZAIMI 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

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

Qu’est-ce
qu’un
algorithme
?
Instructions

Pr I. ZAIMI 6
Qu’est-ce
qu’un
algorithme
?
Instructions

Pr I. ZAIMI 7
Qu’est-ce
qu’un
algorithme Résultat

?
Instructions

Pr I. ZAIMI 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

Pr I. ZAIMI 9
Qu’est-ce
Réflexion

qu’un
algorithme Problème Algorithme Résultats

Pr I. ZAIMI 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?
?

Pr I. ZAIMI 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.

Pr I. ZAIMI 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

Pr I. ZAIMI 13
l L'avantage du pseudo-langage est qu'il permet
Notion de d'écrire tout algorithme de façon formelle.
pseudo
langage
l La phase de programmation se trouvera
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é.

Pr I. ZAIMI 14
Algorithme

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

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

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

Élaboration 2. Expression d'une solution en langage


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

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


solution
Pr I. ZAIMI 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)
algorithme ▪ Quelle sont les données « en entrée », c’est-à-dire les
éléments qui sont indispensable à son bon fonctionnement
(Entrée)
▪ Quelles sont les données en « sortie », c’est-à-dire les
éléments calculés, produits par l’algorithme (Sortie:)

Pr I. ZAIMI 18
Le corps est composé:
Structure ▪ du mot clés début
d’un ▪ D’une suite d’instructions
algorithme ▪ Du mot clés fin

Pr I. ZAIMI 19
Vue d’ensemble de la structure

Structure
d’un
algorithme

Pr I. ZAIMI 20
Structure
Instruction est l’expression dans un pseudo-
d’un
l

code ou dans un langage de programmation d ’un


algorithme ordre fourni à la machine.

Pr I. ZAIMI 21
Algo exemple
/* La partie déclaration de l’algorithme */
Constantes // les constantes nécessitent une valeur dès leur déclaration
Var1 20 : entier

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

l’algorithme var5 : chaîne

Début // corps de l’algorithme

/* instructions */

Fin

Pr I. ZAIMI 22
Exemple de code :

Noms: addDeuxEntiers

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

l’algorithme Sortie: c : entiers a,b, c : entiers

Début
C a+b
fin

Pr I. ZAIMI 23
 Une variable est une entité qui contient une
information

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

qu’une  Une variable possède une valeur


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

 L’ensemble des variables sont stockées dans


la mémoire de l’ordinateur

Pr I. ZAIMI 24
 Les instructions manipulent des objets.
 Chaque objet possède trois qualificatifs :
identificateur, type et une valeur
Notions
d’identificateur ▪ l ’identificateur : est le nom de l ’objet, une suite de lettres et de
chiffres dont le premier caractère est une lettre. Exemples :
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

Pr I. ZAIMI 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
simples  Types simple dénombrable
▪ Il y’a le type booléen, les variables ne peuvent prendre que les valeurs VRAI
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»

Pr I. ZAIMI 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 ou
opérande et expression…) 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

Pr I. ZAIMI 27
Exemple dans a + b:

Opérateur,  a est l’opérande gauche


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

Pr I. ZAIMI 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 donnée


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

Pr I. ZAIMI 29
La signification d’un opérateur peut
changer en fonction du type des
opérandes

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 »

Pr I. ZAIMI 30
Opérateur notation type des opérandes type du résultat
+ et – unaires +- entier ou réel celui de l'opérande

Opérateurs
négation logique NON booléen booléen
Elévation à la puissance  entier ou réel entier ou réel

sur Multiplication
Division entière
*
DIV
entier ou réel
entier
entier ou réel
entier
les types Division / réel réel

simples
reste(modulo) MOD entier entier
Comparaison < <= >= entier ou réel entier ou réel
=  tout type booléen
et logique ET booléen booléen
ou logique OU booléen booléen

Pr I. ZAIMI 31
 Pour les naturels et les entiers div et mod
permettent respectivement de calculer une
Un exemple division entière et le reste de cette division,
d’opérateur par exemple:

 13 div 2 vaut 6
 13 mod 2 vaut 1

Pr I. ZAIMI 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

Pr I. ZAIMI 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

opérateurs a ou (b et c) = (a ou b) et (a ou c)
a et (b ou c) = (a et b) ou (a et c)
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 vraie

Pr I. ZAIMI 34
C1 C2 C1 et C2 C1 ou C2 C1 XOR C2
Vrai Vrai Vrai Vrai Faux
Vrai Faux Faux Vrai Vrai

Table de
Faux Vrai Faux Vrai Vrai
Faux Faux Faux Faux Faux
vérité
C1 Non C1
Vrai Faux
Faux Vrai

Pr I. ZAIMI 35
l On ne peut faire que deux choses avec une
variable:

Actions sur 1. Obtenir son contenu (regarder le contenu


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

2. Affecter un (nouveau) contenu (mettre


une nouvelle information dans le tiroir)

Pr I. ZAIMI 36
l Syntaxe

Déclaration variables
d’une
variable Nom_variable : type;

Pr I. ZAIMI 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 :
Affectation identifacteur_variable valeur
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.

Pr I. ZAIMI 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
écriture
l En tant qu’informaticien on raisonne en se mettant « à la place
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)

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

– lire (b)

Pr I. ZAIMI 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 retenir ▪ Les données d’un programme sont mémorisées dans


des variables qui sont des cases mémoire.

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


seule valeur à un moment donné.

Pr I. ZAIMI 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 retenir ▪ Les instructions de base sont :


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
Pr I. ZAIMI 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 retenir ▪ L'ordre est important.


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

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

Pr I. ZAIMI 43
Exemple 1 : Calcul de la surface d’un rectangle

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

Pr I. ZAIMI 44
Exemple 1 : Calcul de la surface d ’un rectangle

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

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

Pr I. ZAIMI 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 */
Commentaires /* déclaration des variables */
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

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

Exercices

Affectation

Corrigé

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

Exercices Corrigé

Affectation

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

Exercices Corrigé

Affectation

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

Exercices
Corrigé

Affectation

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

Exercices
Corrigé

Affectation

Pr I. ZAIMI 51
Exercice 6

1. Soient n et m deux entiers, écrire l ’algorithme qui


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

Pr I. ZAIMI 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 ;
Ecrire (‘’ Après permutation : X =’’,X, ‘’ Y=‘‘ ,Y);
Fin

Pr I. ZAIMI 53
Exercices

Echange

Pr I. ZAIMI 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

Pr I. ZAIMI 55
Exercice 8
• Que produit l’algorithme suivant ?

Exercices

Expression
et
opérations

Pr I. ZAIMI 56
Exercice 9
• Que produit l’algorithme suivant ?

Exercices

Expression
et
opérations

Pr I. ZAIMI 57
Exercice 10
• Quel résultat produit le programme suivant ?

Exercices

Expression
et
opérations

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

Expression
et
opérations

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

Pr I. ZAIMI 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

Expression Algorithme AffichageNomComplet


variables Nom, Prenom, Nom_Complet : chaîne de caractères
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

Pr I. ZAIMI 60

Vous aimerez peut-être aussi