Mathc initiation/0012
Apparence
Nous avons des fonctions de mêmes formats.
Nous voulons les associer pour pouvoir les manipuler dans des boucles.
Nous allons créer un tableau de pointeurs de fonctions.
Le tableau de pointeurs de fonctions doit être déclaré avec un prototype de la même forme que celui des fonctions.
Nous allons utiliser les fonctions trigonométriques du C.
'Déclaration du tableau'
double (*TrigF[6])(double x) = {cos,sin,tan,atan,asin,acos};
- Toutes les fonctions ont la même forme :
double fonction(double)
. - Le tableau à la même forme que les fonctions :
double tableau(double)
. - Il y a six fonctions : cos, sin, tan, atan, asin, acos.
'Exemple d'un appel'
cos(.5) == TrigF[0](.5)
'Exemple à tester'
![]() |
c00a.c |
---|
/* ------------------------------ */
/* Save as c00a.c */
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
int main(void)
{
double (*TrigF[6])(double x) = {cos,sin,tan,atan,asin,acos};
double x= .5;
int i= 0;
printf(" I declared an array of function pointers.\n"
" I used the predefined functions of c. \n\n");
printf(" cos(%.1f) = %.3f \n", x, cos(x));
printf(" TrigF[%d](%.1f) = %.3f\n\n",i,x,TrigF[i](x));
printf(" Press return to continue");
getchar();
return 0;
}
/* ------------------------------ */
/* ------------------------------ */
Exemple de sortie écran :
I declared an array of function pointers.
I used the predefined functions of c.
cos(0.5) = 0.878
TrigF[0](0.5) = 0.878
Press return to continue