Algorithmique
Introduction
1
Définition
Algorithme :
Suite finie et non ambiguë d’actions (ou
instructions) qui doivent être exécutées dans un
ordre bien déterminé pour résoudre un problème.
2
Introduction
Le mot Algorithme vient du nom latinisé du mathématicien perse Al-
Khawarizmi.
Le domaine qui étudie les algorithmes est appelé l‘Algorithmique.
Un algorithme n'est pas exécutable directement par aucune machine.
Mais il peut être traduit facilement dans tous les langages de programmation.
3
Introduction
Réflexion
&
Analyse
Problème du Codification
Algorithme Programme
monde réel Résolution du problème Traduction
Exécution
Résultat
4
Structure d’un algorithme
Algorithme nomAlgorithme Entête
constantes
const1 : type1
…
constp : typep
variables
Var_1 : type_1 Déclaration des variables et
...
des constantes
Var_n : type_n
Début
Instruction_1
... Corps de l’algorithme
Instruction_N
Fin
5
Variables et constantes
Tout algorithme utilise des données élémentaires sous forme de variables ou
constantes.
Ces données se caractérisent par trois attributs :
Un identifiant ne doit contenir que les
L’Identificateur : Le nom de la donnée. caractères suivants: [a-z][A-Z][0-9]et { _ }.
Un identifiant ne doit pas commencer par
La valeur : Le contenu de la donnée un chiffre
Le type : L’ensemble des valeurs que peut prendre la donnée.
6
Variables et constantes
Les variables :
Une variable est une donnée dont la valeur peut changer au cours de
l’exécution de l’algorithme.
Les constantes :
Une constante est une donnée fixe qui garde toujours la même valeur.
7
Type de données
Type entier : la donnée prend des valeurs entières comme : -54, -2, 0, 60, 100, …
Type réel : la donnée prend des valeurs réelles comme : -105, -0.02, 3, 4.2, 103, …
Type caractère : la donnée prend des valeurs comme : ‘A’, ‘b’, ‘&’, ‘+’, ’3’, ‘?’, …
Type chaîne de caractères : la donnée prend comme valeurs un ensemble de
caractères comme : ‘bonjour’, ‘bob3’, ‘s@mir’
Type booléen : la donnée ne peut prendre que les valeurs suivantes : ‘vrai’ ou ‘faux’
8
Les instructions de base : Affectation
Affectation
Définition :
Une affectation est l’attribution d’une valeur à une variable.
Syntaxe :
nomVariable expression
Exemple
X 20
Y X
Som X + Y
XX+3
9
Les instructions de base : Affectation
Exercices d’application:
Quelles sont les valeurs des variables après l’exécution des opérations
suivantes.
X,Y deux variables de type entier, écrire une suite d’instructions qui
permettent de mettre le contenu de X dans Y et celui de Y dans X.
10
Les instructions de base: Lecture/Ecriture
On les appelle aussi les entrées/sorties standards.
Elles permettent d’assurer la communication entre le programme et l’utilisateur.
L’instruction de lecture :
Appelée aussi instruction d’entrée, elle autorise l’introduction d’une valeur dans
un algorithme.
Syntaxe :
lire (nom_variable)
Exemple :
lire(a) lire(rayon) lire(nom)
11
Les instructions de base: Lecture/Ecriture
L’instruction d’écriture:
Appelée aussi instruction de sortie, elle permet de restituer un résultat ou la valeur
d’une variable.
Syntaxe :
ecrire(nom_variable)
Exemple :
ecrire(resultat) /* Cette instruction affiche la valeur de la variable resultat */
ecrire("bonjour") /* Cette instruction affiche le message « bonjour » */
ecrire("a=" ,a)
12
Exercices d’application
Exercice 1
Ecrire un algorithme qui affiche “Bonjour tout le monde”
Exercice 2
Ecrire un algorithme qui demande à l’utilisateur son nom puis lui affiche
« bonjour <le nom saisi> »
Exercice 3
Ecrire un algorithme qui demande deux entiers A et B à l’utilisateur et qui affiche leur
somme S
Exercice 4
Ecrire un algorithme qui permet de calculer le prix TTC, sachant le prix HT et le taux
de TVA (20%)
13
Expressions & opérateurs
Expression:
Une expression est un ensemble d’opérandes régi par des opérateurs et
équivalente à une valeur.
( a * 3 ) / ( ( 15 + x ) – 2 )
opérandes opérateurs
Opérateur:
Un opérateur est un signe qui relie deux valeurs pour fournir un résultat.
14
Expressions & opérateurs
Les opérateurs
Les opérateurs arithmétiques:
+ : Addition
- : Soustraction
* : Multiplication
/ : Division
div : Division entière
mod : Reste de la division entière
Les opérateurs de comparaison:
> (supérieur strictement) < (inférieur strictement) >= (supérieur ou égal)
<= (inférieur ou égal) = (égal) <> (différent)
Les opérateurs logiques:
and : ET logique
15
or : OU logique
Exercices d’application
Exercice 1:
Ecrire un algorithme qui lit deux entiers A et B composés de deux chiffres
chacun puis forme et affiche le nombre X comme l’indique l’exemple suivant:
Exemple: si A=74 et B=29 alors le résultat est: X=7294
Exercice 2 :
Ecrire un algorithme qui décompose une somme d’argent S en billets de 200,
billets de 100, billets de 50, billets de 20, pièces de 10, pièces de 5 et pièces de
1 dirhams
16
Structures conditionnelles
Algorithme nomAlgo
Structure séquentielle
Debut
Dans une structure séquentielle toutes les Instruction 1
instructions sont exécutées une seule fois. …
Instruction n
Fin
Structure conditionnelle
Contrairement à une structure séquentielle, une Exemple :
structure conditionnelle permet de faire des ❑ Si feu vert alors je passe
❑ Si le feu est rouge alors je m’arrête
choix sur les blocs d’instructions à exécuter. ❑ Si a#0 alors x=-b/a est la solution
de l’équation ax+b=0
17
Structures conditionnelles
Forme 1 : structure simple
Le traitement est effectué ou non suivant le résultat de la condition.
Syntaxe
Si (condition) alors
Instructions
FinSi
Application: Ecrire un algorithme qui demande à l’utilisateur son nom et sa filière
puis affiche le message « bonjour <le nom> ». Si la filière est «Génie Industriel et
Maintenance», l’algorithme affiche un message de bienvenu.
18
Structures conditionnelles
Forme 2 : structure alternative
Si condition est vérifié on exécute le bloc (1) sinon on exécute le boc (2)
Syntaxe
Si (condition) alors
bloc Instructions 1
Sinon
bloc Instructions 2
FinSi
Application: Ecrire un algorithme qui lit la moyenne d’un étudiant puis teste son
admissibilité. L’élève est admis s’il a une moyenne >=10.
19
Structures conditionnelles
Imbrication des structures conditionnelles
Si (cond1) alors
Si (cond2) alors
Si (cond3) alors
…
Sinon
…
Finsi
Finsi
Sinon
Si (cond..)alors
…
Finsi
finsi
20
Exercices d’application
Ecrire un algorithme qui permet la résolution de l’équation :
a.x+b=0
Ecrire un algorithme qui calcule l’IGR en fonction des revenus
40%
21
Structures conditionnelles
Forme 3 : structure à choix multiples :
Dans le cas où une variable peut prendre plusieurs valeurs et selon chaque valeur on fait un
traitement, on utilise la structure à choix multiples.
Syntaxe
Cas (variable) vaut:
valeur_1 : instruction1
valeur_2 : instruction2
...
valeur_n : instruction n
Sinon : instruction n+1
Fincas
Application:
Les jours de la semaine sont codés de 1 à 7 (1→Lundi, 2→Mardi,…,7→Dimanche).
Ecrire un algorithme qui affiche le jour correspondant à un code entré par l’utilisateur.
22
Les Boucles
Appelées aussi les structures itératives ou
encore les structures répétitives, les boucles
permettent d’exécuter une portion de code
plusieurs fois.
23
Les Boucles
La structure : Pour
Valeur initiale du
Compteur compteur Valeur finale
Syntaxe :
Le pas d’itération
Pour i de Vi à Vf pas k
Instructions
Finpour
La variable i va prendre successivement toutes les valeurs entières entre la valeur initiale Vi et la valeur finale Vf.
Pour chaque valeur prise par la variable, la liste des instructions est exécutée.
L'incrémentation par k de la variable est implicite.
Si le pas n’est pas (k) spécifié, sa valeur par défaut est « un »
Cette forme d’itération est utilisée lorsque le nombre d’itérations est connu.
24
Les Boucles
Exemple : l’algorithme suivant permet d’afficher les nombres de 1 à 10
Algorithme essai
Var i : entier
Début
pour i de 1 à 10
écrire(i)
finpour
Fin
Exercice d’application: Ecrire un algorithme qui calcule n! avec n saisi par l’utilisateur.
25
Les Boucles
La structure : Tant que
L’ensemble des instructions doit être exécuté tant que la condition est vraie. Lorsque
la condition est fausse, le processus itératif s’arrête.
Syntaxe :
Tant que (condition)
Instructions
FinTantQue
Exercices d’application :
Afficher les nombres de 1 jusqu’à n avec n saisi par l’utilisateur
Calculer et afficher la somme d’une liste des nombres saisie par l’utilisateur. L’utilisateur termine la
saisie en entrant 0.
26
Les Boucles
La structure : Répéter … Jusqu’à
L’ensemble des instructions s’exécute jusqu’à ce que la condition soit vraie.
Lorsque la condition est vraie, le processus itératif s’arrête.
Syntaxe :
Répéter
Listes d'instructions
Jusqu‘à (condition)
Dans ce cas la suite d’actions est exécutée au moins une fois car le test de l’expression logique est
effectué après exécution de l’ensemble d’actions.
Exercice d’application :
somme d’une liste des nombres saisis par l’utilisateur dont le dernier est 0.
27