Académique Documents
Professionnel Documents
Culture Documents
Partie 5
FONCTIONS
Analyse
Données résultats
Formulation de l’Algorithme
int main()
{
… Appel de la fonction
/* 3) L'appel */
…
}
Définir la fonction
/* 2) La définition */
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS
1) Le Prototypage
La déclaration de prototype permet de définir au compilateur les
paramètres d'entrée et de sortie afin de pouvoir vérifier lors d'appel
de fonction l'ordre de passage des paramètres
Syntaxe :
Type Ident_fonc (type_1 arg1, …… , Type_k argk) ;
Exemple:
double puissance (double x, long N);
void racine_carre (double var);
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS
2) La Définition
Elle décrit l'enchaînement de toutes les instructions
permettant de réaliser la fonction.
Syntaxe : Pas de point
virgule
Type Ident_fonc (type_1 arg1, …… , Type_k argk)
{
//Déclaration des variables si besoin
instruction_1; Arguments
……………….
formels
instruction_n;
return(expression) ;
}
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS
3) L'Appel de la fonction
#include<stdio.h> Pendant l’appel les
#include<conio.h> Arguments passés
float puissance(float, long ); // prototype de la fonction puissance
void main()
sont appelés:
{ Arguments effectifs
float c=2.5; int l=4;
clrscr();
c = puissance(c,l); // premier appel et utilisation de puissance
printf("c : %5.2f\n", c);
c=puissance(c,l)*3.0f; // deuxième appel et utilisation de puissance Variables : c, l
printf("c : %f\n", c);
// troisième utilisation
printf("%4.2f puissance %3d = %4.2f\n",2.5,l,puissance(2.5,l)); Arguments : x, n
getch(); } Sont appelés
float puissance(float x, long n )
{ float y=1; int i=0; Arguments
for( ; i<n;i++) y= y*x; formels
return y;
}
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS
Deux Types de fonctions
1) Les fonctions qui retournent quelque chose possèdent un type.
Pour cela, il faut utiliser l'instruction return
Exemple :
/* Une fonction calculant le produit de deux entiers */
/* Paramètres d'entrée : deux entiers, Type retour : entier */
int calcule_produit (int a1, int a2)
{
int resultat;
resultat = a1 * a2;
return (resultat);
}
Exemple :
/* Procédure affichant le produit de deux entiers */
/* Paramètres d'entrée : deux entiers, Type retour : rien */
main()
{ int n = 5, *A;
A= (int*)malloc(n * sizeof(int));
init_tab(A, n);
return 0;
}
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS Tableaux à 2D passé en paramètres à une fonction
#include <stdio.h>
#include <stdlib.h> int som(int *t, int nL, int nC)
int som(int *t, int nL, int nC); { int i, j, se = 0;
void sasir(int *t, int nL, int nC); for(i=0; i< nL; i++)
void main() for (j=0; j < nC; j++)
{ int **A, NL, NC, S, i, j; se += *(t+i*nC+j);
printf("Nombre des lignes de A : "); return se;
scanf(" %d", &NL); }
printf("Nombre des colonnes de A : ");
scanf(" %d", &NC); void sasir(int *t, int nL, int nC)
A=(int**)malloc(NL*sizeof(int*)); { int i, j;
For(i=0;i<NL;i++) for(i=0; i< nL; i++)
A[i]=(int*)malloc(NC*sizeof(int)); for (j=0; j < nC; j++)
printf(« Saisir les valeurs de A : "); scanf("%d", t+i*nC+j);
sasir((int*)A,NL,NC); }
S=som((int*)A,NL,NC);
printf("Somme des elements de A : %d\n",S); }
Khalid SBAI – Cours D’Informatique
Ecole supérieure de Technologie
Département de Génie Electrique
11/09/2021
III. FONCTIONS
Exemple
Void g_sinus(double ampl, float freq, double bo_inf, double bo_sup, float dt, double*
valeurs,)
{ double PI=atan(1.0), ti;
int i, nb_point;
nb_point=(bor_sup-bor_inf)/dt;
for(i=0; i<nb_point;i++)
{ ti=bor_inf+i*dt;
valeurs[i] = ampl* sin(2*PI*freq*ti);
}
}
FIN