Algorithme L7
Algorithme L7
Algorithme L7
ALGORITHMES
UVCI
2018
V1
Table des
matières
Objectifs 3
Introduction 4
I - I- Les procédures 5
II - Exercice 7
III - Exercice 8
V - Exercice 11
VI - Exercice 12
VIII - Exercice 14
X - Exercice 17
XI - Exercice 18
XII - V- Applications 19
Objectifs
Ce cours devra vous permettre de:
3
Introduction
Lorsque l'on progresse dans la conception d'un algorithme, ce dernier peut prendre une taille et une
complexité croissante (lorsqu'il dépasse deux pages il devient difficile à comprendre et à gérer). De même
des séquences d'instructions peuvent se répéter à plusieurs endroits. La solution consiste alors à découper
l'algorithme en plusieurs parties plus petites. Ces parties sont appelées des sous-algorithmes.
Les sous-algorithmes sont écrit séparément du corps de l'algorithme principal sera appelé par celui-ci
quand ceci sera nécessaire.
Algorithme Nom_algo
Var
Début
<Corps de l’algorithme>
Fin
4
I- Les procédures
I- Les procédures
I
Définition : 1.1 Définition
Une procédure est une série d'instructions regroupées sous un nom, qui permet d'effectuer des actions
par un simple appel de la procédure dans un algorithme ou dans un autre sous-algorithme.
Var
Nom_variable : type
Début
Instruction(s)
Finproc
Après le nom de la procédure, il faut donner la liste des paramètres (s'il y en a) avec leurs types
respectifs. Ces paramètres sont appelés paramètres formels.
Remarque : Remarque :
Les paramètres sont facultatifs, mais s'il n'y en a pas, les parenthèses doivent rester présentes.
Exemple : Exemple :
Énoncé :
Écrire une procédure qui affiche à l'écran une ligne de 10 arobase puis passe à la ligne suivante.
Solution :
Var
Début
5
I- Les procédures
FinPour
FinProc
A l'appel d'une procédure, l'algorithme interrompt son déroulement normal, exécute les instructions
de la procédure, puis retourne à l'algorithme appelant et exécute l'instruction suivante.
Syntaxe : Syntaxe
Nom_proc(liste de paramètres)
Remarque
Les paramètres utilisés lors de l'appel d'une procédure sont appelés paramètres effectifs.
Exemple : Exemple :
Pour l'appelle de la procédure de l'exemple ci-dessus il suffit d'appeler le nom de la procédure dans
l'algorithme principal :
arobase ()
6
Exercice
Exercice
II
1- Une procédure permet :
de regroupé une série d'instructions regroupées sous un mon et ramenant un seul résultat
7
Exercice
Exercice
III
2- Quelle est la syntaxe correcte ?
8
II- Les fonctions
Var
Nom_variable : type
Début
Instruction(s)
Renvoyer Expression
Fin
La syntaxe de la déclaration d'une fonction est assez proche de celle d'une procédure à laquelle on
ajoute un type qui représente le type de la valeur retournée par la fonction et une instruction Renvoyer
Expression.
Cette dernière instruction renvoie à l'algorithme appelant le résultat de l'expression placée à la suite
du mot clé Renvoyer.
Remarque : Remarque :
Les paramètres sont facultatifs, mais s'il n'y pas de paramètres, les parenthèses doivent rester
présentes.
Exemple : Exemple :
Énoncé :
Définir une fonction qui renvoie le plus grand de deux nombres différents.
Solution :
Fonction Max(X: entier, Y: entier) : entier //nom de la fonction avec en paramètre les deux variables
contenant chacune une valeur
9
II- Les fonctions
Début
Sinon
FinSi
FinFonc
Pour exécuter une fonction, il suffit de faire appel à elle en écrivant son nom suivi des paramètres
effectifs. C'est la même syntaxe qu'une procédure.
A la différence d'une procédure, la fonction retourne une valeur. L'appel d'une fonction pourra donc
être utilisé dans une instruction (affichage, affectation, ...) qui utilise sa valeur.
Syntaxe : Syntaxe
VARIABLE ← Nom_Fonc(list de paramètres)
10
Exercice
Exercice
V
1- Une fonction permet :
de regroupé une série d'instructions regroupées sous un mon et ramenant un seul résultat
11
Exercice
Exercice
VI
2- Quelle est la syntaxe correcte ?
12
III- Les Variables locales - globales
Une variable déclarée dans la partie déclaration de l'algorithme principale est appelée variable globale
.
Elle est accessible de n'importe où dans l'algorithme, même depuis les procédures et les fonctions.
Une variable déclarée à l'intérieur d'une procédure (ou une fonction) est dite variable locale.
Elle n'est accessible qu'à la procédure au sein de laquelle elle est définie, les autres procédures n'y ont
pas accès.
La durée de vie d'une variable locale est limitée à la durée d'exécution de la procédure (la fonction).
13
Exercice
Exercice
VIII
Une variable est dite locale lorsqu'elle
n'est accessible qu'au sous algorithme dans laquelle elle a été créée.
14
VI- Les paramètres
Son rôle principal est de transmettre des informations entre le programme appelant et la fonction ou
la procédure appelée.
Il existe trois types de paramètre à savoir les paramètres en entrée, les paramètres en sortie et les
paramètres en entrée / sortie.
15
VI- Les paramètres
Il existe trois modes de passages de paramètres qui permettent des usages différents : Passage par
valeur, par référence (ou par adresse) et par résultat.
Autrement dit à l'appel de la fonction , les paramètres formels sont remplacés par les valeurs réelles.
Toute modification des paramètres formels dans le sous-algorithme n'entraîne aucune modification des
valeurs réelles (paramètres effectifs) à la sortie.
16
Exercice
Exercice
X
Calcul(X, Y , Z)
Formels
Effectifs
17
Exercice
Exercice
XI
Quel type de paramètre dois je utiliser lorsque mon sous algorithme doit recevoir une valeur de départ et
ensuite ramené une autre valeur après exécution du sous algorithme ?
18
V- Applications
V- Applications
XII
Exemple : Exercice 1 :
Énoncé :
En utilisant les sous-algorithmes, écrire un algorithme qui permet de faire la somme de deux nombres.
Résolution :
// Dans notre exercice nous allons diviser notre algorithme en trois parties
Tout d'abord il faut créer un sous-algorithme pour la récupération des données. Étant donné que nous
devrions avoir plusieurs résultats nous allons utiliser une procédure
Procédure recupdonne({S} nbre1, nbre2 : entier) //Entête de la procédure comportant le nom et les
différents paramètres en sortie car nbre1et nbre2 n'ont aucune valeur de départ
Début
Fin
//Ensuite nous allons utiliser un autre sous-algorithme qui permettra de calculer la somme des deux
nombres, en occurrence nous allons utiliser une fonction car la somme de deux nombres retourne un
résultat.
Fonction somme({E} nbre1, nbre2 : entier) : entier //Entête de la fonction comportant le nom et les
différents paramètre en entrée car nbre1 et nbre2 récupèrent une valeur de départ
Var
Début
Fin
19
V- Applications
// Enfin nous allons utiliser un sous-algorithme pour afficher le résultat, ici nous allons utiliser une
procédure pour faire l'affichage
Var
Début
Fin
// L'Algorithme Principal
Algorithme Somme
Var
X,Y,Z : entier // déclaration des variables globales puisqu'il s'agit de faire la somme il nous faut trois
variable, deux variable pour récupérer les opérantes et une autre pour le résultat
Début
recupdonne(X,Y) // appel la procédure pour récupérer les données du calcul, ici il s'agit de l'appelant
qui fait appelle à la procédure appelée
//Les paramètres effectifs reçoivent leur valeur selon la position des paramètres formels
Z ← somme(X,Y) // appel de la fonction pour faire l'opération somme avec les variables X et Y qui
vont donner leur valeur selon leurs positions au variables formels nbre1 et nbre2. Une fois les variables
récupérées la fonction somme fera le calcul et ramènera le résultat à la variable Z
Affichage(X,Y,Z) //appel la procédure affichage qui va donner les valeurs aux variable nbre1,nbre2 et
result en respectant la position des variables effectifs
Fin
En utilisant les sous-algorithmes, écrire un algorithme qui permet de résoudre une équation du
seconde degré dans R.
20
V- Applications
Résolution :
// Dans notre exercice, pour résoudre cette équation il nous faut d'abord :
1. Avoir les différentes valeurs des coefficients de l'équation (Ax^2 +Bx +C = 0) à savoir A,B, et C
2. Calculer le discriminant de l'équation
3. Calculer les valeurs de X1 et X2 en fonction du résultat du discriminant
4. Donner la ou les solution(s) de l'équation s'il y en a .
//Pour résoudre ce problème, il nous faut tout d'abord récupérer les différentes valeurs mentionnées du
point (1), ce qui donnera lieu de créer une procédure qui récupère les coefficients
Début
Afficher "Donner la valeur du coefficient A" // Envoi le message : Donner la valeur du coefficient A
Afficher "Donner la valeur du coefficient B" // Envoi le message : Donner la valeur du coefficient B
Afficher "Donner la valeur du coefficient C" // Envoi le message : Donner la valeur du coefficient C
Fin
// Ensuite en regardant le point (2) il faut calculer le discriminant, étant donné que le calcul du
discriminant donne un seul résultat nous allons utiliser une fonction.
Var
Début
Fin
// Concernant le points (3) nous allons calculer les différents résultats de X1 et X2 mais les résultats sont
conditionnés par la valeurs du discriminant. Nous avons plusieurs résultats de ce fait nous allons utiliser
une procédure
21
V- Applications
Début
Si Discri > 0 Alors // vérifie pour voir si le discriminant est supérieur à zéro si oui alors il calcule les
solutions X1 et X2.
Sinon
SI Discri = 0 Alors // vérifie pour voir si le discriminant est égal à zéro si oui alors il calcule une
solution double X1 = X2
X1 ←( -B )/ 2*A // calcule X1
Finsi
Finsi
// le cas où le discriminant est inférieur à zéro ne peut pas être énuméré ici car aucun calcule n'est fait
donc il sera énuméré lors de la procédure d'affichage
Fin
//Enfin pour le point (3) nous allons afficher les différentes solutions, dans ce cas on utilisera une
procédure
Procédure affichage({E} Discri, X1, X2 : Réel) //Entête de la procédure comportant le nom et les
différents paramètres en entrée car X1 et X2 Discri récupère une valeur de départ
Début
Si Discri >0 Alors // Vérifie si le discriminant est supérieur à zéro donc il aura deux solutions à afficher
X1 et X2
Sinon
Si Discri = 0 Alors // Vérifie si le discriminant est égal à zéro donc il aura une solution double X1 = X2
Sinon // Vérifie si le discriminant est inférieur à zéro donc il n'y a aucune solution dans R
Afficher " Pas de solution dans R " // Affiche Pas de solution dans R
Finsi
Finsi
22
V- Applications
Fin
// L'Algorithme Principal
Algorithme Equation
Var
CoefA, CoefB, CoefC, Dis, S1,S2 : entier // déclaration des variables globales puisqu'il s'agit de
résoudre une équation du second dans R
Début
//Les paramètres effectifs reçoivent leur valeur selon la position des paramètres formels
affichage(Dis,S1, S2) //appel la procédure affichage se chargera d'afficher le résultat. Les variables
Dis,S1 et S2 donneront leurs valeurs selon leurs positions aux variables formels Discri, X1 et X2.
Fin
23