École Supérieure de Technologie Khénifra
Chapitre 1
Introduction à l’algorithmique Filière : GTER/S2
[email protected]
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