Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

exo en c



  1. #1
    Leond95

    exo en c


    ------

    Bonjour a tous,

    j'ai un exo en c que vous trouverez son énoncé dans un image et le programme que j'ai écrit mais quand je compile le programme il me demande chaque fois de saisir les valeurs.



    Code:
    #include<stdio.h>
    #include<stdlib.h>
    typedef float tab[100];
    float calculx(tab x);
    float calculy(tab y);
    void afficher(tab x, tab y);
    int main(void)
    {
    
    tab x,y;
    calculx(x);
    calculy(y);
    afficher(x,y);
    
    
    
    return 0;
    }
    float calculx(tab x){
    int i,n=100;
    float h,xmin=0.0;
    
    printf("entrez la valeur du pas\n");
    scanf("%f",&h);
    
    for(i=0;i<=n;i++){
    x[i]=xmin+i*h;
    return x[i];
    }
    float calculy(tab y){
    int i,a,b,c,n=100;
    float t;
    tab x;
    printf("entrez la valeur de a\n");
    scanf("%d",&a);
    
    printf("entrez la valeur de b \n");
    scanf("%d",&b);
    
    printf("entrez la valeur de c\n");
    scanf("%d",&c);
    
    t=calculx(x);
    for(i=0;i<=n;i++){
    y[i]=a*t*t+b*t+c;}
    
    return y[i];
    }
    
    void afficher(tab x, tab y){
    int i,n=100;
    float t, m;
    t=calculx(x);
    m=calculy(y);
    for(i=0;i<=n;i++){
    printf("%d \t %f \t %f\n",i,t,m);
    }
    
    }

    -----
    Images attachées Images attachées  
    Dernière modification par JPL ; 09/09/2018 à 20h39. Motif: Ajout de la balise Code (#)

  2. Publicité
  3. #2
    Jack
    Modérateur

    Re : exo en c

    Ca manque de précision et de clarté:
    - Quel exercice? 2.1, 2.2, 2.3?
    - Indente ton code car il présenté tel quel
    - Mets des commentaires ou choisis des noms explicites: calculx ou calculy ne renseignent pas le but de la fonction(que représentet x ou y?)
    - Je ne vois pas comment on peut te demander de saisir des valeurs à la compilation. Tu veux plutôt dire à l'exécuton?

  4. #3
    Leond95

    Re : exo en c

    Bonjour,

    C'est l'exo 2-2, la fonction calculx(tab x) pour calculer les point x la fonction calculy(tab y) pour calculer les points y et la fonction affiche(tab x,tab y) pour afficher les valeurs de x et y

  5. #4
    Jack
    Modérateur

    Re : exo en c

    J'ai copié ton code et l'ai placé dans un indenteur automatique:
    Code:
    #include <stdio.h>#include <stdlib.h>
    typedef float tab[100];
    float calculx(tab x);
    float calculy(tab y);
    void afficher(tab x, tab y);
    int main(void)
    {
    
    
        tab x, y;
        calculx(x);
        calculy(y);
        afficher(x, y);
    
    
        return 0;
    }
    float calculx(tab x)
    {
        int i, n = 100;
        float h, xmin = 0.0;
    
    
        printf("entrez la valeur du pas\n");
        scanf("%f", &h);
    
    
        for (i = 0; i <= n; i++) {
            x[i] = xmin + i * h;
            return x[i];
        }
        float calculy(tab y)
        {
            int i, a, b, c, n = 100;
            float t;
            tab x;
            printf("entrez la valeur de a\n");
            scanf("%d", &a);
    
    
            printf("entrez la valeur de b \n");
            scanf("%d", &b);
    
    
            printf("entrez la valeur de c\n");
            scanf("%d", &c);
    
    
            t = calculx(x);
            for (i = 0; i <= n; i++) {
                y[i] = a * t * t + b * t + c;
            }
    
    
            return y[i];
        }
    
    
        void afficher(tab x, tab y)
        {
            int i, n = 100;
            float t, m;
            t = calculx(x);
            m = calculy(y);
            for (i = 0; i <= n; i++) {
                printf("%d \t %f \t %f\n", i, t, m);
            }
        }
    On voit immédiatement que les parenthèses ne sont pas équilibrées.
    D'où l'intérêt de respecter quelques règles élémentaires lors de la rédaction de son code.

  6. A voir en vidéo sur Futura
  7. #5
    Jack
    Modérateur

    Re : exo en c

    Extrait de ton code:
    Code:
    for(i=0;i<=n;i++){
    x[i]=xmin+i*h;
    return x[i];
    }
    On voit que le return est dans la boucle. la fonction se termine donc à la première itération: encore un problème de parenthèse ...

  8. #6
    Leond95

    Re : exo en c

    Bonjour,

    J'ai corrigé les erreurs des parenthèses et j'ai fait sorti le return de la boucle mais quand j'execute le code il me demandede saisir les valeurs de h,a,b et c tout le temps

  9. Publicité
  10. #7
    Jack
    Modérateur

    Re : exo en c

    Tu peux reposter ton code actuel (et indenté correctement)?

  11. #8
    Leond95

    Re : exo en c

    Code:
    #include<stdio.h>
    #include<stdlib.h>
    typedef float tab[100];
    float calculx(tab x);
    float calculy(tab y);
    void afficher(tab x, tab y);
    int main(void)
    {
    
    tab x,y;
    calculx(x);
    calculy(y);
    afficher(x,y);
    
    
    
    return 0;
    }
    float calculx(tab x){
    int i,n=100;
    float h,xmin=0.0;
    
    printf("entrez la valeur du pas\n");
    scanf("%f",&h);
    
    for(i=0;i<=n;i++){
    x[i]=xmin+i*h;
    
    }
    return x[i];
    }
    float calculy(tab y){
    int i,a,b,c,n=100;
    float t;
    tab x;
    printf("entrez la valeur de a\n");
    scanf("%d",&a);
    
    printf("entrez la valeur de b \n");
    scanf("%d",&b);
    
    printf("entrez la valeur de c\n");
    scanf("%d",&c);
    
    t=calculx(x);
    for(i=0;i<=n;i++){
    y[i]=a*t*t+b*t+c;
    }
    
    return y[i];
    }
    
    void afficher(tab x, tab y){
    int i,n=100;
    float t, m;
    Dernière modification par JPL ; 10/09/2018 à 15h17.

  12. #9
    JPL
    Responsable des forums

    Re : exo en c

    J’ai rajouté la balise Code, encore absente, mais ce n’est toujours pas indenté. Tu ne fais pas attention au motif de la modification que j’ai faite pour le premier message et tu ne tiens aucun compte de ce que demande Jack. Sans effort de ta part tu n’auras aucune aide.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  13. #10
    pm42

    Re : exo en c

    On peut ajouter que dans le code reposté, il manque les dernières lignes.

    Sinon, le code demande les choses 2 fois simplement parce que les méthodes calculx et calculy sont appelées 2 fois : dans le main et dans afficher.

    D'une façon générale, ce genre de problème se règle en utilisant un débugger ce qui est sans doute l'une des 1ères choses à apprendre pour quelqu'un qui veut coder aujourd'hui.

  14. #11
    Fustigator

    Re : exo en c

    Citation Envoyé par Leond95 Voir le message
    quand j'execute le code il me demandede saisir les valeurs de h,a,b et c tout le temps
    Ce qui est plutôt une bonne chose, puisque c'est ce qui est codé.