0% ont trouvé ce document utile (0 vote)
23 vues11 pages

Initiation À L'algorithmique (Chap 5)

Transféré par

kingramses40
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)
23 vues11 pages

Initiation À L'algorithmique (Chap 5)

Transféré par

kingramses40
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

Initiation à l’Algorithmique

Ce cours est conçu pour les étudiants de Licence 1

Institut Africain d’Informatique (IAI)


Représentation du Cameroun
Centre de Douala

ZEH ZEH Ludovic


zludovic101@[Link]

Novembre 2024

Date de dernière mise à jour : 18/11/2024


CHAPITRE 5

LES SOUS-PROGRAMMES

Introduction
Dans l’écriture des algorithmes et des programmes informatiques, il arrive fréquemment
qu’une même suite d’instructions nécessite d’être exécutée plusieurs fois (à des endroits
différents dans le code) dans un même programme, surtout lorsque ce dernier est complexe.

La réutilisation d’un même bloc d’instructions dans un programme est monnaie courante, mais
pour ce faire, au lieu de recopier le même bout de code plusieurs fois, l’on fera plutôt appel aux
structures algorithmiques appelées sous-programmes.

Définition
Un sous-programme est entendu comme étant une suite d’instructions structurée réalisant une
tâche bien précise, inclue dans un algorithme (programme éventuellement) en vue d’éventuelles
réutilisations des résultats et/ou modification du code.

Lorsqu’on parle de sous-programmes, l’on en distingue 2 types : les procédures et les


fonctions.

Il faut noter que la déclaration d’un sous-programme se fait dans la partie déclarative de
l’algorithme principal.

2
Les fonctions
Une fonction est un sous-programme pouvant effectuer des calculs et dont le résultat obtenu
sous forme de valeur est mis à la disposition de l’utilisateur.

Elle possède des caractéristiques suivantes :

Elle est structurée. C’est-à-dire :


- Qu’elle contient un en-tête constitué du nom de la fonction, des paramètres formels
et des types ;
- Qu’elle contient une partie déclarative constituée des variables locales, des
constantes…
- Qu’elle contient un corps où sont portées les instructions.
Une fonction retourne toujours une valeur d’u certain type ;
Une fonction peut avoir besoin d’autres variables (appelées variables locales)
Le corps d’une fonction est borné par les termes « Début » et « fin »

Syntaxes de déclaration d’une fonction

Nous présenterons ici 2 syntaxes :

Syntaxe 1 :

Fonction NomFonction (arg1 : type, arg2 : type,…) : typeRésultats

Var liste des variables locales : type

Début

Instructions

nomFonction Valeur de retour


Fin

3
Syntaxe 2 :

Fonction NomFonction (arg1 : type, arg2 : type,…) : typeRésultats

Var liste des variables locales : type

Début

Instructions

Retourne Valeur de retour

Fin

Exemple : écire une fonction permettant de retourner le carré d’un entier.

Résolution
Utilisation de la première syntaxe :

1ère méthode (sans utilisation de variable locale)


Fonction Carré (r : entier) : entier
Début
Retourne r*r
Fin

2ème méthode (utilisation de la variable locale)


Fonction Carré (r : entier) : entier
Var c : entier
Début
c r*r
Retourne c
Fin

4
Utilisation de la seconde syntaxe :

1ère méthode (sans utilisation de variable locale)


Fonction Carré (r : entier) : entier
Début
Carré r*r
Fin

2ème méthode (utilisation de la variable locale)


Fonction Carré (r : entier) : entier
Var c : entier
Début
c r*r
Carré c
Fin

Remarque : Dans le cadre de ce cours, nous travaillerons davantage avec la première syntaxe.

Sachant que nous utiliserons uniquement la première syntaxe, il est important de oter les points
suibants :

- Une fonction contient toujours une instruction de la forme nomFonction Valeur


- Ne jamais utiliser d’instruction de la forme nomFonction (paramètres) Valeur
- En général, l’appel ou l’utilisation d’une fonction dans le corps de l’algorithme
principal se fait de 2 manières :
➢ Soit par affectation
➢ Soit par écriture

5
Appel d’une fonction dans l’algorithme
principal

Appel d’une fonction par affectation

Identificateur nomFonction (liste de sparamètres effectifs)

Exemple : Ecrire un algorithme qui, après avoir calculé et affiché le carré d’un nombre,
vous retourne la question « c’est tout ? »

Algorithme CarréNombre

Var A, x : entier

Fonction Carré (r : entier) : entier

Var c : entier

Début // Déclaration de la fonction

c r*r

Carré c

Fin

Début

Ecrire (" Veuillez entrer un nombre : ")

Lire (x)

A Carré (x) // Appel de la fonction

Ecrire (" Le carré de ", x, " est : ", A, ". C’est tout ? ")

Fin

6
Notes :

- Dans la déclaration de la fonction, r est un paramètre formel, car c’est lui qui doit
subir les traitement et transformations dans la fonction. Les paramètres formels dans
une fonction sont donc ceux qui portent le problème.
- La variable c est appelée « variable locale », car elle est déclarée et utilisée
uniquement à l’intérieur de la fonction (pas en dehors de la fonction). Les variables
locales en général, aident juste les paramètres formels à subir les transformations
prévues.
- La variable x est appelée « paramètre effectif » car c’est elle qui est utilisée lors
de l’appel de la fonction. NB : Nombre de paramètre formel = Nombre de
paramètres effectifs

Appel d’une fonction par éciture

Ecire (nomFonction (liste de sparamètres effectifs)

Reprenons l’exemple précédent :

Algorithme CarréNombre

Var x : entier

Fonction Carré (r : entier) : entier

Var c : entier

Début

c r*r

Carré c

Fin

Début

Ecrire (" Veuillez entrer un nombre : ") Appel de la fonction

Lire (x)

Ecrire (" Le carré de ", x, " est : ", Carré (x) , ". C’est tout ? ")

Fin 7
Les procédures
Une procédure est un sous-programme qui ne retourne aucune valeur. Elle possède les mêmes
caractéristiques qu’une fonction, à la seule différence que les résultats obtenus à la fin de
l‘exécution des instructions ne sont pas stockées dans une variable de sortie.

Syntaxe de déclaration d’une procédure

Syntaxe :

Procédure NomProcédure (arg1 : type, arg2 : type,…)

Var liste des variables locales : type

Début

Instructions

Fin

Exemple : Déclarer une procédure qui permet de calculer et afficher la puissance d’un
nombre.

Procédure Puissance ( n : enier)

Var puiss : enier

Début

Puiss n^2

Ecrire (" La puissance de ", n, " est : ", Puiss)

Fin

8
Appel d’une procédure dans l’algorithme
principal

Il existe une seule méthode pour appeler une procédure dans le programme principal :

NomProcédure (liste de sparamètres effectifs)

Exemple : reprenons l’exemple du carré d’un nombre vu dans a partir traitant des fonctions :

Algorithme PuissanceNombre

Var x : entier

Procédure Carré (r : entier)

Var c : entier

Début
// Déclaration de la procédure
c r*r

Ecrire (" Le carré de ", r, " est : ", c)

Fin

Début

Ecrire (" Veuillez entrer un nombre : ")

Lire (x)

Carre ( x ) // Appel de la fonction

Fin

Note : on peut faire l’appel d’une fonction à partir d’une procédure, mais l’inverse n’est pas
possible.

9
Notions de Variables locales, variables globales

et de paramètres

Une variable sera dit globale si et seulement si elle est déclarée dans la artie déclarative du
programme ou de l’algorithme principal. Dans ce cas, l’utilisation de cette variable pourra se
faire à n’importe quel point du programme ou de l’algorithme.

Une variable sera dite locale si et seulement si elle est déclarée dans la partie déclarative du
sus-programme (procédure ou fonction). Dans ce cas, son utilisation ne pourra se faire en dehors
du sous-programme qui la concerne.

Un paramètre est une variable utilisée dans un sous-programme et qui permet la


communication entre les le sous-programme et l’algorithme principal. On distingue ainsi :

- Les paramètres formels qui sont des variables d’entrée du sous-programme , car ce
sont elles qui renseignent les données au sous-programme
- Les paramètres de sortie ou effectifs, qui récupèrent les résultats des traitements lors
de l’appel du sous-programme
- Les paramètres d’entrée/sortie, qui fournissent les données à l’entrée du sous-
programme et récupèrent les résultats à la fin du sous-programme.

Remarque : lors de la définition d’un sous-programme, on utilise des paramètres formels ou


arguments. Tandisque lors de l’appe du sous-programme, l’on utilise les paramètres effectifs
ou réels ; ces derniers eux-mêmes ayant été déclarés comme variables globales.

Appels et transmission des paramètres d’un

sous-programme
Lors de l’appel d’un sous-programme, les valeurs des arguments sont transmises aux
paramètres réels ou effectifs en fonction de leur ordre.
10
Ainsi, la transmission des paramètres dépendra de leur utilisation.

Transmission par adresse ou par référence


Elle est utilisée pour les paramètres de sortie et d’entrée/sortie. Pour faire une telle transmission,
le paramètre formel doit être précédé du mot réservé Var . Dans la transmission par adresse,
les paramètres formels et effectifs partagent la même case mémoire. Par conséquent, toute
modification effectuée sur le paramètre formel se répercute dans les paramètres effectifs.

Transmission par adresse ou par valeur


Elle est utilisée pour les paramètres d’entrée, et ces paramètres sont précédés du mot-réservé
Val (ou rien).

Dans la transmission par valeur, les paramètres formels et effectifs sont dans des cases
mémoires différentes. Ainsi, toute modification apportée sur le paramètre formel ne se répercute
pas sur le paramètre effectif.

11

Vous aimerez peut-être aussi