CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide en c++

CavalierAnal
CavalierAnal
Niveau 8
03 décembre 2013 à 20:29:45

En pseudo-code :

float prix, pays, factureTotale = 0, totalTVA = 0;
Tant que (l'utilisateur n'a pas entré 0) {
prix = Valeur entrée par l'utilisateur;
pays = Valeur entrée par l'utilisateur;
factureTotale = factureTotale + ... ;
totalTVA = totalTVA + ... ;
}
Renvoyer : factureTotale, totalTVA, (factureTotale - totalTVA)

Creer_day
Creer_day
Niveau 9
03 décembre 2013 à 20:44:48

Et ça équivaut à quoi le "...+" ? :)

lokilok
lokilok
Niveau 16
03 décembre 2013 à 20:52:50

Bah regarde le nom de la variable a qui le résultat est assigné et tu verras.

CavalierAnal
CavalierAnal
Niveau 8
03 décembre 2013 à 20:54:15

Ben ça tu l'as implémenté correctement plus haut.

Par exemple si pays = 'B', tu fais :
factureTotale = factureTotale + prix + (6/100)*prix;
totalTVA = totalTVA + (6/100)*prix

Creer_day
Creer_day
Niveau 9
04 décembre 2013 à 13:23:39

Ok, voilà où j'en suis:

  1. include <iostream >

using namespace std;
int main ()
{
float Prix, Pays, TVA=0, TTC=0;
const int SENTINELLE = 0;
char B, D, F;

cout<<"Entrez un montant: ";
cin>>Prix;
cout<<"Entre un code (B, D, F): ";
cin>>Pays;
while (Prix != SENTINELLE){

if(Pays=B){
TTC = TTC+Prix+((6/100)*Prix);
TVA=TVA+(Prix*(6/100));}
else if(Pays=D){
TTC+Prix+((5.5/100)*Prix);
TVA=TVA+(Prix*(5.5/100));}
else if(Pays=F){
TTC+Prix+((9/100)*Prix);
TVA=TVA+(Prix*(9/100));}
else{
cout <<"Veuillez choisir entre B, D ou F" << endl;}

cout<< "Le montal total de la facture est: "<< TTC <<endl;
cout<< "Le montal total de la TVA est: "<< TVA <<endl;
cout<< "Le montal total hors TVA est: "<< TTC-TVA <<endl;}

return 0;
}

Sauf que ça marche pas :snif:
Je comprends pas pourquoi, il me dit qu'il n'y a aucune erreur de compilation mais quand je l'exécute, rien ne se passe :(

CavalierAnal
CavalierAnal
Niveau 8
04 décembre 2013 à 19:33:04

Chez moi ça fait des choses - pas ce qu'il faut, mais des choses. Ca me demande le montant, puis le pays, puis ça boucle en renvoyant plein de fois le résultat sans me redemander d'entrer un prix.

Il y a plusieurs erreurs :

:d) Détail : Pour pays=B et pays=D, tu as écrit
TTC+Prix+((5.5/100)*Prix);
au lieu de
TTC = TTC+Prix+((5.5/100)*Prix);

:d) Ta boucle while est mal délimitée : Tu veux pouvoir donner plusieurs valeurs à ton programme. Là, la boucle while commence APRES avoir récupéré des valeurs, du coup une fois que tu les as entrées il ne va plus jamais te demander un autre montant et un autre pays.
Il faut donc que ta boucle while commence avant le bloc
cout<<"Entrez un montant: ";
cin>>Prix;
cout<<"Entre un code (B, D, F): ";
cin>>Pays;

Attention : Du coup, lorsque le programme évaluera la condition (pays != SENTINELLE), la variable prix ne sera pas initialisée. Une solution simple est de l'initialiser à 1, pour que la condition soit vérifiée lors du premier test.
Une solution plus jolie est d'utiliser un booléen "continue", initialisé à true, et après avoir entré le prix tu mets un test :
if (prix==0) {continue = false;}
La condition de ta boucle sera alors : while (continue) { }

:d) Encore un problème de délimitation de ta boucle while : elle doit s'arrêter AVANT le bloc donnant le montant total, etc. C'est juste le } qui est mal placé.

:d) Les conditions pour vérifier le pays sont fausses pour plusieurs raisons.
Déjà, tu utilises le symbole "=" au lieu de "==". Le premier affecte une valeur à la variable, le second effectue un test d'égalité.

Ensuite, 'B', 'D', et 'F' sont des VALEURS que prend ta variable Prix. Ce ne sont pas des variables, ça ne sert à rien de les déclarer. C'est comme si pour tester si un truc est égal à 1, tu faisais déclarais "int 1;" en début de programme. Ca n'a pas de sens.
En fait, c'est la variable "pays" qui doit être de type char, et non de type float comme tu as mis. Tu dois écrire :
char Pays;
Ensuite, tes tests seront : if (Pays == 'B') { }
Sans oublier les ' ' autour de la lettre.
'B' : désigne le caractère correspondant à la lettre B.
B : désigne une variable dont le nom est B.

:d) Enfin, dans tes formules, tu as écrit (9/100) et (6/100). Comme ce sont des entiers, ça va être interprété comme une division euclidienne, et renvoyer 0. La TVA ne sera pas comptée.
Ecris plutot 0.06 et 0.09.

Avec tout ça, ton programme devrait marcher nickel :)

Creer_day
Creer_day
Niveau 9
04 décembre 2013 à 21:16:41

Ca fonctionne bien!

Un grand merci pour l'aide apporter par chacun :)

Bonne continuation :)

CreatedGame
CreatedGame
Niveau 5
11 décembre 2013 à 12:38:43

Merci a tous je vien de finir le programmes avec quelque erreur donc je le modifie :d)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment