aide exo en c
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

aide exo en c



  1. #1
    Leond95

    aide exo en c


    ------

    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
    Code:
    //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);
    bibliotheque.c
    Code:
    #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;
    }*/
    main.c
    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(&notes,&x,&y);
    f(xi);
    
    
    
    
    
    /*float x[1000], y[1000];
    
    ecreture (x, y);*/
    return 0;
    }
    Cordialement.

    Ps : le programme marche bien avec la fonction ecreture seulement

    -----
    Images attachées Images attachées  

  2. #2
    PA5CAL

    Re : aide exo en c

    Bonjour

    Chez moi le programme ne compile pas.

    Dans la fonction sauvegarde_fichier() :
    - la variable fichier devrait être de type FILE*,
    - la variable n (qui fixe le nombre d'éléments lus dans les tableaux) n'est pas initialisée.

    Dans la fonction calcul_fonction() :
    - le pointeur echantillon n'est pas initialisé,
    - le calcul de ech_x[0] fait appel à ech_x[-1].

    Il y a peut-être encore d'autres erreurs.
    Dernière modification par PA5CAL ; 07/10/2018 à 12h38.

  3. #3
    Fustigator

    Re : aide exo en c

    Même si ça compilait, le fichier serait vide :
    Code:
    int i=0,n,
        fichier=fopen("notes.dat","w");
        
    
    
        if (fichier != NULL)
        {
            
       for(i=0;i<n;i++)

  4. #4
    jacknicklaus

    Re : aide exo en c

    ton écriture est une catastrophe.
    comment veux-tu relire un programme dont les lignes sont indentées aussi bord.....ment ?

    Il faut très tôt s'appliquer des exigences de rigueur pour rendre les programmes lisibles, surtout dans des langages à forte permissivité comme le C.
    There are more things in heaven and earth, Horatio, Than are dreamt of in your philosophy.

  5. A voir en vidéo sur Futura
  6. #5
    PHIGE

    Thumbs down Re : aide exo en c

    Bonjour,

    Il faut reconnaître que la qualité de l'indentation ne le cède en rien à la qualité du code.

    Est-ce que quelqu'un sait à quoi sert le premier printf et le scanf dans la fonction f() ? Par ailleurs, le printf résultat ne précise pas la valeur de l'argument x.

    Code:
    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;
    }
    La forme comme le fond laisse penser à un patchwork pioché à droite à gauche sans apport structurant.

    Je trouve beaucoup d'abnégation aux personnes qui essayent d'améliorer un "travail" ni fait ni à faire.

    Corriger des erreurs ne devrait pas devenir une erreur de corriger (je suis un peu agacé même si cela ne se voit pas )

  7. #6
    Fustigator

    Re : aide exo en c

    Citation Envoyé par PHIGE Voir le message
    Bonjour,

    Il faut reconnaître que la qualité de l'indentation ne le cède en rien à la qualité du code.
    Si il vise l'IOCCC, il faut bien commencer quelque part.

  8. #7
    PHIGE

    Re : aide exo en c

    Bonjour,
    C'est dur pour l'IOCCC. Ce sont des œuvres d'art.

Discussions similaires

  1. aide branchement ventilo pc sur secteur avec transfo (photo pour aide)
    Par pedro67xl dans le forum Bricolage et décoration
    Réponses: 3
    Dernier message: 22/02/2015, 21h56
  2. aide svp quel antivirus choisir svp, merci infiniment de votre aide
    Par angesoleil dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 11/11/2012, 20h35
  3. [Aide SVT]1ere S aide L'ouverture de l'océan Atlantique Nord
    Par invite6f6226b6 dans le forum Géologie et Catastrophes naturelles
    Réponses: 7
    Dernier message: 30/04/2010, 21h26