Algorithmique - Séance 3 -Séance 2Séance 4

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.