menu prev next

LES FONCTIONS - UN TYPE PARTICULIER DE PROCEDURE
Les procédures acceptent des données ou variables comme paramètres lors de leur exécution. Les fonctions aussi acceptent des données, mais ont en plus la particularité de renvoyer une valeur à la procédure ou au programme qui les utilisent. Les fonctions sont utilisées pour effectuer des opérations mathématiques comme des factorielles.

Une fonction

L'entête d'une fonction diffère légèrement de celle d'une procédure. Sa forme est la suivante:

      function  Nom_de_Fonction (declaration des paramètres) : type_renvoye;

Après les parenthèses des déclarations de variables prises en arguments, le type de la valeur renvoyée (précédé par deux points) est spécifié.


	function  ADD_TWO ( value1, value2 : integer ) : integer;
	begin
	     ADD_TWO := value1 + value2
	end;

Cette fonction est appelée dans le programme comme suit:

	result := ADD_TWO( 10, 20 );
Dès lors, quand la procédure ADD_TWO est exécutée, elle assigne à son nom la valeur à renvoyer (dans ce cas-ci 30), valeur qui est ensuite assignée à result.


TESTEZ-VOUS
Qu'affiche le programme suivant lors de son exécution.

	program  function_time (input, output);
	const    maxsize = 80;
	type     line = packed array[1..maxsize] of char;

	function COUNTLETTERS ( words : line) : integer; {renvoie un entier}
	var      loop_count : integer;                   {variable locale}
	begin
	      loop_count := 1;
	      while (words[loop_count] <> '.') and (loop_count <= maxsize) do
		      loop_count := loop_count + 1;
	      COUNTLETTERS := loop_count - 1
	end;

	var   oneline : line;
	      letters : integer;
	begin
	      writeln('Intoduisez une phrase terminee par un .');
	      readln( oneline );
	      letters := COUNTLETTERS( oneline );
	      writeln('Il y a ',letters,' lettres dans cette phrase.')
	end.

Cliquez ici pour obtenir la réponse


Copyright B Brown/P Henry/CIT, 1988-1995. Tous droits réservés.
Copyright UCL/INGI, 1995. Tous droits réservés
URL: http://candix1.fsa.ucl.ac.be/langages/Pascal/tutoriel/pas046.htm
menu prev next