« 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
//.
//APPEL DE LA FONCTION dessine_f en modifiant le pointeur :
//LE POINTEUR f POINTE SUR g
[Copie de pointeur inutile dessine_f = g ]
dessine_f(g)
//LE POINTEUR f POINTE SUR h
[Copie de pointeur inutile dessine_f = h ]
dessine_f(h)
 
Ligne 130 ⟶ 125 :
}}
 
== Exemple de code pour d'utilisation de pointeurs de fonctions ==
 
*=== Exemple, testénumérique ===

* 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]]