On peut utiliser des fonctions (qui peuvent soit être connues par le compilateur, soit définies par vous-même). Une fonction est un "module" ou "routine" qui renvoie une valeur au programme.
Par exemple, A :=sqrt(B * C) met dans A la racine carrée de B fois C. B * C est appelé argument de la fonction.
Une fonction renvoie un résultat.
Les fonctions standards
Les principales fonctions standard connues par tous les compilateurs sont :
ABS : renvoie la valeur absolue
SQR : renvoie le carré
SQRT : racine carrée
EX : exponentielle
LN : log népérien
SIN : sinus
COS : cosinus
ARCTAN : arc tangente
SUCC : variable énumérée suivante
PRED : variable énumérée précédente
ROUND : arrondi à l'entier le plus proche
TRUNC : partie entière d’un nombre
Comme toute variable, une fonction possède un type (entier, réel,...) défini, et ne peut donc être utilisée que comme une variable de ce type.
De plus, l’argument de la fonction est lui aussi typé : on ne peut pas demander le cosinus d’une variable de type CHAR.
Définir des fonctions « personnelles »
Il est possible d’écrire et d’utiliser ses propres fonctions. L’entête est du type :
FUNCTION Nom_fonction(liste_parametre) : type_de_la_fonction;
Chaque paramètre doit être typé mais on peut les regrouper par type.
Voici un exemple : la fonction suivante va permettre de calculer le volume d’un pavé.
FUNCTION volume(longueur,largeur,hauteur : REAL) : REAL;
BEGIN
volume := longueur*largeur*hauteur;
END;
Analyse :
FUNCTION volume(longueur,largeur,hauteur : REAL) : REAL;
La fonction volume a 3 paramètre longueur, largeur et hauteur qui sont des nombres à virgule et le résultat qu’elle renvoie est aussi un nombre à virgule.
BEGIN
END;
Marque le début et la fin de la fonction.
volume := longueur*largeur*hauteur;
le résultat de la fonction volume est obtenu en faisant l’opération longueur × largeur × hauteur.
Utiliser une fonction « personnelle »
On va maintenant écrire un programme utilisant notre fonction.
PROGRAM Volume_du_pave;
VAR a,b,c,v : REAL;
FUNCTION volume(longueur,largeur,hauteur : REAL) : REAL;
BEGIN
volume := longueur*largeur*hauteur;
END;
BEGIN
Writeln(‘Calcul du volume du pavé’);
Write(‘Entrez la longueur :’);
Readln(a);
Write(‘Entrez la largeur :’);
Readln(b);
Write(‘Entrez la hauteur :’);
Readln(c);
v:= volume(a,b,c);
Write(‘Le volume de ce pave est ’,v);
END.
Analyse du programme :
VAR a,b,c,v : REAL;
Déclaration des variables : 3 variables pour la saisie des dimensions et une pour le calcule du volume.
FUNCTION volume(longueur,largeur,hauteur : REAL) : REAL;
BEGIN
volume := longueur*largeur*hauteur;
END;
Déclaration et définition de la fonction.
Writeln(‘Calcul du volume du pavé’);
Write(‘Entrez la longueur :’);
Readln(a);
Write(‘Entrez la largeur :’);
Readln(b);
Write(‘Entrez la hauteur :’);
Readln(c);
v:= volume(a,b,c);
Utilisation de la fonction pour calculer le volume.
Write(‘Le volume de ce pave est ’,v);
Affichage du résultat.
Exercice
Ecrire un programme qui demande les deux longueurs des côtés de l’angle droit d’un triangle rectangle et qui calcule
la longueur de l’hypoténuse.