« Mathc gnuplot/Fichiers pour gnuplot » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 191 :
=== Dessiner un fichier et une chaine de caractères ===
 
* On associe les deux méthodes vuevues précédementprécédemment.
 
 
Ligne 260 :
cos(x)
reset
 
 
=== Une fonction pour dessiner ===
 
* On met simplement le contenu de la fonction main() dans G_plot().
 
 
* Copier cet exemple dans votre éditeur.
* Sauvez-le sous le nom "c06.c"
* Compilez et exécutez-le.
* Éditer le fichier "a_main.plt"
* Dans gnuplot tapez : load "a_main.plt"
 
 
<source lang="c">
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
 
/* ------------------------------ */
double f(double x){return(cos(x));}
char feq[] = "cos(x)";
/* ------------------------------ */
 
/* ------------------------------ */
int G_plot(void)
{
FILE *fp;
char datafile[]="data";
double a;
 
 
if (!(fp = fopen(datafile,"w")))
return 0;
for(a = -5.0; a <= 5.0; a+=.2)
fprintf(fp," %6.3f %6.3f\n", a, f(a));
fclose(fp);
 
 
 
if (!(fp = fopen("a_main.plt","w")))
return 0;
fprintf(fp,"# Fichier de commande pour Gnuplot \n"\
"# En ligne de commande : load \"a_main.plt\"\n"\
"#\n\n"\
" set zeroaxis\n"\
" plot \"%s\",\\\n"\
" %s\n"\
" reset",datafile,feq);
fclose(fp);
 
return 0;
}
/* ------------------------------ */
 
/* ------------------------------ */
int main(void)
{
 
G_plot();
 
printf("\n\n load \"a_main.plt\" with gnuplot.\n");
 
printf("\n\n Press return to continue.\n");
getchar();
 
return 0;
}
</source>
 
 
 
Cela donne dans le fichier "a_main.plt" :
 
 
# Fichier de commande pour Gnuplot
# En ligne de commande : load "a_main.plt"
#
set zeroaxis
plot "data",\
cos(x)
reset
 
 
=== Les ennuis commencent ===
 
* À partir des fichiers précédents.
* Essayer de dessiner la fonction g, sans modifier G_plot() ?
 
 
<source lang="c">
/* ------------------------------ */
double g(double x){return(sin(x));}
char geq[] = "sin(x)";
/* ------------------------------ */
</source>
 
 
* La solution : Les pointeurs de fonctions.
* Le chapitre suivant.
 
 
== Conclusion ==
 
* Nous avons dessiné des fonctions sous forme de chaines de caractères et sous la forme de liste de points.
 
 
* Deux problèmes sont apparus.
** Rendre les fonctions graphiques indépendantes de la fonction utilisée.
** Simplifier le fichier c.
 
 
* Deux solutions vont être proposées
** Les pointeurs de fonctions.
** Déposer le code des fonctions dans des fichiers h.
 
<noinclude>