Vous êtes sur la page 1sur 7

CHAPITRE

7
Les fonctions et les procédures

I- Introduction:

II- Constantes et variables:

1. Les constantes :

2. Les variables :

III- Les procédures:

IV- Les fonctions:

V- Appel de sous programme:

Jihen Hedhli Page 1


I- Introduction:

Un programme C comporte en général les éléments suivants :

- Des directives

- Une fonction main

- Des constantes et des variables

- Des sous_programmes

Dans ce chapitre, on va s’intéresser aux sous_programmes (fonction et procédure).

II- Constantes et variables:

1. Les constantes :

Pour définir une constante propre à l’utilisateur, le langage C offre une macro instruction de la
forme suivante : # define n 10

Exemple :

# defïne n 10

main()

Printf (« la valeur de n est %d », n) ; /* n est une constante de valeur 10 */.

….

2. Les variables :

Le langage C offre des moyens au programmeur permettant de contrôler la portée d’une


variable et son implantation en mémoire.

- Une variable a un type simple ou structuré,

- Une variable peut être locale ou globale.

 Variable locale:

C’est une variable qui a une portée réduite au bloc où elle est déclarée ou définie.

Jihen Hedhli Page 2


Exemple :

main()

int k, n=5:

/* bloc d’ instructions */

int i;

for (i=0,k=0; i !=n-1; i++, k++)

printf ("%d",(i+k));

/*fin de bloc d’instruction */

i++ ; Le compilateur signale une erreur :

La variable i est locale au bloc d’instruction ou elle a été

définie.

 Variable globale :

Une variable globale est déclarée en dehors du sous programme.

Exemple :

# define n 5;

int i, j; /* variable globale au programme*/

main( )

float k ; … /* variable locale à la fonction main( )*/

Une variable globale est visible pour tous les sous programmes qui sont déclarés après. La

durée de vie d’une variable globale est celle du programme.

Jihen Hedhli Page 3


III- Les procédures:

 Syntaxe :

Void nom_procédure ([paramètre])

[Déclaration de type paramètre]

[déclaration de variable locale]

[partie exécutive : ensemble d’instruction]

- void : Le type vide

- nom_procédure : un identificateur qui indique le nom de la procédure.

- paramètre : des identificateurs séparés par des virgules.

 Exemple:

Void affiche( )

Printf(“ ma première procedure”);

IV- Les fonctions:

 Syntaxe :

type nom_fonction ([paramètre])

[Déclaration de type paramètre]

[déclaration de variable locale]

[partie exécutive : ensemble d’instruction]

Return (expression) ; }

Jihen Hedhli Page 4


Remarque :

La seule différence avec la notion d’une procédure est que la fonction calcule une valeur

d’un type bien déterminé qu’ elle retourne.

Les types retournés sont :

• Type scalaire (entier, scalaire)

• Type non scalaire (structure, tableau)

• Pointeur (adresse)

 Exemple

La fonction factorielle :

int factoriel (n)

int n;

int i, fact=1;

for (i=2; i≤ n; i++)

fact=fact * i;

return (fact) ; }

Remarque:

Dans l’écriture de sous programme, il existe 2 syntaxes :

Syntaxe standard Syntaxe C_ANCI

int pgcd (a, b) int pgcd(int a ,int b)

int a, b; {…}

{…}

Jihen Hedhli Page 5


V- Appel de sous programmes:

L’appel d’une procédure prend la forme suivante :

Nom_procédure (pl, p2, p3) ;

Avec pi sont des paramètres effectifs (réels).

On note que l’appel d’un sous programme est considéré une instruction, pour la fonction

l’appel est intégré au sein d’une expression.

Exemple :

On écrit le programme qui permet de calculer et d’afficher le factoriel d’un nombre, en

utilisant la fonction factorielle :

 La fonction factorielle :

int factoriel (n)

int n;

int i, fact=1;

for (i=2; i≤ n; i++)

fact=fact * i;

return (fact) ;

 Le programme principal :

main( )

int n, fact ;

printf(« donner le nombre « ) ;

scanf("%d ",&n) ;

fact= factoriel(n) ;

Jihen Hedhli Page 6


printf(" le factoriel de %d est %d ", n, fact) ;

Remarques :

- L’appel d’un sous programme suppose qu’il est défini déjà.

- Un sous programme est défini une et une seule fois, il est appelé autant de fois que

le programme exige.

- Lors de l’appel d’un sous programme, on distingue 2 environnements :

L’environnement appelant (main) et l’environnement appelé (fonction).

- Lors de la définition d’un sous programme, on part de paramètre formel qui figure au

niveau de l’entête, lors de l’appel de fonction c’est le paramètre effectif qui est fourni.

- On doit respecter le type, l’ordre et le nombre entre les paramètres effectifs et formels.

Jihen Hedhli Page 7

Vous aimerez peut-être aussi