« Mathc gnuplot/Pointeurs de fonctions » : différence entre les versions

Contenu supprimé Contenu ajouté
Automatique : Ajout de la navigation entre les chapitres
Reformattage : moins de liste, déplacement d'explication de code en commentaire dans le code
Ligne 8 :
== Préambule ==
 
* En langage C, le nom d'une fonction est un pointeur.
* On peut l'utiliser comme '''argument''' dans l'appel d'une fonction.
* Exemple : <tt>G_plot(f);</tt> (<tt>f()</tt> étant une fonction)
 
* LeUn pointeur de fonction doit avoir lale même formeprototype que sala fonction pointée.
* En langage C, le nom d'une fonction est un pointeur.
* On peut l'utiliser comme '''argument''' dans l'appel d'une fonction.
* Exemple : G_plot(f); (f() étant une fonction)
 
 
* Le pointeur de fonction doit avoir la même forme que sa fonction.
 
 
* Pour la fonction f :
Ligne 22 ⟶ 19 :
double (*P_f)(double x)
</source>
 
 
* Pour la fonction g :
Ligne 31 ⟶ 27 :
 
 
* Pour appeler la fonction, nous utiliserons cette méthode :
 
 
* Pour la fonction f :
<source lang="c">
* ((*P_gP_f)(a,b)) Corresponds/* corresponds à un appel de fonction de forme gf(a,b). */
((*P_f)(a))
</source>
 
 
* Pour la fonction g :
<source lang="c">
((*P_g)(a,b)) /* corresponds à un appel de fonction de forme g(a,b). */
((*P_g)(a,b))
</source>
 
* Important :
** f et g sont des pointeurs.
** f() et g() sont des fonctions.
 
* (<tt>double (*P_f)(a)double x)</tt> Correspondsc'est àune un appeldéclaration de fonctionpointeur de forme f(a)fonction.
** <tt>P_f</tt> c'est le pointeur.
* ((*P_g)(a,b)) Corresponds à un appel de fonction de forme g(a,b).
** <tt>((*P_f)())</tt> c'est un appel à une fonction.
 
 
* Important :
** f et g sont des pointeurs.
** f() et g() sont des fonctions.
 
 
** double (*P_f)(double x) c'est une déclaration de pointeur de fonction.
** P_f c'est le pointeur.
** ((*P_f)()) c'est un appel à une fonction.
 
 
== Exemples graphiques (avec Gnuplot) ==
 
* Passer un pointeur de fonctions à une fonction.
 
 
=== Dessiner deux fonctions successivement ===
* La fonction Gplt() dessine f(x) et g(x)...
 
 
<source lang="c">
Ligne 110 ⟶ 95 :
 
=== Solution pour le chapitre précédent ===
* La fonction G_plot() dessine la fonction (data) et la chaîne de caractères...
 
* La fonction G_plot() dessine la fonction (data) et la chaîne de caractères...
 
<source lang="c">
Ligne 163 ⟶ 147 :
return 0;
}
 
</source>
 
 
Résultat après le premier appel de G_plot():
Ligne 184 ⟶ 166 :
== Exemple numérique ==
 
* Passer des pointeurs de fonctions à une fonction.
 
 
=== Les fonctions f‘ et f‘‘ ===
 
* Calculer la dérivée première et seconde d'une fonction.
 
 
<source lang="c">
Ligne 260 ⟶ 241 :
 
 
Résultat ;:
 
f(2.000) = 4.000
Ligne 275 ⟶ 256 :
=== La fonction FoG ===
 
* Ici on passe les deux fonctions f et g à la fonction FoG().
* La même fonction peut calculer gof, fog et fof...
 
* La même fonction peut calculer gof, fog et fof...
 
<source lang="c">
Ligne 322 ⟶ 303 :
</source>
 
Résultat ;:
 
 
Résultat ;
 
f : x-> x**2