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 :

exercice sur la TVA


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut exercice sur la TVA
    bonjour j'essaie de réaliser un petit exercice en C , voila le code , j'ai indiquez en commentaire l'enoncé :

    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
     
    /* demander a l'utilisateur d'introduire un montant hors tva
     
    demander a l'utilisateur d'introduire le taux de tva
     
    le programme doit calculer ET afficher la TVA a payer en euros et le montant total TVA */
     
    #include <stdio.h>
    #include <stlib.h>
     
    void main (void)
     
    {
     
    float montanthtva,tauxtva,tva,mtva,montanttotal;
     
    printf("indiquez votre montant hors tva\n");
    scanf("%f", &montanthtva);
    printf("indiquez le taux de tva");
    scanf("%f", &tauxtva);
    float tva=tauxtva/100;
    float mtva=montanthtva*tva;
    float montanttotal=montanthtva*(1+tva);
    printf("la tva est de %f et le prix total est de %f\n", mtva,montanttotal);
     
    system("pause");
     
    }
    le truc c'est qu'il ne marche pas , alors que tout a l'air correct , j'ai utiliser trop de float? je suis sûr qu'il y'a moyen de faire un peu plus simple mais la c'est le minimum que j'ai trouver

    merci

  2. #2
    Membre très actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Par défaut
    ligne 2 : stdlib.h au lieu de stlib.h
    ligne 14, 15, 16 tu redéclare des variables déclarées ligne 10

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    void main (void)
     
    {
     
    float montanthtva,tauxtva,tva,mtva,montanttotal;
     
    printf("indiquez votre montant hors tva\n");
    scanf("%f", &montanthtva);
    printf("indiquez le taux de tva");
    scanf("%f", &tauxtva);
    tva=tauxtva/100;
    mtva=montanthtva*tva;
    montanttotal=montanthtva*(1+tva);
    printf("la tva est de %f et le prix total est de %f\n", mtva,montanttotal);
     
    system("pause");
     
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    salut,

    Pourquoi tu déclares deux fois ta variable tva,montanttotal et mtva?

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    En complément des remarques précédentes:

    * main() retourne un int.
    * Le second printf() n'est pas terminé par un '\n' ni suivi par un fflush(stdout); il est donc possible que la ligne ne soit pas affichée avant de devoir effectuer la saisie.
    * Il manque la vérification du résultat des scnaf().
    * Pourquoi utiliser des float ? Il est généralement préférable d'utiliser des double.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par gl Voir le message
    * Pourquoi utiliser des float ? Il est généralement préférable d'utiliser des double.
    Dans l'absolue, OK. Pour un calcul de TVA, l'erreur ne devrait pas trop prêter à conséquence.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Tu calcul le montant TTC par HT*(1+TauxTVA) alors que tu as déjà calculé la TVA à la ligne précédente. Il serait plus élégant à mon avis d'avoir TTC = HT + TVA.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sakita Voir le message
    le truc c'est qu'il ne marche pas , alors que tout a l'air correct , j'ai utiliser trop de float?
    Visiblement ce code est loin d'être correct. Tu ne comprends pas les messages d'erreur ?
    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
     
     
    -------------- Build: Debug in hello ---------------
     
    [ 50.0%] Compiling: main.c
    [100.0%] Linking console executable: bin\Debug\hello.exe
    C:\dev\hello\main.c:9:19: stlib.h: No such file or directory
    C:\dev\hello\main.c:13: warning: return type of 'main' is not `int'
    C:\dev\hello\main.c: In function `main':
    C:\dev\hello\main.c:21: error: redeclaration of 'tva' with no linkage
    C:\dev\hello\main.c:15: error: previous declaration of 'tva' was here
    C:\dev\hello\main.c:21: warning: ISO C90 forbids mixed declarations and code
    C:\dev\hello\main.c:22: error: redeclaration of 'mtva' with no linkage
    C:\dev\hello\main.c:15: error: previous declaration of 'mtva' was here
    C:\dev\hello\main.c:23: error: redeclaration of 'montanttotal' with no linkage
    C:\dev\hello\main.c:15: error: previous declaration of 'montanttotal' was here
    C:\dev\hello\main.c:26: warning: implicit declaration of function `system'
    C:\dev\hello\main.c:15: warning: unused variable `tva'
    C:\dev\hello\main.c:15: warning: unused variable `mtva'
    C:\dev\hello\main.c:15: warning: unused variable `montanttotal'
    Process terminated with status 1 (0 minutes, 1 seconds)
    7 errors, 6 warnings
    Corrections et simplifications faites :
    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
     
    #include <stdio.h>
     
    int main (void)
    {
       float montanthtva, tauxtva;
     
       printf ("indiquez votre montant hors tva\n");
       scanf ("%f", &montanthtva);
       printf ("indiquez le taux de tva");
       scanf ("%f", &tauxtva);
     
       {
          float tva = tauxtva / 100;
          float mtva = montanthtva * tva;
          float montanttotal = montanthtva * (1 + tva);
          printf ("la tva est de %f et le prix total est de %f\n", mtva,
                  montanttotal);
       }
       return 0;
    }
    Les identificateurs ne sont pas très clairs... Préférer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    montantHTva
    montant_h_tva
    montant_ht

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    merci pour vos réponses

    en fait j'utilise visual C++ et du coup je vois pas ou sont les message d'erreur , vous utilise dev C++ ?

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Ce qui est sûr, c'est qu'il utilise MinGW, le compilo livré avec Dev-C++ ou Code::Blocks.

    Et aussi, il compile bien en C (pas en C++) et a activé beaucoup de warnings.

    Mais normalement sous Visual, tu ne devrais pas aller plus loin que l'erreur fatale sur l'inclusion d'un header inexistant...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sakita Voir le message
    en fait j'utilise visual C++ et du coup je vois pas ou sont les message d'erreur , vous utilise dev C++ ?
    Code::Blocks avec MinGW (gcc).

    Avec Visual C++; il faut activer le niveau de messages 4.

    http://emmanuel-delahaye.developpez....tm#cfg_compilo

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut
    je trouve pas ou activer ça?

    merci

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sakita Voir le message
    je trouve pas ou activer ça?
    http://www.developpez.net/forums/f29...tc/visual-cpp/

Discussions similaires

  1. exercice sur les matrices
    Par massimo dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/03/2007, 17h20
  2. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  3. Exercice sur les tableaux
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 06/11/2006, 19h33
  4. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  5. Réponses: 4
    Dernier message: 28/07/2005, 16h22

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