Bonjour a tous,
veuillez trouvez ci joint un exo en c, j'arrive a le compiler mais lors de l'execution il ne crée pas le fichier notes.dat
bibliotehque.h
bibliotheque.cCode://int ecreture (float x[], float y[]); double f(double xi); void echantillon_regulier(double min, double max, int n, double *echantillon); void calcul_fonction(int n, double *ech_x,double *ech_f); void sauvegarde_fichier(char *notes, double *x, double *y);
main.cCode:#include<stdio.h> #include<stdlib.h> #include"bibliotheque.h" /*evaluation de f en x*/ double f(double xi) { double t=1/(1+25*xi*xi); printf("entrez x"); scanf("%lf\n",&xi); printf("la valeur de f en x est %lf",t); return t; } /*echantillonage de x*/ void echantillon_regulier(double min, double max, int n, double *echantillon){ *echantillon=((max-min)/(n-1)); } /* evaluation de f sur un echantillon */ void calcul_fonction(int n, double *ech_x,double *ech_f){ int i; double *echantillon; for(i=0;i<n;i++){ ech_x[i]=ech_x[i-1]+(*echantillon); ech_f[i]=1/(1+25*ech_x[i]*ech_x[i]); } } /* sauvegarde dans un fichier un tableau*/ void sauvegarde_fichier(char *notes, double *x, double *y){ int i=0,n, fichier=fopen("notes.dat","w"); if (fichier != NULL) { for(i=0;i<n;i++) fprintf(fichier,"%f %f\n",x[i],y[i]); fclose(fichier); } } /*int ecreture (float x[], float y[]) { FILE* fichier; int i=0,n=1000; float h=2/n; x[0]=-1,y[0]=0.0; fichier=fopen("note.dat","w"); if (fichier != NULL) { for(i=0;i<n;i++){ x[i]=x[0]+i*h; y[i]=1/(1+25*x[i]*x[i]); fprintf(fichier,"%f %f\n",x[i],y[i]); } fclose(fichier); // On ferme le fichier qui a été ouvert } return n; }*/
Cordialement.Code:#include<stdio.h> #include<stdlib.h> #include"bibliotheque.h" int main(void) { double max=1, min=-1, echantillon,ech_x,ech_f,x,y,xi; int n=1000; char notes; calcul_fonction(n,&ech_x,&ech_f); sauvegarde_fichier(¬es,&x,&y); f(xi); /*float x[1000], y[1000]; ecreture (x, y);*/ return 0; }
Ps : le programme marche bien avec la fonction ecreture seulement
-----