➢Procédures :
Dans un algorithme on appelle une procédure de
cette manière (on rappelle qu'il n'y a aucun
retour) :
Début
lire("%entier",leNb)
AfficherTable(leNb)
ou
AfficherTable(4)
Fin
En C :
Dans un langage de programmation : un sous-algorithme correspond à un sous-programme, une
fonction quand à elle à une fonction et une procédure à une procédure.
➢Déclaration d'une fonction :
type_de_retour nom_de_la_fonction(type_param_1 nom_param_1, …);
exemple : int fonc(int unX, float unY); → Ceci permet un compilation séparée.
En règle générale, on place les prototypes en début de fichier source et les définitions en fin. Ou
même dans un autre fichier source lorsqu'on travail sur un projet suffisamment important.
→ C'est la qu'intervient un troisième fichier ''.h'' qui est déclaré au début des programmes de cette
manière #include "nom_du_point_h.h"
Dans ce dernier on trouve le nom de toutes fonctions et procédures utilisées (il sert en fait de
''lieur'') sous la forme :
type_de_retour nom_de_la_fonction(type_param_1 nom_param_1, …);
void nom_procédure(type_param_1 nom_param_1, ... );
➢Appel d'une fonction :
L'appel d'une fonction en C se fait comme en pseudo-langage dans l'algorithme principal mais en
suivant les règles C (point virgule en fin commande, int pour entier, etc...)
L'instruction ''return'' permet de définir la valeur retournée au programme appelant et met fin à la fonction.
Pour une fonction avec un paramètre de type ''table'' on adopte la syntaxe suivante :
Programme principal : Sous-programme :
int main()
{
int leTab[4]={1,2,3,4};
printf("%d\n",sommeTab(leTab,4));
return 0;
}
int sommeTab(int unTab[ ], int unN)
{
int laS=0;
for(int i=0;i<unN;i++)
laS+=unTab[i];
return laS;
}
Pour une matrice on a :
Programme principal : Sous-programme :
laSommeV=sommeV(laMat,leNbLig,leNbCol); float sommeV(float uneMat[ ][10],int unNbLig,int unNbCol);
➢Procédure simple :
On parle de procédure simple lorsqu'on a pas de paramètre résultat et pas de paramètre donnée-résultat.
• Calculer et afficher la surface d'un rectangle :
void affiche_Surface(float uneLarg, float uneLong);
• Procédure sans paramètre :
void proc() ;
• Procédure avec type tableau :
int main() {
int leTab[4]={1,2,3,4};
afficheTablo(leTab,4);
return 0; }
void afficheTablo(int unTab[], int unN)
{
for(int i=0;i<unN;i++)
printf("%d\t",unTab[i]); }
• Procédure avec type matrice :
Programme principal :
afficher(laMat,4,7);
Sous-programme :
void afficher(float uneMat[20][10],int unNbLig,int unNbCol);