IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

besoin d'une petite correction..


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 3
    Points
    3
    Par défaut besoin d'une petite correction..
    bonjour, ça fait 2-3 jours que je vous solicite afin de monter un petit programme pour trouver le minimum d'une fonction, ça prend forme, le programme est réalisé mais j'ai 2 erreurs de compilation que je n'arrive pas à résoudre...
    voici le dit programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    #include <stdio.h>
    #include<math.h>
     
     
     
    int main(void)
    {
     
    /* déclaration du type de variables*/
    int N;
    double a,b,p ;
     
    /*saisie des données : bornes et nombre de divisions sur l'intervalle [a,b]*/
     
    printf("Intervalle a etudier : \n");
    printf("saisir la borne gauche : ");
    scanf("%f", &a);
    printf("saisir la borne droite : ");
    scanf("%f", &b);
    printf("saisir le nombre de divisions sur l'intervalle [a,b] : ");
    scanf("%f", &N);
     
     
     
     
     
     
     
    /* affectation de la fonction*/
    double f( double x)
    {
    return exp(x)-2*x;
    }
     
    /* mise en place de la fonction min() avec ses arguments*/
    double min(double f(), double a, double b, int N )
    {
    /* calcul de h : élément à ajouter à l'abcisse entre chaque itération*/
    double h=(b-a)/N;
    /* initialisation de la variable x*/
    double x=a ;
    /* bouclage*/
    for(double n=0,n<N,n++)
    {
    if (f(x)<f(x+(h/2)) {
    break;
    }
    else {
    x+=h;
    }
    }
    }
     
     
    printf (" le minimum de la fonction = %f\n",x+(h/2));
     
     
    }
    la taille de la fenetre ne permet pas d'afficher correctement toutes les lignes, y'aura peut etre quelques petits trucs à revoir.
    si quelqu'un pourrait le compiler et me dire ce qui ne va pas.....
    en vous remerciant d'avance....

    harry

  2. #2
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Yop a toi !
    Déja y'a tout ça a corriger
    cc1.exe: warnings being treated as errors
    min.c: In function `main':
    min.c:17: warning: float format, double arg (arg 2)
    min.c:19: warning: float format, double arg (arg 2)
    min.c:21: warning: float format, different type arg (arg 2)
    min.c:31: warning: ISO C forbids nested functions
    min.c:33: warning: ISO C89 forbids mixed declarations and code
    min.c:37: warning: ISO C forbids nested functions
    min.c: In function `min':
    min.c:43: redeclaration of `n'
    min.c:43: `n' previously declared here
    min.c:43: parse error before '<' token
    min.c:39: warning: unused variable `h'
    min.c:41: warning: unused variable `x'
    min.c:43: warning: unused variable `n'
    min.c:43: warning: unused variable `n'
    min.c: In function `main':
    min.c:11: warning: unused variable `p'
    min.c: At top level:
    min.c:55: parse error before string constant

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Comme ca à froid au niveau des erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for(double n=0,n<N,n++)
    Déclare explicitement n en dehors de la boucle et le caractère de séparation est un point-virgule ( et non pas une virgule (,)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (f(x)<f(x+(h/2)) {
    Il te manque une parenthèse fermante !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf (" le minimum de la fonction = %f\n",x+(h/2));
    Tes variables x et h est hors de portée, faut la déclarer en dehors de la boucle !

    Pour finir, ton code et moche mais je pense que ca tu le savais deja puis voici une liste de warning dont tu dois te préoccuper:
    Project : Console application
    Compiler : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Franck\Bureau\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `main':
    main.c:17: warning: float format, double arg (arg 2)
    main.c:19: warning: float format, double arg (arg 2)
    main.c:21: warning: float format, different type arg (arg 2)
    main.c:11: warning: unused variable `p'
    main.c: In function `min':
    main.c:52: warning: control reaches end of non-void function
    main.c: In function `main':
    main.c:58: warning: control reaches end of non-void function
    main.c:58:2: warning: no newline at end of file
    Linking console executable: C:\Documents and Settings\Franck\Bureau\console.exe
    Process terminated with status 0 (0 minutes, 1 seconds)
    0 errors, 7 warnings
    Je pense qu'il faut sérieusement revoir ton langage C, je pense que c'est le minimum que tu puisses faire pour produire un code meilleur !


    Dernière remarque ...

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    j'ai bien pris notes de vos remarques... merci franck pour ton précieux éclairage, je sais bien que ma façon de pratiquer le c n'est pas la meilleure, mais je suis un tout débutant...

Discussions similaires

  1. [Lettre De Motiv]Besoin d'une petite aide
    Par fear69 dans le forum CV
    Réponses: 3
    Dernier message: 28/05/2007, 10h30
  2. Référence, besoin d'une petite explication
    Par sunshine33 dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2007, 08h00
  3. Besoin d'une petite aide
    Par kanasurf dans le forum Access
    Réponses: 1
    Dernier message: 25/01/2007, 12h03
  4. Besoin d'une petite aide:onclick sur une cellule
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2005, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo