« Introduction générale à la programmation/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Correction syntaxique de type M
Aucun résumé des modifications
Ligne 127 :
 
}}
 
* Exemple, testé sous Code Block (Windows,Linux).
 
<source lang="c">
 
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
 
 
/* ------ Fonction f ------------ */
double f(
double x)
{
return( pow(x,2.));
}
/* ------------------------------ */
char feq[] = "x**2";
/* ------------------------------ */
 
/* ------ Fonction g ------------ */
double g(
double x)
{
return( 2.0*x + 3.0);
}
/* ------------------------------ */
char geq[] = "2.0*x + 3.0";
/* ------------------------------ */
 
 
/* -Fonction fog (f suivie de g)-*/
double f1_o_f2(
double (*P_f1)(double x),/* Pointeur pour la première fonction */
double (*P_f2)(double x),/* Pointeur pour la deuxième fonction */
double a
)
{
return((*P_f1)( ((*P_f2)(a))) );
}
/* ------------------------------ */
 
 
/* ------------------------------ */
int main(void)
{
double a;
double t;
 
printf(" f : x-> %s\n", feq);
printf(" g : x-> %s\n", geq);
printf(" \n\n");
 
a = 2.;
 
printf(" g(%.0f) = %6.3f,\n ", a, g (a));
printf(" \n\n");
 
t = f1_o_f2(f,/* Le nom de la fonction */
g,/* est un pointeur (f,g) */
a
);
 
 
printf(" f(g(%.0f)) = %6.3f\n", a, t);
 
printf("\n\n Press return to continue.\n");
getchar();
 
return 0;
}
 
</source>
 
 
 
Résultat ;
 
f : x-> x**2
g : x-> 2.0*x + 3.0
 
g(2) = 7.000
 
f(g(2)) = 49.000
 
Press return to continue.
 
 
 
{{Bas de page