0% ont trouvé ce document utile (0 vote)
30 vues15 pages

Sous-algorithmes en C : Fonctions et Procédures

Transféré par

a bb
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues15 pages

Sous-algorithmes en C : Fonctions et Procédures

Transféré par

a bb
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 4

Algorithmique & Programmation en C

Sous-algorithme
(Fonctions et procédures)

1
Prof: R. EL AYACHI
Définition

• Un sous-algorithme est un bloc à part entière qui


est destiné à réaliser une tâche précise. Cette tâche
peut être exécutée plusieurs fois.
• L’exécution d’un sous-algorithme s’effectue par
un appel en précisant les paramètres
• Il est déclaré dans la partie en-tête de l’algorithme
en déterminant les caractéristiques suivantes:
– En-tête( l’identificateur, les arguments et le
type de résultat à retourner)
– Corps (Traitements)
2
Prof: R. EL AYACHI
Types de sous-algorithme

Un sous-algorithme peut se présenter sous forme:


•Fonction: un sous-algorithme qui retourne un
résultat après l’exécution.
• Procédure: un sous-algorithme qui ne retourne
rien après l’exécution.

3
Prof: R. EL AYACHI
Procédure

Déclaration:
Procédure Nom_Procédure(Nom_Argum:Type_Argum;….);
Variable Nom_Var: Type;
… Nom de la
procédure
Début
instruction1;
Variables
instruction2; locale

Fin;
Corps de la
procédure

4
Prof: R. EL AYACHI
Procédure

Appel:
L’appel de la procédure s’effectue (au moment souhaité) par
son nom et éventuellement ses paramètres. Cet appel
déclenche l’exécution des instructions de la procédure.

Nom_Procédure(Param1;Param2;….);

Nom de la Liste des


procédure paramètres

5
Prof: R. EL AYACHI
Procédure

Exemple: (Calculer la surface d’un rectangle)


Algorithme Recangle; larg  5; long  7;
Variable larg,long: Réel; Surface(larg,long); //Appel
Procédure Surface(A:Réel;B:Réel);
Variable S:Réel; larg  8; long  9;
Début Surface(larg,long); //Appel
S  A*B;
Ecrire(‘La surface est: ’,S); larg  6; long  4; //Appel
Fin; Surface(larg,long);
Début Fin

6
Prof: R. EL AYACHI
Fonction

Déclaration:
Fonction Nom_Fonction(Nom_Argum:Type_Argum;….):Type_Ret;
Variable Nom_Var: Type; Nom de la
fonction

Début
Type du résultat
Variables
instruction1; à retourner
locale
instruction2;
… Corps de la
fonction
Nom_FonctionRésultat;
Fin;

7
Prof: R. EL AYACHI
Fonction

Appel:
L’appel de la fonction s’effectue (au moment souhaité) par
son nom, ses paramètres et en affectant le résultat retourné
à une variable. Cet appel déclenche l’exécution des
instructions de la fonction.
Nom_Variable  Nom_Fonction(Param1;Param2;….);

Variable stockant le
résultat retourné Liste des
paramètres
Nom de la
fonction
8
Prof: R. EL AYACHI
Fonction

Exemple: (Calculer la surface d’un rectangle)


Algorithme Recangle; larg  5; long  7;
Variable larg,long,res: Réel; resSurface(larg,long); //Appel
Fonction Surface(A:Réel;B:Réel):Réel; Ecrire(‘Résultat’,res);
Variable S:Réel; larg  8; long  9;
Début res Surface(larg,long); //Appel
S  A*B; Ecrire(‘Résultat’,res);
Surface  S; larg  6; long  4; //Appel
Fin; res Surface(larg,long);
Début Ecrire(‘Résultat’,res);
Fin

9
Prof: R. EL AYACHI
Exercice
On veut résoudre une équation du premier
degré en utilisant la notion des sous-
algorithmes.
Ecrire deux sous-algorithmes comme suit:
• Une fonction lecture(): saisir et
retourner un réel
• Une procédure solution(float,float):
résoudre une équation du premier degré.

10
Prof: R. EL AYACHI
Exercice (Solution)

Fonction lecture():
Fonction lecture( ):Réel;
Variable val: Réel;
Début
Ecrire(‘Entrer une valeur’);
Lire(val);
lectureval;
Fin;

11
Prof: R. EL AYACHI
Exercice (Solution)

Procédure solution():
Procédure solution(a: Réel, b: Réel);
Variable x: Réel;
Début
Si a <> 0 alors
x-b/a; Ecrire(x);
Sinon
Si b=0 alors Ecrire(‘IR’);
Sinon Ecrire(‘Ensemble vide’);
Finsi
Finsi
Fin;
12
Prof: R. EL AYACHI
Exercice (Solution)

Conception:
Algorithme Equation; Si a <> 0 alors
Variable A,B: Réel; x-b/a; Ecrire(x);
Fonction lecture( ):Réel; Sinon
Variable val: Réel; Si b=0 alors Ecrire(‘IR’);
Début SinonEcrire(‘Ensemble vide’);
Ecrire(‘Entrer une valeur’); Finsi
Lire(val); Finsi
lectureval; Fin;
Fin; Début
Procédure solution(a:Réel, b:Réel); A lecture();
Variable x: Réel; B lecture();
Début solution(A,B);
Fin
13
Prof: R. EL AYACHI
Récursivité

Fonction récursive:
C’est une fonction qui contient un appel à elle même.
Fonction Nom_Fonction(Nom_Argum:Type_Argum;….):Type_Ret;
Variable Nom_Var: Type;
… Appel de la fonction
Début elle même

instruction1;
instruction2;

Nom_FonctionNom_Fonction(param,…);
Fin; 14
Prof: R. EL AYACHI
Récursivité

Exemple: Calculer: 1*2*3*….*N

Fonction Factoriel(N:Entier;….):Entier;
Début
Si N = 1 alors Factoriel  1;
Sinon Factoriel  N*Factoriel(N-1);
Finsi
Fin;

15
Prof: R. EL AYACHI

Vous aimerez peut-être aussi