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 :

mon programme en c ne fonctionne pas correctement


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut mon programme en c ne fonctionne pas correctement
    bonjour tout le monde
    Aprés un travail intensif j'ai terminé mon prog mais il existe certains problèmes.le compilateur retourne inf et -inf pour quelques valeurs et nan pour d'autres.Franchement, je suis perdue, je n'arrive pas à connaitre la source d'erreur. SVP celui qui es interessé par le developpement m'envoie une réponse le plus vite possible.Merci d'avance.
    le programme est le suivant
    Code c : 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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    #include<stdio.h>
    #include<math.h>
    int main(int argc,char*argv[])
    {
    #define SLR 8
    #define RLR 2
    #define STMR 15
    #define Ds 3	
    #define Dr 3
    #define TELR 65
    #define WEPL 110
    #define T 200
    #define Bp 4.3
    #define Pp 0
    #define Nc -70
    #define Nfor -64
    #define Pr 35
    #define Ps 35
    #define A 0
    #define qdu 1
    float Ie,OLR,LSTR,Ta,Tr;
    double Nos;
    double Pre,Nor,No,Ro;
    int Nfo;
    double Id;
    double Xolr,Iolr,STMRo;
    double p,pp,ppp,pppp;
    double Ist;
    double Q;
    double G;
    double Y;
    double Z;
    double Iq; 
    double Is;
    double TERV;
    double Re,Roe,Idte;
    double Rle,Idle;
    double XX;
    double Idd;
    double e, ex;
    double Ie_eff;
    double R,MOS;
    printf("\n Entrez le coefficient Ie :");
    scanf("%f",&Ie);
    OLR=SLR+RLR;
    LSTR=STMR+Dr;
    Ta=T;
    Tr=2*T;
    printf("\n%f OLR ",OLR);
    printf("\n%f LSTR",LSTR);
    printf("\n%f Ta",Ta);
    printf("\n%f Tr",Tr);
    Nos= pow((Ps-SLR-Ds-100+0.004)*(Ps-OLR-Ds-14),2);
    printf("\n%lf Nos",Nos);
    Pre = Pr+10*log10(pow(11,(10-LSTR/10)));
    printf("\n%lf Pre",Pre);
    Nor=pow(RLR-121+Pre+0.008*(Pre-35),2);
    printf("\n%lf Nor",Nor);
    Nfo = Nfor+RLR;
    printf("\n%lf Nfo",Nfo);
    No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nfo/10)));
    printf("\n%lf No",No);
    Ro=15-1.5*(SLR+No);
    printf("\n%lf Ro",Ro);
    // Calcul du facteur Is
    Xolr = OLR+0.2*(64+No-RLR);
    p=pow((Xolr/10),8);
    Iolr = 20*((1+pow(p,0.125)-Xolr/8));
    STMRo = -10*log10(pow(10,(-STMR/10))+exp(-T/4)*pow(10,(-TELR/10)));
    pp=pow((STMRo-13)/6,8);
    ppp=pow((STMRo+1)/19.4,35);
    pppp=pow((STMRo-3)/33,13);
    Ist = 12*(1+pow(pp,(1/8)))-28*(1+pow(ppp,(1/35)))-13*(1+pow(pppp,(1/13))+29);
     Q = 37-15*log10(qdu);
     
     G = 1.07+0.258*Q+0.0602*pow(Q,2);
     
     Y = (Ro-100)/15+46/8.4-G/9;
     
     Z = 46/30-G/40;
     
     Iq = 15*log10(pow(11,Y)+pow(10,Z));
     
     
    Is = Iolr+Ist+Iq;
    printf("\n%lf le coefficient Is est egal a :",Is);
     
    // Calcul du facteur Id
    TERV = TELR-40*log10((1+T/10)/(1+T/150))+6*exp(pow(-0.3*T,2));
     
    if  (STMR<9)
    {
    TERV = TERV+0.5*Ist;
     
    Re = 80+2.5*(TERV-14);
     
    Roe = -1.5*(No-RLR);
     
    Idte = ((Roe-Re)/2+sqrt(pow((Roe-Re),2/4+100))-1)*(1-exp(-T));
     
     
    }
     
    if (STMR>20)
     
    {
    Idte = sqrt(pow(Idte,2)+pow(Ist,2));
     
     
    Rle = 10.5*(WEPL+7)*pow((Tr+1),(-0.25));
     
    Idle = (Ro-Rle)/2+sqrt(pow((Ro-Rle),2)/4+169);
    }
    if(Ta<=100)
     
    {
     
    Idd=0;
     
    }
     
    else if(Ta>100)
     
    {
     
    XX=log10(Ta/100)/log10(2);
     
    e=pow(1+XX,6);
     
    ex=pow((XX/3),6);
     
    Idd= 25*(pow(e,(1/6))-3*(1+pow(ex,(1/6))+2));
     
    Id = Idte+Idle+Idd;
     
    printf("\nle coefficient Id est égal à :\n",Id);
     
    }
     
    Ie_eff = Ie+(95-Ie)*(Pp/5)/((Pp/5)+Bp);
     
     
    // Calcul du facteur R
     
     
    R = Ro-Is-Id-Ie_eff+A;
     
    printf ("\n%lf la valeur du facteur R est egale a :",R);
     
     
    // Conversion du facteur R en Score Mos
     
     
    MOS = (1+0.035)*R+R*(R-60)*(100-R)*0.000007;
     
    if(R<0)
     
    {
     
    MOS=1;
     
    printf("\n%lf le score Mos",MOS);
     
    }
     
    else if(R>100)
     
    {
     
    MOS=4.5;
     
    printf("\n%lf le score Mos",MOS);
     
    }
    }
    Remarque:les erreurs sont apparues à partir du calcul de No.

  2. #2
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Je trouve ce code horriblement illisible.

    Essayes d'abord de corriger ceci :
    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
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : F:\Temporaire\CodeBlocksProject\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `main':
    main.c:60: warning: double format, different type arg (arg 2)
    main.c:136: warning: too many arguments for format
    main.c: At top level:
    main.c:3: warning: unused parameter 'argc'
    main.c:3: warning: unused parameter 'argv'
    main.c: In function `main':
    main.c:175: warning: control reaches end of non-void function
    main.c:36: warning: 'Idte' might be used uninitialized in this function
    main.c:37: warning: 'Idle' might be used uninitialized in this function
    Linking console executable: F:\Temporaire\CodeBlocksProject\console.exe
    Process terminated with status 0 (0 minutes, 4 seconds)
    0 errors, 7 warnings

  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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Moi j'en ai d'autres des erreurs et warnings:
    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
    :: === App, Debug ===
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:54: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:56: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:58: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:60: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:60: warning: format ‘%lf’ expects type ‘double’, but argument 2 has type ‘int’
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:62: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:64: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:65: error: expected expression before ‘/’ token
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:86: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:88: error: expected expression before ‘/’ token
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:136: warning: too many arguments for format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:143: error: expected expression before ‘/’ token
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:148: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:151: error: expected expression before ‘/’ token
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:162: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:172: warning: ISO C90 does not support the ‘%lf’ printf format
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:175: warning: control reaches end of non-void function
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:3: warning: unused parameter ‘argc’
    /home/franhec/Documents/Programmation/CodesTests/ANSI/App/main.c:3: warning: unused parameter ‘argv’
    :: === Build finished: 4 errors, 15 warnings ===
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    C'est du grand n'importe quoi ce code. Des noms de varaibles illisibles, des calculs incompréhensibles, tout ça pour un score qui vaut soit 1 soit 4.5...

  5. #5
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Un candidat à l'IOCCC?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    oui je crois

    je m'étais même pas donné la peine d'essayer de lire.. Après la 3ième ligne de calcul (en ayant péniblement passé les déclarations), j'ai déclaré forfait...


  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Par défaut
    Bon je me lance alors. NAN est la valeur retourné par un flottant lorsque les bits de la variable considérée comme de type flottant ne correspond pas à un type flottant. Par exemple si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dword* pDwExemple;
    float* pFlExemple;
    pDwExemple= new dword;
    *pDwExemple=0xFFFFFFFF;
    pFlExemple = (float*)pDwExemple
    printf("%f",*pFlExemple);
    inf et -inf sont supportés par certain compilos. c'est infini et -infini

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Par défaut mon programme en c ne fonctionne pas correctement
    bonjour
    Bon, il s'agit d'un programme qui permet de donner une estimation de la qualité de service sous forme d'une note(MOS) et cela en fonction de délai (T) et codec utilisé(Ie) et de taux de pertes.
    pour moi, lorsque je compile avec gcc -lm -o Model Model.c rien ne s'affiche , il passe à l'exécution directement.bon, il affiche la valeur de OLR,LSTR,Ta, Tr,Nos,Pre,Nor et Nfo correctement mais à partir du No il retourne inf et -inf pour Ro et nan pour R et nan pour MOS.
    Remarque :R=Ro-Is-Id-Ie_eff+A : Equation de base de programme puis elle vient la conversion du facteur R trouvé en score Mos qui vaut 1 ou 4.5.
    SVP aidez moi je suis totalement perdue SVP SVP.Merci

Discussions similaires

  1. [XL-2007] Mon code ne fonctionne pas correctement
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2014, 11h40
  2. Programme ne fonctionne pas correctement
    Par crucified_barbara dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 08/06/2010, 10h41
  3. Réponses: 7
    Dernier message: 23/08/2008, 11h34
  4. Réponses: 0
    Dernier message: 10/04/2008, 00h45
  5. [MySQL] Mon code ne fonctionne pas correctement
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/02/2007, 13h27

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