Les fonctions : définition et syntaxe

Aller en bas

Les fonctions : définition et syntaxe

Message  Admin le Dim 13 Mar - 21:11

Règles de traduction

1 Toute fonction ou procédure algorithmique fournissant un seul résultat de type standard sera traduite par une fonction en PASCAL

2 Toute fonction ou procédure algorithmique fournissant zéro, ou plusieurs résultats sera traduite par une procédure en PASCAL


Les FONCTIONS

Structure

La composition d'une fonction est la suivante.

® Une ENTETE composée du mot clé FUNCTION, suivi du nom de la fonction, de la liste des paramètres typés entre parenthèses, et du type du résultat renvoyé par la fonction.

exemple :

FUNCTION Addition (A,B : Integer; C : Real) : Real;

® Une zone facultative de déclaration des variables internes à la fonction.

exemple :

FUNCTION PUISS_ITER(N:real;P:integer) : real;
Var
RES : real;
i :integer;

® Le corps de la fonction délimité par BEGIN et END; qui va contenir la séquence des instructions à exécuter. L'organisation de cette zone respecte le mode d'écriture d'une séquence classique d'instructions .

exemple 1 :
FUNCTION Addition (A,B : Integer; C : Real) : Real;
begin
Addition := A + B + C;
end;

exemple 2 :
FUNCTION PUISS_ITER(N:real;P:byte) : real;
Var RES : real;
i :byte;
begin
RES := 1;
For i := 1 to P do RES := RES * N;
If P < 0 then writeln('Résultat FAUX'); {puisque p de type byte, et ce type est dans l'intervalle 0..255}
PUISS_ITER := RES;
end;

Remarques

++ On note qu'en fin de fonction, il est impératif d'assigner le résultat calculé au nom de la fonction.

pour la fonction Addition

Addition := A + B + C;

pour la fonction PUISS_ITER

PUISS_ITER := RES;

Attention à l'intérieur d'une fonction on ne peut retrouver à droite d'une affectation le nom de la fonction, utilisé comme variable.

exemple :

pour la fonction PUISS_ITER

PUISS_ITER := PUISS_ITER * N; { ERREUR }

++ sauf si on l'utilise comme une fonction récursive c'est à dire une fonction qui s'appelle elle même (phénomène des suites récurentes); dans ce cas il est indispensable de lui passer l'ensemble des paramètres.

exemple :

pour la fonction PUISSANCE

PUISSANCE := PUISSANCE(N,P-1) * N; { Récursivité }

Insertion d'une fonction dans un programme

exemple :

Program TEST_FONCTION;
Var ENT1,ENT2 : integer;
REEL : real;

FUNCTION Addition(A,B:integer;C:real):real;
begin
Addition := A+B+C;
end;

BEGIN {début du programme principal}
REEL := Addition(1,2,1.5); {Appel de la fonction Addition}
writeln('REEL=',REEL);

REEL := Addition(7,3,REEL); {Appel de la fonction Addition}
writeln('REEL=',REEL);

ENT1 := 6;
ENT2 := 3;
REEL := 1.75;
REEL := Addition(ENT1,ENT2,REEL); {Appel de la fonction Addition}
writeln('REEL=',REEL);

END. {fin du programme principal}

Résultats d'exécution.

REEL=4.50
REEL=14.50
REEL=11.75

Remarque :
Il est fondamental que le nombre, et le type des paramètres soient respectés lors de l'appel d'une fonction.


Retour du résultat

Le résultat est toujours rendu à une variable
ou
utilisé dans une condition (instruction conditionnelle ou itération conditionnelle).


Ce qui correspond à des programmations de cet ordre :

REEL := Addition(1,2,1.5);
REEL := Addition(7,3,REEL);
REEL := Addition(ENT1,ENT2,REEL);
if Addition(ENT1,ENT2,REEL) = 16.256 then ...


Admin
Admin

Messages : 137
Date d'inscription : 29/12/2010

Voir le profil de l'utilisateur http://aidescolaire.yoo7.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum