Calcul en C...

Fermé
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 - Modifié par LezardMoo le 28/10/2011 à 21:38
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 - 16 nov. 2011 à 19:20
Bonsoir tout le monde !!!

je suis entrain de faire un petit programme pour moi et des amis qui nous permettrait de savoir chaque début de mois quelle somme d'argent il va nous resté pour le mois une fois toutes les taxes payées.

donc en gros mon prog fais ceci:

il demande de rentrer la valeur du salaire (jusque là pas de souci xD)

ensuite il prend cette valeur et a partir de là commence a déduire toutes les charge initialisées dans des variables au nom assez parlant Edf Telephone Internet etc...

Mon problème est au niveau de la récupération de la première valeur.

comment dois-je faire pour récupérer la valeur du salaire entrée???

alors jevais vous mettre le début de mon code (comme ca vous me direz si je débute bien)


   #include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
     double Euros = 0; 
    Edf = 57; 
    Telephone = 30; 
    Internet = 35; 
    Transport = 50; 
    Resultat = 0; 

    printf("CASH: L'ARGENT DU MOIS\n\n"); 

    printf("Entrer la somme total de vos payes\n"); 
    scanf("%lf,&Euros"); 
    printf("le total de vos payes est de &Euros, Euros\n\n");


donc ce que je veux récup c'est ca "le total de vos payes est de &Euros, Euros"

pour ensuite deduire le reste.

je precise que si j'ai mis un double c'est parceque les payes sont souvent décimales.

Et je voudrais aussi savoir si ce que j'ai fais n'est pas "débile", ma fonction commence par un int et mon instruction un double ?!?!?! dois-je mettre pour ma fonction "double main () ??

Merci d'avance ;)
A voir également:

6 réponses

prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 28/10/2011 à 21:58
non, c'est bien "int main()". C'est la fonction principale. C'est "int" parce qu'elle doit retourner l'entier 0 si tout se passe bien (d'où le "return 0;" à la fin, qui manque dans ton code. Attention aussi à mettre une accolade fermante).

Tes initialisations sont... spéciales ; tes variables "Edf", etc n'ont pas de type ; étonnant que le compilateur ne dise rien...

" scanf("%lf,&Euros"); " est faux ; essaie plutôt "scanf("%lf",&Euros);" . Ce qui est entre les guillemets correspond à la "forme" de ce que l'utilisateur doit entrer au clavier. En écrivant "scanf("%lf,&Euros");", cela voudrait dire que l'utilisateur devrait entrer exactement [un double],&Euros et que le résultat ne serait stocké nulle part... (d'ailleurs, je doute que cela compile ?) Alors que tu souhaites qu'il entre uniquement un double, et que le résultat soit stocké à l'adresse de "Euros" si j'ai bien compris... D'où ma correction. (j'espère que je suis clair^^)

De même pour "printf("le total de vos payes est de &Euros, Euros\n\n");"... Ca affichera exactement ce qui est entre les guillemets et en aucun cas la valeur contenue dans la variable "euros". Enfin je te laisse réfléchir pour ca. Il faut se poser la question de ce que tu veux qu'il apparaisse à l'écran.

D'ailleurs, si tu veux faire des calculs avec ces nombres, il vaudrait mieux qu'ils soient tous de même type - sans quoi le compilateur risque de ne pas être content^^
"Il siiiiigne a la pointe de son épééééée, d'un W qui veut dire WORROOOOOO !!!!"
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
28 oct. 2011 à 22:03
De plus, il est possible que le compilateur n'accepte pas d'initialiser un double avec un entier ; tu devrais plutot écrire " double Euros = 0.0;".

Sinon, sans rire, tu as essayé de le compiler ce code ?
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
28 oct. 2011 à 22:26
xD pour le return 0 je nest pas mis tout le code dans le topic et oui je sais c'est risible même moi je me moque de moi xD)
en faite j'ai commencé ce code ya a peu près 20 min avant de poster.
Donc je te remercie pour toutes ces remarque ;) ;) je vais rectifier ça de suite.

Mais du coup comment je fais pour récupérer la valeur entrer a au premier scanf pour ensuite déduire le reste???

parce que si je suis le code a la lettre pour l'instant il va me demander de rentrer ma paye ensuite il va me dire que ma paye est de temps et au moment de déduire il va allé chercher la variable Euros qui est initialiser a 0 non ??

Merci et tu es très clair ;)
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 28/10/2011 à 22:34
Si tu es parvenu à afficher le contenu de la variable Euro (et qu'il t'affiche bien ce que tu as rentré au clavier) avec dernier printf, c'est que celle-ci contient bien la bonne valeur^^ en C tu ne peux pas avoir deux variables différentes qui portent le même nom.

Quoique tu fasses donc comme traitements avec cette variable Euro, il prendra a chaque fois la dernière valeur que tu as stockée dedans. Ici en l'occurrence celle entrée au clavier. Euro ne revaudra jamais 0 sauf si tu lui affectes cette valeur explicitement plus loin dans le code.

Enfin bon, fais des tests et tu verra^^ Il n'y a pas de risque^^
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
28 oct. 2011 à 22:42
Scanf() stocke tout seul la valeur entrée au clavier dans la variable, si c'est bien ca qui t'inquiète^^
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
28 oct. 2011 à 22:53
c'est excatement ce qui m'inquiétais héhé MERCI ;)

Bonne soirée à toi ;) je te dirais si j'ai reussi a faire ce que je veux (mais je pense que j'en suis loin, très loin...)
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
29 oct. 2011 à 14:40
héhé j'ai finit le programme !!

enfin pas vraiment parceque ce ne sont pas les chiffres exact ya pas tout non plus mais ca marche j'ai plus qu'a remplacer

#include <stdio.h>
#include <stdlib.h>

int main()
{

    double Euros = 0.0;
    double Edf = 57.0;
    double Telephone = 30.0;
    double Internet = 35.0;
    double Transport = 50.0;
    double Resultat = 0.0;
    double Resultat1 = 0.0;
    double Resultat2 = 0.0;
    double Resultat3 = 0.0;

    printf("CASH: L'ARGENT DU MOIS\n\n");

    printf("Entrer la somme total de vos payes\n");
    scanf("%lf",&Euros);
    printf("le total de vos payes est de %f Euros\n\n", Euros);

    printf("Maintenant je soustrait l'EDF %f euros\n\n", Edf);
    Resultat = Euros - Edf;
    printf("Il reste %f euros \n\n", Resultat);

    printf("Déduction du téléphone %f euros\n", Telephone);
    Resultat1 = Resultat - Telephone;
    printf("Il reste %f euros\n\n",Resultat1);

    printf("Dédusction d'internet %f euros\n", Internet);
    Resultat2 = Resultat1 - Internet;
    printf("Il reste %f euros\n\n", Resultat2);

    printf("Déduction du transport %f euros\n", Transport);
    Resultat3 = Resultat2 - Transport;
    printf("Il reste %f euros\n\n", Resultat3);

    if (Resultat3 > 500)

    {
        printf("C'est cooooool avec %f euros vous allez pouvoir faire le mois en vous faisant plaisir héhé !! ;)", Resultat3);
    }

    else

    {
        printf("OULALA !! Il reste %f euros, il va falloir se serrer la ceinture ce mois-ci", Resultat3);
    }

    return 0;
}


maintenant mon but c'est de mettre tout ca dans une vrai fenêtre (pour win et nux)
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
30 oct. 2011 à 14:35
Comment je peux faire pour que ce programme apparaisse dans une fenetre plutot que dans une fentre DOS?? j'ai trouvé Qt j'ai donc recodé le petitprogramme en C++ maintenant je ne sais pas comment générer ce prog dans une fenetre...
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 30/10/2011 à 15:05
ca n'est pas expliqué sur site du zéro ? Je connais en gros le C++ mais pas du tout la bibliothèque Qt donc j'aurai du mal à t'aider^^... Mais le sdz est assez complet à ce niveau non ?
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
30 oct. 2011 à 15:47
uje n'ai rien vu sur sdz pour faire des fenetres en C appart avec la lib SDL qui en fait ne m'interesse pas puisque je ne suis pas entrain de créer un jeux... en C++ c'est expliqué avec Qt donc apprendre a faire des fenetrs, fenetres avec bouton barre de chargement et tout ca seulement je voudrais juste que mon prog s'affiche dans une fenetre win (apparament cest de l'API) et je n'ai rien vu la dessus...
En gros pour donner un exemple je voudrai que le scanf m affiche un rectangle de saisie... et ca je ne trouve pas
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 30/10/2011 à 16:11
En C++ on n'utilise pas printf/scanf mais std::cout et std::cin.^^

Et aucune de ces fonctions n'affichera le rectangle de saisie "automatiquement", c'est à toi de gérer ca et d'indiquer que tu veux un rectangle de saisie, et que l'utilisateur devra le remplir puis valider (avec un bouton par exemple). A toi après de récupérer la valeur entrée (y'a certainement une fonction getText() ou un truc semblable), de la stocker dans une variable, puis faire les calculs et d'afficher le résultat. Ca n'est pas automatique et ca demande une part de réflexion non négligeable^^

Et pour faire un rectangle de saisie avec Qt, c'est bien indiqué sur le sdz (partie "Saisir une information") : https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 30/10/2011 à 16:22
Printf(), scanf() et leurs équivalents C++ servent uniquement à afficher du texte dans la console, et rien de plus. Si tu veux une appli sous forme de fenêtre Windows, il faut utiliser des labels ou des champs de saisie que tu pourra remplir et placer à ta guise dans une fenêtre que tu aura préalablement définie.
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
30 oct. 2011 à 18:31
^^ je m'en suis rendu compte...

Et j'ai lu déjà un peut les cours sur Qt mais ce que je ne comprend pas c'est, est ce que je peut copier/coller mes calculs dans Qt pour qu'ensuite je les affiche dansune boite d edialogue??
Sinon j'ai vu qu'en Java il était possible de créer un fenetre directement, alors je regarde aussi de ce coté là
0
OUHHHAAAAAAAA !!!

je n'en attendais pas autant de toi mais là franchement grand MERCI, tu me retire une épine du pied considérable.
Je me sent d'attaque pour relire les cours ;)
Je vais bien tout reprendre dans l'ordre et espère arriver a mes fin, héhé MERCI

Bonne soirée ;) :) ;)
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 1/11/2011 à 11:19
De rien ! ^^ Bon courage ! Et en plus à moi ca m'aura permis d'apprendre les bases de Qt^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je tourne en rond et tourne en rond, jy suis presque... mais pour l'instant je tourne en rond...
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
2 nov. 2011 à 19:10
Un nouveau problème ?^^
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
7 nov. 2011 à 18:05
ptit UP pour dire que j'avance, mais avec le peut de temps que j'ai ca avnce doucement ;)
0
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 14
15 nov. 2011 à 21:44
hey hey hey !!!!

j'ai fini le prog :D

bon je n'arrive pas a afficher le resultat final mais ca marche je rentre un nombre je clic sa calcul et hop un QMessageBox s'affiche suivant la valeur qu'il reste ^^

si concat avec des + Qt me sort une erreur comme quoi ca ne passe pas avec un double...
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 16/11/2011 à 19:22
ca ne passe pas avec des double ? Possible remarque... J'avoue ne jamais avoir utilisé ca avec des doubles.

essaie avec "sprintf(ton_string,"%lf",ton_double);"

Enfin, c'est pas très "c++", c'est limite niveau "propreté" mais ca marchera.
0