Pascal - Fonctions

Sous-programmes

Un sous-programme est une unité / module de programme qui exécute une tâche particulière. Ces sous-programmes sont combinés pour former des programmes plus vastes. C'est ce qu'on appelle essentiellement la «conception modulaire». Un sous-programme peut être appelé par un sous-programme / programme, appelé programme appelant.

Pascal propose deux types de sous-programmes -

  • Functions - ces sous-programmes renvoient une valeur unique.

  • Procedures - ces sous-programmes ne renvoient pas directement de valeur.

Les fonctions

UNE functionest un groupe d'instructions qui exécutent ensemble une tâche. Chaque programme Pascal a au moins une fonction, qui est le programme lui-même, et tous les programmes les plus triviaux peuvent définir des fonctions supplémentaires.

Une fonction declarationindique au compilateur le nom, le type de retour et les paramètres d'une fonction. Une fonctiondefinition fournit le corps réel de la fonction.

La bibliothèque standard Pascal fournit de nombreuses fonctions intégrées que votre programme peut appeler. Par exemple, fonctionAppendStr() ajoute deux chaînes, fonction New() alloue dynamiquement de la mémoire aux variables et à bien d'autres fonctions.

Définition d'une fonction

Chez Pascal, un functionest défini à l'aide du mot-clé function. La forme générale d'une définition de fonction est la suivante -

function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;

begin
   ...
   < statements >
   ...
   name:= expression;
end;

Une définition de fonction en Pascal consiste en une fonction header, local declarations et une fonction body. L'en-tête de la fonction se compose de la fonction mot-clé et d'unnamedonné à la fonction. Voici toutes les parties d'une fonction -

  • Arguments- Le ou les arguments établissent le lien entre le programme appelant et les identificateurs de fonction et également appelés paramètres formels. Un paramètre est comme un espace réservé. Lorsqu'une fonction est appelée, vous transmettez une valeur au paramètre. Cette valeur est appelée paramètre ou argument réel. La liste des paramètres fait référence au type, à l'ordre et au nombre de paramètres d'une fonction. L'utilisation de tels paramètres formels est facultative. Ces paramètres peuvent avoir un type de données standard, un type de données défini par l'utilisateur ou un type de données de sous-plage.

    La liste des paramètres formels apparaissant dans l'instruction de fonction peut être des variables simples ou en indice, des tableaux ou des variables structurées, ou des sous-programmes.

  • Return Type- Toutes les fonctions doivent renvoyer une valeur, toutes les fonctions doivent donc se voir attribuer un type. lefunction-typeest le type de données de la valeur renvoyée par la fonction. Il peut être de type scalaire ou de sous-plage standard, défini par l'utilisateur, mais il ne peut pas être de type structuré.

  • Local declarations - Les déclarations locales font référence aux déclarations d'étiquettes, de constantes, de variables, de fonctions et de procédures, qui s'appliquent uniquement au corps de la fonction.

  • Function Body- Le corps de la fonction contient une collection d'instructions qui définissent ce que fait la fonction. Il doit toujours être placé entre les mots réservés de début et de fin. C'est la partie d'une fonction où tous les calculs sont effectués. Il doit y avoir une instruction d'affectation du type -name := expression;dans le corps de la fonction qui attribue une valeur au nom de la fonction. Cette valeur est renvoyée au fur et à mesure de l'exécution de la fonction. La dernière instruction du corps doit être une instruction de fin.

Voici un exemple montrant comment définir une fonction dans pascal -

(* function returning the max between two numbers *)
function max(num1, num2: integer): integer;

var
   (* local variable declaration *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

Déclarations de fonction

Une fonction declarationindique au compilateur un nom de fonction et comment appeler la fonction. Le corps réel de la fonction peut être défini séparément.

Une déclaration de fonction comprend les parties suivantes -

function name(argument(s): type1; argument(s): type2; ...): function_type;

Pour la fonction max () définie ci-dessus, voici la déclaration de fonction -

function max(num1, num2: integer): integer;

La déclaration de fonction est requise lorsque vous définissez une fonction dans un fichier source et que vous appelez cette fonction dans un autre fichier. Dans ce cas, vous devez déclarer la fonction en haut du fichier appelant la fonction.

Appeler une fonction

Lors de la création d'une fonction, vous donnez une définition de ce que la fonction doit faire. Pour utiliser une fonction, vous devrez appeler cette fonction pour exécuter la tâche définie. Lorsqu'un programme appelle une fonction, le contrôle du programme est transféré à la fonction appelée. Une fonction appelée exécute une tâche définie, et lorsque son instruction return est exécutée ou lorsque la dernière instruction end est atteinte, elle renvoie le contrôle du programme au programme principal.

Pour appeler une fonction, vous devez simplement transmettre les paramètres requis avec le nom de la fonction, et si la fonction renvoie une valeur, vous pouvez stocker la valeur renvoyée. Voici un exemple simple pour montrer l'utilisation -

program exFunction;
var
   a, b, ret : integer;

(*function definition *)
function max(num1, num2: integer): integer;
var
   (* local variable declaration *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

begin
   a := 100;
   b := 200;
   (* calling a function to get max value *)
   ret := max(a, b);
   
   writeln( 'Max value is : ', ret );
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Max value is : 200