0% ont trouvé ce document utile (0 vote)
28 vues18 pages

Paramètres en Programmation Informatique

Ce document décrit les concepts de fonctions et procédures en programmation. Il présente les définitions, utilisations et caractéristiques des fonctions et procédures, notamment les paramètres, variables locales et globales, et récursivité. Le document contient de nombreux exemples et explications sur ces sujets.

Transféré par

mohamed walid
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues18 pages

Paramètres en Programmation Informatique

Ce document décrit les concepts de fonctions et procédures en programmation. Il présente les définitions, utilisations et caractéristiques des fonctions et procédures, notamment les paramètres, variables locales et globales, et récursivité. Le document contient de nombreux exemples et explications sur ces sujets.

Transféré par

mohamed walid
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithme II

Module 16
SMI-S3/FPL

[Link] ABDERRAHMANI 2
Fonctions et procédures

[Link] ABDERRAHMANI 3
Fonctions et procédures

• Certains problèmes conduisent à des programmes longs, difficiles à écrire et


à comprendre. On les découpe en des parties appelées sous-programmes ou
modules

• Les fonctions et les procédures sont des modules (groupe d'instructions)


indépendants désignés par un nom. Elles ont plusieurs intérêts :
– permettent de "factoriser" les programmes, càd de mettre en commun les
parties qui se répètent

– permettent une structuration et une meilleure lisibilité des programmes

– facilitent la maintenance du code (il suffit de modifier une seule fois)

– ces procédures et fonctions peuvent éventuellement être réutilisées dans


d'autres programmes

[Link] ABDERRAHMANI 4
Fonctions
Définitions
• Le rôle d'une fonction en programmation est similaire à celui d'une fonction en
mathématique : elle retourne un résultat à partir des valeurs des paramètres

• Une fonction s'écrit en dehors du programme principal sous la forme :

Fonction nom_fonction (paramètres et leurs types) : type_fonction

Instructions constituant le corps de la fonction


retourne …
FinFonction
• Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les
noms de variables
• type_fonction est le type du résultat retourné
• L'instruction retourne sert à retourner la valeur du résultat

[Link] ABDERRAHMANI 5
Fonctions

exemples:
• La fonction SommeCarre suivante calcule la somme des carrées de deux
réels x et y :
Fonction SommeCarre (x : réel, y: réel ) : réel
variable z : réel
z ←x^2+y^2
retourne (z)
FinFonction

• La fonction Pair suivante détermine si un nombre est pair :

Fonction Pair (n : entier ) : booléen


retourne (n%2=0)
FinFonction
[Link] ABDERRAHMANI 6
Fonctions

Utilisation des fonctions


• L'utilisation d'une fonction se fera par simple écriture de son nom dans le
programme principale. Le résultat étant une valeur, devra être affecté ou
être utilisé dans une expression, une écriture, ...

• Exepmle : Algorithme exepmleAppelFonction


variables z : réel, b : booléen
Début
b ←Pair(3)
z ←5*SommeCarre(7,2)+1
écrire("SommeCarre(3,5)= ", SommeCarre(3,5))
Fin

• Lors de l'appel Pair(3) le paramètre formel n est remplacé par le


paramètre effectif 3
[Link] ABDERRAHMANI 7
Procédures
Définitions
• Une procédure est un sous-programme semblable à une fonction mais qui ne
retourne rien
• Une procédure s'écrit en dehors du programme principal sous la forme :

Procédure nom_procédure (paramètres et leurs types)

Instructions constituant le corps de la procédure

FinProcédure
• Remarque : les fonctions et les procédures peuvent ne pas avoir de paramètres

[Link] ABDERRAHMANI 8
Procédures
Appel d'une procédure
• L'appel d'une procédure, se fait dans le programme principale ou dans une autre
procédure par une instruction indiquant le nom de la procédure :
Procédure exemple_proc (…)

FinProcédure

Algorithme exepmleAppelProcédure
Début
exemple_proc (…)

Fin

• Remarque : contrairement à l'appel d'une fonction, on ne peut pas affecter la


procédure appelée ou l'utiliser dans une expression. L'appel d'une procédure est
une instruction autonome

[Link] ABDERRAHMANI 9
Paramètres/fonction et procédure
Définitions
• Les paramètres servent à échanger des données entre le programme principale
(ou la procédure appelante) et la procédure appelée

• Les paramètres placés dans la déclaration d'une procédure sont appelés


paramètres formels. Ces paramètres peuvent prendre toutes les valeurs possibles
mais ils sont abstraits (n'existent pas réellement)

• Les paramètres placés dans l'appel d'une procédure sont appelés paramètres
effectifs. ils contiennent les valeurs pour effectuer le traitement

• Le nombre de paramètres effectifs doit être égal au nombre de paramètres


formels. L'ordre et le type des paramètres doivent correspondre

[Link] ABDERRAHMANI 10
Paramètres/fonction et procédure
Transmission des paramètres

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 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 procédure appelante. Dans ce mode, le paramètre
effectif subit les mêmes modifications que le paramètre formel lors de l'exécution
de la procédure
– Remarque : le paramètre effectif doit être une variable (et non une valeur)
lorsqu'il s'agit d'une transmission par adresse

• En pseudo-code, on va préciser explicitement le mode de transmission dans la


déclaration de la procédure

[Link] ABDERRAHMANI 11
Paramètres/fonction et procédure
Transmission des paramètres/exemples
Procédure incrementer1 (x : entier par valeur, y : entier par adresse)
x ← x+1
y ← y+1
FinProcédure

Algorithme Test_incrementer1
variables n, m : entier
Début
n←3
m←3
incrementer1(n, m) résultat :
écrire (" n= ", n, " et m= ", m) n=3 et m=4
Fin

Remarque : l'instruction x ← x+1 n'a pas de sens avec un passage par valeur
[Link] ABDERRAHMANI 12
Paramètres/fonction et procédure
Transmission des paramètres/exemples

Procédure qui calcule la somme et le produit de deux entiers :


Procédure SommeProduit (x,y: entier par valeur, som, prod : entier par adresse)
som ← x+y
prod ← x*y
FinProcédure

Procédure qui échange le contenu de deux variabales :


Procédure Echange (x : réel par adresse, y : réel par adresse)
variables z : réel
z←x
x←y
y←z
FinProcédure
[Link] ABDERRAHMANI 13
Variables locales et globales

• On peut manipuler 2 types de variables dans un module (procédure ou fonction) :


des variables locales et des variables globales. Elles se distinguent par ce qu'on
appelle leur portée (leur "champ de définition", leur "durée de vie")

• Une variable locale n'est connue qu'à l'intérieur du module ou elle a été définie. Elle
est créée à l'appel du module et détruite à la fin de son exécution

• Une variable globale est connue par l'ensemble des modules et le programme
principale. Elle est définie durant toute l’application et peut être utilisée et modifiée
par les différents modules du programme

[Link] ABDERRAHMANI 14
Variables locales et globales/suite

• La manière de distinguer la déclaration des variables locales et globales diffère selon


le langage

– En général, les variables déclarées à l'intérieur d'une fonction ou procédure sont


considérées comme variables locales

• En pseudo-code, on va adopter cette règle pour les variables locales et on déclarera


les variables globales dans le programme principale

• Conseil : Il faut utiliser autant que possible des variables locales plutôt que des
variables globales. Ceci permet d'économiser la mémoire et d'assurer
l'indépendance de la procédure ou de la fonction

[Link] ABDERRAHMANI 15
Récursivité
Définitions
• Un module (fonction ou procédure) peut s'appeler lui-même: on dit que
c'est un module récursif

• Tout module récursif doit posséder un cas limite (cas trivial) qui arrête la
récursivité

• Exemple : Calcul du factorielle


Fonction fact (n : entier ) : entier
Si (n=0) alors
retourne (1)
Sinon
retourne (n*fact(n-1))
Finsi
FinFonction
[Link] ABDERRAHMANI 16
Récursivité
Exercices:
• Ecrivez une fonction récursive (puis itérative) qui calcule le terme n de la
suite de Fibonacci définie par : U(0)=U(1)=1
U(n)=U(n-1)+U(n-2)

Fonction Fib (n : entier ) : entier


Variable res : entier
Si (n=1 OU n=0) alors
res ←1
Sinon
res ← Fib(n-1)+Fib(n-2)
Finsi
retourne (res)
FinFonction

[Link] ABDERRAHMANI 17
Récursivité
Exercices:
• Une fonction itérative pour le calcul de la suite de Fibonacci :
Fonction Fib (n : entier ) : entier
Variables i, AvantDernier, Dernier, Nouveau : entier
Si (n=1 OU n=0) alors retourne (1)
Finsi
AvantDernier ←1, Dernier ←1
Pour i allant de 2 à n
Nouveau← Dernier+ AvantDernier
AvantDernier ←Dernier
Dernier ←Nouveau
FinPour
retourne (Nouveau)
FinFonction
Remarque: la solution récursive est plus facile à écrire

[Link] ABDERRAHMANI 18
Récursivité
Exercices:
• Une procédure récursive qui permet d'afficher la valeur binaire d'un entier n

Procédure binaire (n : entier )


Si (n<>0) alors
binaire (n/2)
écrire (n mod 2)
Finsi
FinProcédure

[Link] ABDERRAHMANI 19

Vous aimerez peut-être aussi