Les fonctions en Pascal


1. Rappel programmation descendante
2. L'exercice proposé

Cliquez ici pour retourner aux thèmes d'exercices : ....Hyperlien vers page de cours HTML


1. Rappel programmation descendante

a programmation algorithmique est une programmation hiérarchisée descendante par blocs.


schéma figurant un problème décomposé au final en (nq-n1+1) blocs (de An1 à Anq).

La majorité des langages de programmation est capable de représenter cette décomposition hiérarchique à l'aide de blocs de programme notés aussi des sous-programmes.
 

Un bloc comporte donc des données locales, du code (instructions ou corps du bloc), des données d'entrée et/ou des données de sortie (permettant les échanges d'informations entre les blocs) :

L'exemple ci-dessous représente trois blocs B1, B2 et B3 échangeant des informations (en fait chacun calcule la somme des deux entiers qu'il reçoit en entrée et renvoie leur somme :

Le bloc B1 reçoit en entrée 12 et 15 et renvoie la somme 12+15 = 27 vers le bloc B2, la valeur 27 devient une donnée d'entrée pour le bloc B2 qui reçoit comme autre entrée la valeur 10. Le bloc B2 renvoie vers le bloc B3 le résultat 27+10 = 37 etc...

Nous remarquons que chaque bloc est indépendant des autres blocs. La seule liaison qui intervienne ici se situe dans le passage des données d'un bloc vers un autre bloc. Le code et les données locales d'un bloc fixé sont inaccessibles aux autres blocs.

En pascal les blocs sont implémentés par des procédures cf. ci-dessous :


Bloc B (2 entrées + 1 sortie)
 
 
La ligne : "procedure B ( x , y : integer ; var t : integer) ; "se dénomme l'en-tête de la procédure.

En pascal les blocs peuvent être implémentés aussi par des fonctions uniquement lorsqu'il n'y a qu'une donnée de sortie (un seul résultat) cf. ci-dessous :

Bloc B (2 entrées + 1 sortie)

Une fonction est un bloc de programme qui réalise des traitements et renvoie une valeur unique, c'est une procédure ne possédant qu'un seul élément de sortie (appelé paramètre)..
 
La ligne : "function B ( x , y : integer )  : integer ; "se dénomme l'en-tête de la fonction.

 



2. L'exercice proposé

'assistant vous propose 8 exercices  sous formes de petit programme pascal contenant une fonction et son appel dans le programme principal. Vous devez trouver la bonne en-tête de fonction à associer à l'appel de fonction dans le corps du progarmmae principal. Vous choisissez un des exercices dans la liste :

Pour pouvoir compléter l'en-tête de la fonction "Function Fonc ( ? ) : ?", vous pouvez vous servir de l'interface de saisie syntaxiquement dirigée ci-dessous :

Les différentes syntaxes possibles se trouvent dans des listes déroulantes :

Vous sélectionnez et changez chaque partie de l'en-tête autant de fois que nécessaire :

L'assistant vous indique à chaque choix le programme que vous venez de construire :

Une fois votre choix arrêté, vous testez votre programme, l'assistant renvoie une réponse visuelle et auditive :