Vous êtes sur la page 1sur 43

Algorithmique et Programmation

Hassan SILKAN
Faculté des Sciences El Jadida
1
Plan du cours

 Rappel :
 Outils de base ..
 Structures alternatives et structures itératives
 Les fonctions

Les pointeurs

Les tableaux

Les structures et énumérations

2
Plan de la séance 1
 Définition et structure d’un algorithme

 Variables et types de données

 Opérateurs, opérandes et expressions

 Priorité des opérateurs

 Structures Alternatives

 Structures itératives

3
Définition d’un algorithme
Un algorithme est la description détaillée de la
résolution d’un problème.

Il est composé d’une suite finie d’instructions


élémentaires utilisant un nombre fini de données pour
atteindre le résultat désiré.

Un algorithme doit être lisible et compréhensible


(principalement par celui qui devra l’exécuter).

4
Exemple d’algorithme
Pb: Aller de la maison au travail
Monter dans la voiture
Démarrer et avancer
Tourner à la première à droite
S'arrêter au feu et attendre le vert
Avancer jusqu'au 3e carrefour
Prendre la 2e à droite
S’arrêter au 3ème immeuble
Monter au 1er étage
Entrer au bureau
5
Structure d’un algorithme
Un algorithme est composé d’une entête et d’un corps:
L’entête est composée de :
Algorithme (mot clef) : le nom de l’algorithme.
Déclarations (mots clef) : déclarations des variables,
constantes, fonctions…etc utilisées dans l’algorithme
Le corps est composé de :
Début ( mot clef) : marque le début du traitement
une suite d’instructions élémentaires
Fin (mot clef) : marque la fin du traitement et la fin de
l’algorithme
6
Structure d’un algorithme
Un algorithme est composé d’une entête et d’un corps:

Algorithme nom_algorithme

Déclaration :
Partie déclaration
Déclaration des constantes
Déclaration des variables

début
Partie traitement
Instructions
fin 7
Structure d’un algorithme : Exemple1
Problème2 : Donner l’algorithme qui calcule et affiche le
résultat de l’addition de deux entiers

Algorithme : addition
Déclarations: x, y, somme : entier
Début
lire(x)
lire(y)
somme  x + y
ecrire(somme)
Fin
8
Structure d’un algorithme : Exemple2
Problème2 : Donner l’algorithme qui calcule et affiche la
surface d’un disque
Algorithme surface
Déclarations:
PI = 3.14
air, rayon : réel
début
lire(rayon)
air  rayon*rayon*PI
ecrire(air)
fin 9
Variables
Définition : une variable est une entité qui contient une
information. Elle est caractérisée par :

un nom « identificateur » : une suite de lettres et de


chiffres et qui commence obligatoirement par une lettre. Le
caractère ‘_’ est accepté dans le nom d’une variable et il est
considéré comme une lettre.

une valeur : avant l’utilisation d’une variable, il faut


absolument s’assurer qu’elle a une valeur (saisie ou calculée).

un type : représente l’ensemble des valeurs que peut


prendre la variable

Exemples:
Somme, prix_brut, x1, x_1 10
Types de données
Le type d’une variable caractérise :
 L’ensemble des valeurs que peut prendre la variable
 L’ensemble des actions que l’on peut effectuer sur
la variable
Lorsqu’une variable apparaît dans l’entête d’un algorithme
on lui associe un type en utilisant la syntaxe suivante :
Identificateur : type
Exemples :
prix_produit : réel
nom_produit : chaîne de caractères
11
Types de données
Règles d’utilisation des types de données :
 Une fois qu’un type de données est associé à une
variable, cette variable ne peut plus en changer

 Une fois qu’un type de données est associé à une


variable, le contenu de cette variable doit
obligatoirement être de ce type

12
Types de données : dénombrables
 Booléen : les valeurs de ces variables sont VRAI ou
FAUX. Exemple :
Apte, Valide : booléen
 Caractère : les variables ont comme valeur un seul
caractère (lettre, chiffre et caractère spécial). Exemple :
symbole : caractère
 Intervalle : les variables ne peuvent prendre que les
valeurs entières définies dans cet intervalle. Exemple :
Mois : 1 .. 12
Heure : 1 .. 24
13
Types de données : Enuméré
 Les variables ne peuvent prendre que les valeurs
explicitées
 Si on veut utiliser des énumérés, on doit définir le type
dans l’entête de l’algorithme en donnant toutes les
valeurs de ce type de la façon suivante :
nom du type = {valeur1, valeur2, ..., valeurn}
 Exemples :
Moyen_transport : {velo, moto, voiture , bus, train, avion}
moyen_transport_utilise : Moyen_transport

14
Types de données : non-dénombrables
 Entier : l’ensemble des entiers relatifs.
temperature : entier
 Naturel : l’ensemble des entiers naturels.
Age, poids : naturel
 Réel : l’ensemble des nombres réels ().
racine_carree, taille : réel
 Chaîne de caractères : les variables ont comme valeur
un suite de caractères.
nom, prenom : chaîne de caractères

15
Instructions de lecture et d’écriture
 L’instruction de lecture permet de saisir des données à partir d’un
dispositif d’entrée (clavier, …etc.)Les données saisies seront stockeés
dans les variables fournies comme paramètres de la fonction « lire() »
suivant la syntaxe :
lire(V1, V2, ..., VN)
Exemple :
lire(x), lire(y) ou bien lire(x, y)

 L’instruction d’écriture permet d’afficher sur un dispositif d’écriture


(l’écran,…etc.). Les valeurs des variables et des expressions données
comme paramètres de la fonction « ecrire() » suivant la syntaxe :
ecrire(V1, V2, ..., VN, E1, E2, ..., EM)
Exemple :
ecrire(x), ecrire(x,y)
ecrire(la somme est , som)
16
Opérateurs, opérandes et expressions
 Un opérateur est un symbole d’opération qui permet d’agir
sur des opérandes.

 Une opérande est une entité (variable, constante ou


expression) utilisée par un opérateur.

 Une expression est une combinaison d’opérateur(s) et


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

17
Opérateurs, opérandes et expressions
 Exemples : somme  x + y

x + y est appelé une expression


x : est l’opérande gauche de l’expression x + y
+ : est l’opérateur d’addition
y : est l’opérande droite de l’expression x + y

somme  x + y est une expression


somme : est l’opérande gauche
 : est l’opérateur d’affectation
(x + y) : est l’opérande de droite
18
Opérateurs
 Deux types d’opérateurs:
Unaire : s’il n’admet qu’une seule opérande, par
exemple l’opérateur Non logique
Binaire : s’il admet deux opérandes, par exemple
l’opérateur d’addition

 Un opérateur est associé à un type de donnée et ne peut


être utilisé qu’avec des variables, des constantes ou des
expressions de ce type

19
Opérateurs arithmétiques
 On retrouve les opérateurs classiques :
 Addition,  Soustraction
 Multiplication  Division
 Avec en plus pour les entiers div et mod, qui permettent
respectivement de calculer le quotient d’une division
entière et le reste de cette division
Exemple :
11 div 4  2
11 mod 4  3

20
Opérateurs de comparaisons
 On retrouve les opérateurs classiques :
> strictement supérieur, >= supérieur ou égal
< strictement inférieur, <= inférieur ou égal
= égal,  différent
 Ce sont des opérateurs binaires dont la syntaxe est :
experssion1 op expression2

21
Opérateurs booléens ou logiques
 NON Logique :
A NON(A)
Vrai Faux
Faux Vrai
 ET Logique :

A B A ET B
Vrai Vrai Vrai
Faux Vrai Faux
Vrai Faux Faux
Faux Faux Faux
22
Opérateurs booléens ou logiques
 OU Logique :

A B A OU B
Vrai Vrai Vrai
Faux Vrai Vrai
Vrai Faux Vrai
Faux Faux Faux

23
Priorité des opérateurs
1. () []
2. NON -(unaire)
3. * / div mod
4. + -(binaire)
5. < <= > >=
6. = 
7. ET
8. OU
9. 
24
Actions sur les variables
 Les actions possibles sur les variables sont :
 Affecter une valeur ou changer sa valeur :
 En utilisant la fonction lire().
Exemple : lire(x)
 En utilisant l’opérateur d’affectation symbolisé par ‘’ suivant
la syntaxe suivante : identificateur  expression
Exemple : somme  x + y

 Obtenir sa valeur : en utilisant la fonction ecrire()


Exemple : ecrire(somme)

 Utiliser sa valeur : en nommant la variable


Exemple : somme  x + y

25
Exemple
Écrire un algorithme permettant d’échanger les valeurs de
deux variables A et B, quel que soit leur contenu préalable.
Algorithme : permutation
Déclarations: A, B, Aide : entier
Début
lire(A, B)
Aide  A
A  B
B  Aide
Ecrire(A, B)
Fin

26
Structures alternatives
 Les structures alternatives sont des instructions qui
permettent de choisir entre plusieurs traitements

 Le choix d’un traitement dépend de la valeur d’une


expression logique

 Le choix d’un traitement exclut tout les autres

 Un traitement est une ou plusieurs instructions « Affecter


une »

27
Structures alternatives
 Première forme:
si (condition) alors
instruction
finsi

 L’instruction peut être simple ou composée

Exemple :
Valeur_Absolue_A  A
si (A < 0) alors
Valeur_Absolue_A  - A
finsi

28
Structures alternatives
 Deuxième forme:
si (condition) alors
instruction_1
sinon
instruction_2
finsi

 Les instructions (instruction_1 et instructions_2) peuvent être simples


ou composées
Exemple : si (A>B) alors
Ecrire( A est plus grande que B )
sinon
Ecrire( B est plus grande que A )
finsi 29
Structures alternatives
 Troisième forme:
selon (expression)
cas V_1 : instruction_1

cas V_2 : instruction_2


. . .
. . .
cas V_N : instruction_N

Autrement : instruction par défaut


finselon

30
Structures alternatives
Donner un algorithme qui calcule le prix TTC d’un produit à
partir de son prix HT et la valeur de la TVA. Sachant qu’il existe
5 classes de la TVA.

Indice TVA
A 0
B 0.05
C 0.1
D 0.15
E 0.2

31
Structures alternatives
Algorithme : calcul_prix_ttc
Déclarations :
prix_ht, tva, prix_ttc : réel
indice_tva : caractère
Début
lire(prix_ht, indice_tva)

32
Structures alternatives
selon (indice_tva)
cas ‘A’ : prix_tcc  prix_ht
Ecrire (prix_ttc)
cas ‘B ’ : prix_tcc  prix_ht + (prix_ht * 0.05)
Ecrire (prix_ttc)
cas ‘C ’ : prix_tcc  prix_ht + (prix_ht * 0.1)
Ecrire (prix_ttc)
cas ‘D ’ : prix_tcc  prix_ht + (prix_ht * 0.15)
Ecrire (prix_ttc)
cas ‘E ’ : prix_tcc  prix_ht + (prix_ht * 0.2)
Ecrire (prix_ttc)
Autrement : Ecrire(Erreur d’indice de la TVA ! )
finselon
Fin 33
Structures itératives
 Les structures itératives sont des instructions qui
permettent de réaliser (répéter) un traitement plusieurs
fois

 Pour réaliser et mettre en place une structure itérative on


doit connaître :

 Soit le nombre de répétition (itération)


 Soit la condition d’arrêt qui est une expression logique
qu’on vérifie avant ou après chaque répétition.

34
Structures itératives
 Première forme : la boucle pour
pour i allant de val_ini à val_fin faire
instruction(s)
finpour

 Le nombre de répétition est connu à l’avance


|(val_fin – val_ini)|+1

 i est initialisée par val_ini et à chaque répétition, on


incrémente ou on décrémente i jusqu’à ce qu’il soit égale à
val_fin
35
Structures itératives
Exemple de la première forme : la boucle pour

Donner l’algorithme qui calcule la somme de la suite :

1 1 1
Sn  1    2
4 9 n

36
Structures itératives
Algorithme : somme
Déclarations: n, i : entier
Sn : réel
Début
lire(n)
Sn  0
si (n > 0) alors
pour i allant de 1 à n faire
Sn  Sn + 1 / (i * i)
finpour
ecrire(" le résultat est : " , Sn)
sinon
ecrire(" Erreur!! N doit être positif ")
finsi

Fin
37
Structures itératives
 Deuxième forme : la boucle tantque
tantque (condition) faire
instruction(s)
fintq
 Le nombre de répétition n’est pas connu à l’avance, mais on
connaît la condition d’arrêt (quand l’expression logique devient
fausse)
 L’exécution du traitement dépend de la vérification de
la condition
 La condition d’arrêt se trouve au début de la boucle. Ce qui veut
dire que le traitement peut ne jamais être exécuter
38
Structures itératives
Exemple de la deuxième forme : la boucle tant que

Donner un algorithme qui détermine le plus petit entier


e tel que e! >= n.

39
Structures itératives
Algorithme : fact_sup_n
Déclarations : e, fact, n : entiers
Début
ecrire(" Saisir n (entier) > 0 : ")
lire(n)
si (n > 0) alors
e0
fact  1
tant que (fact < n ) faire
ee+1
fact  fact * e
fintq
ecrire("le plus petit entier dont le factoriel est > =", n," est :", e)
sinon
ecrire("Erreur !! n doit être strictement positif ")
finsi
Fin

40
Structures itératives
 Troisième forme : la boucle répéter
répéter
instruction(s)
jusqu’à (condition)
 Comme la boucle tant que, on ne connaît pas le nombre de
répétition, mais on connaît la condition d’arrêt
 L’exécution du traitement dépend de la vérification de
la condition
 La condition d’arrêt se trouve à la fin de la boucle. Ce qui veut
dire que le traitement va être exécuter au moins une fois

41
Structures itératives
Exemple de la troisième forme : la boucle répéter

Donner un algorithme qui saisit un réel non nul r et un entier


n (n > r) et qui affiche le plus grand multiple de r inférieur à
n2 .

42
Structures itératives
Algorithme : multiple_r_inf_n
Déclarations :
r, n : entiers
multiple_r : entier
Début
répéter
saisir(r, n)
jusqu’à ( (r >0) et (n>r) )
multiple_r  r
répéter
multiple_r  multiple_r + r
jusqu’à ( multiple_r > (n*n) )
multiple_r  multiple_r - r
Afficher(multiple_r)
Fin
43

Vous aimerez peut-être aussi