Procedures Et Fonctions
Procedures Et Fonctions
Procedures Et Fonctions
PROCEDURES ET FONCTIONS
I. Procédure :
Dès qu’on commence à écrire des programmes importants, il devient difficile d’avoir une
vision globale sur son fonctionnement et de traquer les erreurs Exemple:
Que faire ? décomposer le problème en sous problèmes et trouver une solution à chacun
puis regrouper le tout dans un seul algorithme
1) Variable locale :
Toute variable déclarée au sein d’une procédure est appelée variable locale, c'est-à-dire
elle n’est reconnue que dans la procédure.
2) Variable Globale :
Une variable globale est une variable déclarée dans la partie générale, cette variable peut
être utilisée dans toutes les procédures sans qu’elle soit déclarée localement.
3) Déclaration de procédure
Syntaxe :
Procédure Nom_Procédure()
Var nom_variable:type
début
Traitement
Fin procédure
Exemple :
Ecrire l’algorithme sous forme de procédure qui permet de calculer la somme, le produit
ou la division de deux nombres A et B.
Var A, B : Réel
Choix : Entier
Procédure Somme
Var S : Réel
Lire A
Lire B
SA+B
Ecrire ’’Somme’’, S
Fin procédure
Procédure Produit
Var P : Réel
Lire A
Lire B
P A*B
Ecrire ’’Produit’’, P
Fin procédure
Procédure Division
Var D : Réel
Lire A
Lire B
Si B<>0 Alors
D A/B
Ecrire ’’Division’’, D
Sinon
Ecrire ‘’Valeur incorrecte’’
Fin Si
Fin procédure
Début
Lire Choix
Si Choix=1 Alors
Somme()
Fin Si
Si Choix=2 Alors
Produit()
Fin Si
Si Choix=3 Alors
Division()
Fin Si
Fin
Exercice :
Ecrire l’algorithme sous forme de procédure simple permettant de trouver le plus grand ou
le plus petit de deux nombres A et B.
Var A, B : Réel
Choix : Entier
Procédure Trouver()
Var G : reel
Lire A
Lire B
Si A>B Alors
GA
Sinon
PB
Fin Si
Ecrire ‘’Grand’’, G
Ecrire ‘’Grand’’, P
Fin Procédure
Les échanges d’information entre une procédure peuvent se faire par l’intermédiaire des
variables globales, mais il est beaucoup plus intéressant d’utiliser les paramètres.
L‘appel d'une procédure se fait par simple écriture de son nom avec la liste des
paramètres :
Lors de l'appel d'une procédure, les paramètres sont appelés paramètres effectifs :
ils contiennent les valeurs pour effectuer le traitement. Lors de la définition, les
paramètres sont appelés paramètres formels.
L'ordre et les types des paramètres effectifs doivent correspondre à ceux des
paramètres formels
L’appel par valeur, c’est l’appel d’une procédure en lui affectant une variable ou
expression qui va initialiser les variables correspondantes.
Syntaxe :
Procédure Nom_Procédure (var1, var2, var3, …… : Type)
Var ………
Debut
Traitement
Fin procédure
Exemple :
Var A, B : Réel
Procédure Somme (X, Y : réel)
Var S : Réel
Debut
SX+Y
Ecrire ‘’Somme’’, S
Fin Procédure
Début
Lire A
Lire B
Somme (A, B)
Fin
Exercice :
Une société calcule la prime totale de la façon suivante :
P1=2000 si Durée de service>10
P1=1500 si Durée de service>5
P1=400 cas contraire
P2=nombre enfant*150dh
P3=2700 si cadre
P3=1000 cas contraire
Ecrire l’algorithme sous forme de procédure paramétrée par valeur qui calcule la prime
totale.
Var DS : Réel
NE : Entier
Fonction : Chaîne
Procédure Prime_Total (X : Réel, Y : Entier, Z : Chaîne)
Var P1, P2, P3, PT : Entier
Debut
Si X>10 Alors
P12000
Sinon Si X>5 Alors
P11500
Sinon
P1400
Fin Si
Fin Si
P2Y*150
Si Z=’’Cadre’’ Alors
P32700
Sinon
P32000
Fin Si
PTP1+P2+P3
Ecrire ‘’Pirme1’’, P1
Ecrire ‘’Prime2’’, P2
Ecrire ‘’Prime3’’, P3
Ecrire ‘’Prime Total’’, PT
Fin Procédure
Début
Lire DS
Lire NE
Lire Fonction
Prime_Total (DS, NE, Fonction)
Fin
Exercice :
Une société de transport calcule le prix à payer de ses clients de la façon suivante :
Prix de base=NKm*5
Majoration= 2000 si Ville=’’casa’’
3000 si ville=’’marrakech’’
4000 si ville=’’agadir’’
Taxe= 2% du total si NKg>=500
7% du total si NKg>=1600
0% si NKg<500
Ecrire l’algorithme sous forme de procédure paramétrée par valeur qui calcule le total à
payer de chaque client, sachant qu’il y a 100 clients.
Taxe2%*T
Sinon Si Y<500 Alors
Taxe0
Fin Si
Fin Si
Fin Si
TAPT+Taxe
Ecrire ‘’Total_à_payer’’, TAP
Fin Procédure
Début
Pour i=1 à 100 Alors
Lire NKm
Lire NKg
Lire Ville
Total_à_payer (NKm, NKg, Ville)
Fin Pour
Fin
2) Paramètre par référence :
Var A, B : Réel
Procédure Maj (X, Y : Réel)
Debut
XX+2
YY+4 A B X Y
Ecrire X
Valeur 10 20 10 20
Ecrire Y
initiale
Fin Procédure
Valeur 10 20 12 24
Début
finale
Lire A
Lire B
Le contenu de A et B ne change pas
Maj (A, B)
Si le passage est par valeur
Ecrire A
Ecrire B
Fin
Var A, B : Réel
Procédure Réf (Var X, Y : Réel)
A B X Y
Valeur 10 20 10 20
initiale
Debut Valeur 12 24 12 24
XX+2 finale
YY+4
Ecrire X
Ecrire Y
Fin Procédure
Début
Lire A
Lire B
Maj (A, B) Le contenu de A et B change Si le
Ecrire A passage est par référence
Ecrire B
Fin
III. Fonction
Une fonction est une procédure qui renvoi un résultat d’une manière à ce qu’on puisse
l’afficher.
Syntaxe
Fonction Nom_Fonction (var1, var2, var3, … : Type) : Type
Var………
Debut .
Traitement
Retour resultat
Fin Fonction
Exemple :
Calculer le produit de deux nombres A et B
Var A, B, P : Réel
Fonction Produit (X, Y : Réel) : Réel
Debut
PX*Y
Retour P
Fin Fonction
Début
Lire A
Lire B
P1 Produit (A, B)
Ecrire ‘’Multiplication’’, P1
Fin
Exercice :
Ecrire l’algorithme sous forme de fonction qui trouve le plus grand de deux nombres A et B.
Var A, B, R : Réel
Fonction Plus_grand (X, Y : Réel) : Réel
Var max:reel
Debut
Si X>Y Alors
Max X
Sinon
Max Y
Fin Si
Retour Max
Fin Fonction
Début
Lire A
Lire B
RPlus_grand (A, B)
Ecrire ‘’Plus grand’’, R
Fin
Exercice
Saisir un chiffre entier et le convertir en heures et minutes sous forme de 2 fonctions
1. Une fonction trouve le nombre d’heures
2. Une fonction trouve le nombre de minutes
fonction trouver_heure(x:entier):entier
var h:entier
Début
h=y m/60
retour h
fin fonction
fonction trouver_minute(y:entier):entier
var m:entier
Debut
m=y mod 60
retour m
fin fonction
Debut
Ecrire "Nombre de minutes :"
lire(N)
heure=trouver_heure(N)
minute=trouver_heure(N)
Ecrire "Nombre d'heure :",heure
Ecrire "Nombre de Minute :",minute
Fin
Exercice :
Une société calcule le total des primes de la façon suivante :
P1=2000 si Echelle=11
P1=1500 si Echelle=10
P1=900 si Echelle=9
P2=NEnfant*160
P3=6000 si Note>=18
P3=0 si cas contraire
Ecrire l’algorithme sous forme de fonction qui calcule la prime totale
L’échelle ne peut accepter que 9, 10 et 11 dans le cas contraire afficher un message
d’erreur et ressaisir l’échelle.
Si x est un réel, la partie entière de x est le plus grand entier n qui est inférieur ou
égal à x. En clair, la partie entière de x est le seul entier n∈Z tel que n≤x<n+1
Corrigé Série d’exercices
Exercice : Ecrire une fonction ou procédure qui calcule la partie entière d’un nombre
positif.
Exercice
Ecrire une fonction ou procédure qui permet d’entrer deux valeurs M et N et
d’afficher toutes les valeurs paires entre M et N si M < N.
Récursivité
Une fonction qui fait appel à elle-même est une fonction récursive
Toute fonction récursive doit posséder un cas limite (cas trivial) qui arrête la récursivité
Exemple : Calcul de la factorielle
N!=N*(N-1)*(N-2)*…………….*2*1
var R:reel
n,resultat:reel
resultat1
factoriel (x:entier):reel
si x=1 alors (cas trivial)
retourner resultat
fin si
resultat=resultat*x
factoriel(x-1)
fin fonction
début
ecrire"valeur de n"
lire(n)
Rfactoriel(n)
ecrire "factoriel ",R
fin