Sia - Sous Algo

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 11

QUESTIONS

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

3) Une procédure est un sous-programme ayant un nombre de paramètre,


contenant un certain nombre d’instruction et admettant ou plusieurs
résultats, tandis qu’une fonction est un sous-programme ayant un nombre
de paramètre, contenant un certain nombre d’instruction admettant au
maximum un (1) résultat unique affecté à son nom.
4)
 Une variable locale est une variable déclaré obligatoirement à
l’intérieur (dans la partie déclarative d’un sous-programme) d’un sous-
programme (procédure, fonction). Elle a une portée limitée au

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)

NB : ici on a déclaré un tableau en paramètre formel ayant, la même


taille, le même type, mais de nom différent.

 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)
Sn1+n2
SOMMES
FinFonction
DEBUT
SomSOMME (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

 Cas 4 Tableaux en paramètres

a) Tableaux sous VAR

Ecrire un algorithme qui permet de créer un tableau de 50 cases


dans lequel on nous demande de stocker 50 termes informatique et

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

PROCEDURE AfficheTableau (Tab : TABLEAU [1..50] DE


CHAINE)
Début
POUR i  1 à 50
Ecrire (Tab[i])
FinPour

DEBUT
CreationTableau (T)
TriTableau (T)
AfficheTableau (T)
FIN

b) Tableaux sous TYPE


ALGORITHME TermeInformatique
TPYE
Tab = TABLEAU [1..50] DE CHAINE
VAR
T : Tab
i, j : ENTIER
PROCEDURE CreationTableau (V : Tab)
Début
POUR i  1 à 50 FAIRE
Ecrire (‘’Saisir terme n°’’, i)
Lire (V[i])
FinPour
FinFonction

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

PROCEDURE AfficheTableau (V : Tab)


Début
POUR i  1 à 50
Ecrire (V[i])
FinPour

DEBUT
CreationTableau (T)
TriTableau (T)
AfficheTableau (T)
FIN

11

Vous aimerez peut-être aussi