Previous Page Next Page

11.4 La hiérarchie des procédures

Nous allons illustrer les notions de procédure appelante et de procédure appelée sur un exemple tiré du domaine des mathématiques.

Il s'agit d'implémenter la multiplication de deux entiers positifs A et B (A, B Î IN) par des additions successives. On a:

A*B = A + A + A + . . . + A, B termes égaux à A.

L'addition de deux entiers positifs non nuls A et B, à leur tour, peut être réalisée en construisant B fois le successeur (addition d'un entier A et de 1) de A:

A+B = Successor( Successor( . . . Successor( A )) . . . )

On obtient le programme Turbo-Pascal suivant:

PROGRAM Multiplication;

Uses Crt;

VAR A, B, P: Integer;

PROCEDURE Mult ( A, B: Integer; VAR M: Integer );

VAR I: Integer;

PROCEDURE Add ( A, B: Integer; VAR S: Integer );

VAR J: Integer;

PROCEDURE Successor ( VAR N: Integer );

BEGIN

N := N+1

END; {-- Successor}

BEGIN {Add}

J := 1;

S := A;

WHILE J<=B DO

BEGIN

Successor( S );

Successor( J )

END

END; {-- Add}

BEGIN {Mult}

I := 1;

M := 0;

WHILE I<=B DO

BEGIN

Add( M, A, M );

Add( I, 1, I )

END

END; {-- Mult}

BEGIN {main}

ClrScr;

Write( 'Entrer A: ' ); Readln( A );

Write( 'Entrer B: ' ); Readln( B );

Mult( A, B, P );

Writeln( A, ' * ', B, ' = ', P)

END. {-- Multiplication}

Py/Px

main

Mult

Add

Successor

Mult

(

6

Add

(

6

Successor

(

6

(: Px appelle Py

6: Px peut appeler Py

Figure 11.1 Hiérarchie des procédures et possibilités d'appels

La figure 11.1 montre la hiérarchie des procédures ainsi que les possibilités d'appels. Les procédures Mult, Add sont des procédures appelantes. Les procédures Mult, Add et Successor sont des procédures appelées. Le programme principal est seulement appelant.

Evidemment chaque procédure peut faire appel à elle-même. Dans ce cas on parle de récursivité (voir chapitre 13).

Previous Page Next Page


© Aflo Informatique , 2003-2004