Sia - Sous Algo
Sia - Sous Algo
Sia - Sous Algo
1) Définir un sous-programme
2) Donnez l’intérêt d’un sous-programme
3) Quelle est la différence entre une procédure et une fonction
4) Quelle différence faites-vous entre une variable globale et une variable
locale
5) Quelle différence faites-vous entre un paramètre formel et un paramètre
effectif
6) Quelle est la différence entre un paramètre réel et un paramètre effectif
7) Quelle différence faites-vous entre un paramètre et un argument
8) Quelle différence faites-vous entre passage par valeur et passage par
référence
9) Quelle différence faites-vous entre passage par référence et passage par
adresse
10) Quelle différence faites-vous entre un algorithme appelant et un
algorithme appelé
11) Qu’est-ce qu’une fonction récursive
12) Donnez la syntaxe de déclaration et d’appel d’une procédure
13) Donnez la syntaxe de déclaration et d’appel d’une fonction
14) Donnez la syntaxe de déclaration du passage par valeur d’une
procédure et d’une fonction
15) Donnez la syntaxe de déclaration du passage par référence d’une
procédure et d’une fonction
16) Donnez la syntaxe du passage d’un tableau en paramètre à un sous-
programme
17) Donnez la syntaxe de la déclaration du programme de
l’enregistrement
APPLICATION
1
1) Ecrire un algorithme qui calcule la somme, le produit, le modulo,
différence et la moyenne de deux nombres saisir au clavier
Consignes : La différence et le modulo doit être traité par le sous-
algorithme procédure. La moyenne et la somme doivent être traitées
par le sous-algorithme fonction.
Réponses
1) Les sous-algorithmes sont des algorithmes à intérieurs ou à l’extérieur
d’un algorithme principal.
Un sous-algorithme est une unité fonctionnelle formé d’un bloc
d’instruction et éventuellement paramétré, que l’on déclare afin de
pouvoir l’appelé par son nom en affectant des valeurs à ses paramètres. Il
peut être une fonction ou une procédure.
2) Intérêt :
- Repartir les difficultés entre les différents sous-problèmes
- Faciliter la résolution d’un problème complexe
- Améliorer la qualité d’écriture d’un programme principal
- Minimiser l’écriture du code source dans la mesure où on utilise la
technique de la réutilisation
- Les sous-programmes facilitent la maintenance de l’algorithme
2
programme ou sous-programme dans lequel elle est définit. Elle ne
peut être ni vus ni utilisé par un autre sous-programme.
Une variable globale est une variable déclaré à l’extérieur d’un sous-
programme (procédure, fonction). Elle a une portée qui s’étend sur la
structure générale du programme elle est reconnue par tout le programme
5) Un paramètre formel est une variable déclarée et utilisé pour la
déclaration d’un sous-algorithme, alors qu’un paramètre effectif est un
paramètre utilisé lors de l’appel d’un sous-algorithme.
6) Un paramètre réel est pareil à un paramètre effectif.
7) un paramètre est aussi un argument.
8) Le passage par valeur se différencie d’un passage par adresse valeur en
mettant le mot clé var avant le paramètre.
9) Le passage par adresse est pareil au passage par référence.
10) L’algorithme appelé est le sous-algorithme et l’algorithme appelant
est l’algorithme principal.
11) Une fonction récursive est une fonction qui s’appelle elle-même
12)
Syntaxe de déclaration et appelle d’une procédure
PROCEDURE NomProcedure (Paramètre formel)
NomProcedure (Paramètre effectif)
13)
Syntaxe de déclaration et appelle d’une fonction (rest :=nom fonction)
FONCTION NomFonction (Paramètre formel)
NomFonction (Paramètre effectif)
14)
Syntaxe de passage par valeur
FONCTION NomFonction (Paramètres formels)
PROCEDURE NomProcedure (paramètres formels)
3
15)
Syntaxe du passage par référence
FONCTION NomFonction (Var Paramètres formels)
PROCEDURE NomProcedure (Var Paramètres formels)
16)
Tableau sous VAR
POCEDURE NomProcedure (Var NomTableau : TABLEAU [taille]
DE TYPE_DE_DONNEES)
FONCTION NomFonction (Var NomTableau : TABLEAU [taille] DE
TYPE_DE_DONNEES)
Tableau sous TYPE
POCEDURE NomProcedure (Var NomTableau :
TABLEAU_SOUS_TYPE)
FONCTION NomFonction (Var NomTableau :
TABLEAU_SOUS_TYPE)
Cas1
Ecrire un algorithme qui calcule la somme de deux nombres entiers en
utilisant une fonction.
ALGORITHME Calculsomme
VAR
Som, nbr1, nbr2 : ENTIER
FONCTION SOMME (n1, n2 : Entier) : ENTIER
Var
S : Entier
Début
4
ECRIRE (‘’ Entrez les deux nombres’’)
LIRE (n1, n2)
Sn1+n2
SOMMES
FinFonction
DEBUT
SomSOMME (nbr1, nbr2)
ECRIRE (‘’La Somme est ‘’, Som)
FIN
Cas 2
Ecrire un algorithme qui calcule le cube d’un nombre en utilisant un
sous-programme (avec une procédure et une fonction)
ALGORITHME CalculeCub
VAR
Nbre : ENTIER
PROCEDURE CUBE (n : Entier)
Var
Cb : Entier
Début
Cb n*n*n
ECRIRE (‘’ Le cube est : ‘’, Cb)
FinProcedure
DEBUT
ECRIRE (‘’Entrez un nombre’’)
LIRE (Nbre)
CUBE (Nbre)
FIN
5
ALGORIHME CalculeCub
VAR
Nbre, Res : ENTIER
FONTION CUBE n : Entier : ENTIER
Var
Cb : Entier
Début
Cb n*n*n
CUBE Cb
FinFonction
DEBUT
ECRIRE (‘’Entrez un nombre ‘’)
Lire (Nbre)
Res CUBE (Nbre)
ECRIRE (‘’ Le cube est : ‘’, Res)
FIN
a) Autres méthodes
ALGORIHME CalculeCub
VAR
Nbre, Res : ENTIER
FONTION CUBE n : Entier : ENTIER
Var
Cb : Entier
Début
Cb n*n*n
CUBE Cb
6
FinFonction
DEBUT
ECRIRE (‘’Entrez un nombre ‘’)
Lire (Nbre)
Res CUBE (Nbre)
ECRIRE (‘’ Le cube est : ‘’, Res)
FIN
b) Sans arguments
ALGORIHME CalculeCub
VAR
Nbre, Res : ENTIER
FONTION CUBE ( ) : ENTIER
Var
Cb : Entier
Début
Cb Nbre*Nbre*Nbre
CUBE Cb
FinFonction
DEBUT
ECRIRE (‘’Entrez un nombre ‘’)
Lire (Nbre)
Res CUBE ( )
ECRIRE (‘’ Le cube est : ‘’, Res)
FIN
7
Cas 3 Fonction Récursive
ALGORITHME CalculFactorielle
VAR
Nbre, Fact : ENTIER
FONCTION FACTORIELLE n : Entier : ENTIER
Var
R : Entier
Début
Si (n = 0) ou (n = 1) Alors
FACTORIELLE 1
Sinon
FACTORIELLE n*FACTORIELLE (n-1)
Finsi
8
de les trier par ordre croissant et les éditer en utilisant un sous-
programme pour la création, tri, et l’édition.
ALGORITHME TermeInformatique
VAR
T : TABLEAU [1..50] DE CHAINE
i, j : ENTIER
PROCEDURE CreationTableau (Tab : TABLEAU [1..50] DE
CHAINE)
Début
POUR i 1 à 50 FAIRE
Ecrire (‘’Saisir terme n°’’, i)
Lire (Tab[i])
FinPour
FinFonction
PROCEDRURE TriTableau (Tab : TABLEAU [1..50] DE
CHAINE)
Var
Temp : Chaine
Début
POUR i 1 à 49 FAIRE
POUR j i+1 à 50 FAIRE
Si Tab[j] < Tab[i]
Temp Tab[i]
Tab[i] Tab[j]
Tab[j] Temp
Finsi
FinPour
FinPour
9
FinProcedure
DEBUT
CreationTableau (T)
TriTableau (T)
AfficheTableau (T)
FIN
10
PROCEDRURE TriTableau (V : Tab)
Var
Temp : Chaine
Début
POUR i 1 à 49 FAIRE
POUR j i+1 à 50 FAIRE
Si V[j] < V[i]
Temp V[i]
V[i] V[j]
V[j] Temp
Finsi
FinPour
FinPour
FinProcedure
DEBUT
CreationTableau (T)
TriTableau (T)
AfficheTableau (T)
FIN
11