Des suites d'instructions peuvent être rassemblées en blocs séparés qui peuvent être appelés depuis plusieurs endroits d'un programme. Ceci donne lieu aux notions de procédures et de fonctions.
Ce sont des groupes d'instructions qui vont former une nouvelle instruction simple utilisable dans un programme. Comme toujours en Pascal il faut les définir avant de les utiliser. Ceci se fait en utilisant une structure similaire à celle d'un programme.
Procedure Identificateur(Param1:Type1,Param2:Type2,...);
Identificateur est le nom de la procédure; Param1, Param2 ... sont des paramètres que le programme fournit à la procédure sous forme de constantes, de variables ou d'expressions; Type1, Type2 ... sont les types de ces paramètres.
déclarations de constantes, types, variables utilisés à l'intérieur de la procédure
Begin Instruction1; Instruction2; . End;
Il s'agit des instructions exécutées par le programme à l'appel de la procédure. Une procédure peut appeler d'autres procédures définies avant elle. L'appel d'une procédure se fait en écrivant son nom suivi des paramètres nécessaires entre parenthèses.
Une fonction est une procédure qui devra fournir un résultat de type numérique ou chaîne de caractères. La définition se fait en utilisant une structure similaire à celle de la procédure.
Function Identificateur(Param1:Type1,Param2:Type2,...):TypeR;
Identificateur est le nom de la procédure; Param1, Param2 ... sont des paramètres que le programme fournit à la fonction sous forme de constantes, de variables ou d'expressions; Type1, Type2 ... sont les types de ces paramètres; TypeR est le type du résultat fourni par la fonction.
déclarations de constantes, types, variables utilisés à l'intérieur de la fonction.
Begin Instruction1; Instruction2; . Identificateur:=résultat; . End;
Il s'agit des instructions exécutées par le programme à l'appel de la fonction. L'une de ces instructions doit fournir le résultat de la fonction en l'affectant au nom de la fonction. L'appel d'une fonction se fait en écrivant son nom suivi des paramètres nécessaires entre parenthèses. Elle représente une expression du type du résultat fourni.
Les déclarations se trouvant à l'intérieur d'une procédure ou d'une fonction ne sont valables que pour la procédure ou la fonction et sont donc inconnues pour le reste du programme ; les variables ainsi déclarées sont dites locales. Par contre les déclarations faites dans la partie déclaration du programme sont valables pour les procédures et fonctions qui les suivent; les variables ainsi déclarées sont dites globales.
Les variables transmises en paramètres à une procédure ou une fonction ne sont pas modifiées pour le reste du programme, en effet la procédure ou la fonction qui les utilisent ne disposent que d'une copie : on a une transmission de paramètres par valeur.
Pour permettre à une procédure ou une fonction de modifier le contenu d'une variable passée en paramètre on utilise le mot réservé Var. Ainsi, la procédure déclarée par MaProc(Var r:Real) peut modifier le contenu de la variable r car elle travaille non avec une copie de la valeur de r, mais avec l'adresse mémoire de la variable r : on une transmission de paramètres par adresse.
Les procédures et fonctions utilisées couramment peuvent être regroupées en bibliothèques appelées unités en Turbo Pascal. Dans ce cas on déclare l'utilisation des bibliothèques dans la partie déclarations du programme en utilisant le mot réservé Uses suivi des noms des unités.
Le programmeur peut créer de nouvelles unités.
Le Turbo Pascal fournit un certain nombre d'unités prêtes à l'emploi: