IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 8 - Fonctions

Contrairement aux procédures, les fonctions renvoient directement un résultat. Elles sont appelées à partir du programme principal, d'une procédure ou d'une autre fonction. Le programme affecte des valeurs à leurs paramètres (comme pour les procédures paramétrées, il faudra faire attention à l'ordre d'affectation des paramètres). Ces fonctions, après lancement, sont affectées elles-mêmes d'une valeur intrinsèque issue de leur fonctionnement interne.
Il faut déclarer une fonction en lui donnant tout d'abord un identifiant (c'est-à-dire un nom d'appel), en déclarant les paramètres formels dont elle aura besoin et, enfin, il faudra préciser le type correspondant à la valeur que renverra la fonction (string, integer, etc.).

Une fonction ne peut pas renvoyer un type complexe (array, record) (voir chapitre 20 sur les types simples et complexes)

De plus, comme le montrent les syntaxes suivantes, on peut fabriquer une fonction sans paramètre (ex. : Random). Il ne faut surtout pas oublier, en fin (ou cours) de fonction, de donner une valeur à la fonction, c'est-à-dire d'affecter le contenu d'une variable ou le résultat d'une opération (ou autre…) à l'identifiant de la fonction (son nom), comme le montrent les syntaxes suivantes.

Syntaxes :

Fonction avec paramètre
Sélectionnez
Function nom_de_fonction (variable : type ) : type;
Var { déclaration de variables locales }
Begin
  ...
  nom_de_fonction := une_valeur;
End;
Fonction sans paramètre
Sélectionnez
Function nom_de_fonction : type;
Var { déclaration de variables locales }
Begin
  ...
  nom_de_fonction := une_valeur;
End;

Exemple :

 
Sélectionnez
Program Exemple10;

Uses Crt;

Function Puissance (i, j : Integer) : Integer;
Var Res, a : Integer ;
Begin
  Res := 1;
  for a := 1 to j do Res := Res * i;
  Puissance := Res;
End;

Var Resultat, x, n : Integer;

BEGIN
  Write('Entrez un nombre : ');
  ReadLn(x);
  Write('Entrez un exposant : ');
  ReadLn(n);
  Resultat := Puissance(x,n);
  WriteLn(Resultat);
  ReadLn;
END.

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.