« Introduction générale à la programmation/Pointeurs » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 114 :
fin de fonction
//.
dessine_f(g)
dessine_f(h)
Ligne 130 ⟶ 125 :
}}
== Exemple de code pour d'utilisation de pointeurs de fonctions ==
* Testé sous Code Block (Windows,Linux). * Passer deux pointeurs de fonctions à une fonction.
Ligne 210 ⟶ 208 :
Press return to continue.
=== Exemple graphique (avec Gnuplot) ===
* Testé sous Code Block (Windows,Linux).
* Passer un pointeurs de fonctions à une fonction.
* La fonction Gplt() dessine f(x) et g(x)...
* On peut remarquer que les pointeurs de fonctions ont les mêmes types arguments que les fonctions qu'ils vont recevoir.
<source lang="c">
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
/* --- Dessinons f et g --------- */
double f(double x){return( pow(x,2.));}
double g(double x){return(2.0*x + 3.0);}
/* ------------------------------ */
/* Le fichier de points: [a,f(a)] */
void Gplt(
double (*P_f)(double x)
)
{
FILE *fp;
double a;
fp = fopen("data","w");
for(a = -5.0; a <= 5.0; a += 0.3)
fprintf(fp," %6.3f %6.3f\n",
a, ((*P_f)(a)) );
fclose(fp);
}
/* ------------------------------ */
int main(void)
{
printf("f) Dans gnuplot -> plot \"data\" ");
Gplt(f);
getchar();
printf("g) Dans gnuplot -> plot \"data\" ");
Gplt(g);
printf("\n\n Press return to continue.\n");
getchar();
return 0;
}
</source>
Pour approfondir ce travail : [[Mathc_Home_Edition_t01/Gnuplot]]
|