Vous êtes sur la page 1sur 10

1

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

PROCEDURES ET FONCTIONS | Pr EL OMARI


2

Lire A
Lire B
SA+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
GA
Sinon
PB
Fin Si

PROCEDURES ET FONCTIONS | Pr EL OMARI


3

Ecrire ‘’Grand’’, G
Ecrire ‘’Grand’’, P
Fin Procédure

II. Procédures paramétrées :

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.

Les paramètres servent à échanger des informations entre la fonction appelante et la


fonction appelée. Ils peuvent recevoir des données et stocker des résultats
Il existe deux modes de transmission de paramètres dans les langages de
programmation :
 La transmission par valeur : les valeurs des paramètres effectifs sont
affectées aux paramètres formels correspondants au moment de l'appel de
la fonction ou procédure. Dans ce mode le paramètre effectif ne subit
aucune modification
 La transmission par adresse (ou par référence) : les adresses des
paramètres effectifs sont transmises à la fonction appelante. Dans ce mode,
le paramètre effectif subit les mêmes modifications que le paramètre
formel

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

1) Paramètre par valeur :

PROCEDURES ET FONCTIONS | Pr EL OMARI


4

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
SX+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
P12000
Sinon Si X>5 Alors
P11500
Sinon
P1400
Fin Si
Fin Si
P2Y*150
Si Z=’’Cadre’’ Alors

PROCEDURES ET FONCTIONS | Pr EL OMARI


5

P32700
Sinon
P32000
Fin Si
PTP1+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.

Var NKm, NKg : Réel


Ville : Chaîne
i : Entier
Procédure Total_à_payer (X, Y : Réel, Ville : Chaîne)
Var Maj : Entier
Debut
PB, Taxe, T, TAP : Réel
PB X*5
Si Z=’’casa’’ Alors
Maj 2000
Sinon Si Z=’’marrakech’’ Alors
Maj 3000
Sinon Si Z=’’agadir’’ Alors
Maj 4000
Fin Si
Fin Si
Fin Si
TPB + Maj
Si Y>=1600 Alors
Taxe7%*T
Sinon Si Y>=500 Alors

PROCEDURES ET FONCTIONS | Pr EL OMARI


6

Taxe2%*T
Sinon Si Y<500 Alors
Taxe0
Fin Si
Fin Si
Fin Si
TAPT+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 :

L’appel d’une procédure paramétrée par référence nécessite le passage de valeurs du


programme appelant vers la procédure appelée.
Syntaxe
Procédure Nom_Procédure (Var var1, var2, … : Type)
Var …………
Debut
Traitement
Fin Procédure
Exemple :

Var A, B : Réel
Procédure Maj (X, Y : Réel)
Debut
XX+2
YY+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

PROCEDURES ET FONCTIONS | Pr EL OMARI


7

Debut Valeur 12 24 12 24
XX+2 finale
YY+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

Type : représente le type du résultat obtenu par la 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
PX*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.

PROCEDURES ET FONCTIONS | Pr EL OMARI


8

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
RPlus_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

var heure,minute,N :entier

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

PROCEDURES ET FONCTIONS | Pr EL OMARI


9

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.

Var E, NE, N, R : Entier


Fonction Prime_Totale (X, Y, Z : Entier) : Entier
Var P1, P2, P3 ,PT: Entier
Debut
Si X=11 Alors
P12000
Sinon Si X=10 Alors
P11500
Sinon Si X=9 Alors
P1900
Fin Si
Fin Si
Fin Si
P2 Y*160
Si Z>=18 Alors
P36000
Sinon
P30
Fin Si
ptP1+P2+P3
retourner PT
Fin Fonction
Début
Lire E
Tant Que E>11 ou E<9 Faire
Ecrire ‘’Valeur Invalide’’
Lire E
Fin Tant Que
Lire NE
Lire N
RPrime_Totale (E, NE, N)
Ecrire ‘’Prime Totale’’, R
Fin

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

PROCEDURES ET FONCTIONS | Pr EL OMARI


10

Exercice : Ecrire une fonction ou procédure qui calcule la partie entière d’un nombre
positif.

Fonction entiere (x : reel) : entier ;


Var y : entier ;
Debut
y 0 ;
Tant que y < x faire
yy+1
FinTant que
Retour y
Fin fonction

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
resultat1
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)
Rfactoriel(n)
ecrire "factoriel ",R
fin

PROCEDURES ET FONCTIONS | Pr EL OMARI

Vous aimerez peut-être aussi