Doorrekenen met C++

Status
Niet open voor verdere reacties.

Record

Gebruiker
Lid geworden
27 dec 2006
Berichten
18
Ik probeer een klein programmatje te maken met C++ waar je de afzet en prijs invult en dan vervolgens de omzet krijgt. Alleen wil ik nu dat ook de winst wordt berekend, daarom wil ik dat er met de omzet wordt doorgerekend en dat je daar dan de kosten vanaf kan halen. Hoe doe ik dat?

Dit is voor een schoolopdrachtje, dus ik verwacht niet dat Ahold morgen belt om mijn programma te gebruiken.;)

#include <iostream.h>

int main()
{
long getal1 = 0;
long getal2 = 0;
short janee = 1;

while(janee)
{
cout << "Vul afzet in.\n";
cin >> getal1;
cout << "Vul prijs in.\n";
cin >> getal2;
cout << "De omzet is " << getal1 * getal2 << "\n";
cout << "Nog een keer? 1 = ja of 0 = nee.\n";
cin >> janee;
}

return 0;
}

Alvast Bedankt
 
Niemand die dit weet, je zou mij er heel erg mee helpen? Misschien ben ik te onduidelijk, van het antwoord moet een getal afgetrokken worden( de zogenaamde kosten, die je zelf moet invoeren).
 
Je zou het product opnieuw in getal1 kunnen bijhouden, dan opnieuw een waarde voor getal2 inlezen en met die twee waardes gebruiken voor het laatste deel.
Structuurcode:
Code:
>> a
>> b
a *= b; // dit is hetzelfde als schrijven 'a = a * b'
>> b
<< "omzet = " << a << "winst" << a-b

--Johan
 
Bedankt voor je reactie, ik weet niet of ik het begrip structuurcode goed heb begrepen. Maar ik heb er dit van gemaakt, maar hij wil het niet compileren. Wat doe ik fout?

#include <iostream.h>

int main()
{
long getal1 = 0;
long getal2 = 0;
short janee = 1;

while(janee)
{
cout << "Vul afzet in.\n";
cin >> getal1;
cout << "Vul prijs in.\n";
cin >> getal2;
cout << "De omzet is " << getal1 * getal2 << "\n";
cout << "Nog een keer? 1 = ja of 0 = nee.\n";
cin >> janee;
cin >> getal1;
cin >> getal2;
getal1 *= getal2;; // dit is hetzelfde als schrijven 'a = a * b'
cin >> getal2;
cout << "omzet = " << getal1; << "winst" << getal1;-getal2;
}

return 0;
}
 
bijna maar nog niet helemaal :)

Structuurcode is een manier om op verkorte wijze gestructureerd (hence structuurcode) aan te tonen hoe een bepaald scenario gecodeerd dient te worden... Er zijn standaarden voor, zoals hele reeksen pseudocode, maar mijn stukje daarnet was uit de duim gezogen :p

Waarom het bij jou nu niet werkt? Let eens op de puntkomma's (;) Een puntkomma duidt het einde van een commando aan
  • getal1 *= getal2;;
    Hier staat er eentje teveel, je beïndigt het eerste commando, en dan een tweede, maar dat is er niet, dus gaat je compiler klagen.
  • cout << "omzet = " << getal1; << "winst" << getal1;-getal2;
    Hier hetzelfde, het commando 'cout' begint, en stopt bij de puntkomma. De compiler weet hier niet wat hij met de rest van die regel moet aanvangen. Probeer hem zo eens:
    cout << "omzet = " << getal1 << "winst" << getal1-getal2;

Ik vermoed dat je wil dat men de drie waardes (afzet - prijs - kosten) na elkaar ingeeft en dan het resultaat ziet?
Dit toegepast adhv de structuurcode en wat jij al had, geeft volgend resultaat:
Code:
#include <iostream> //de .h is hier niet nodig, iostream is onderdeel van de STL

int main()
{
    long getal1 = 0;
    long getal2 = 0;
    short janee = 1;

    while(janee)
    {
        cout << "Vul afzet in.\n";
        cin >> getal1;
        cout << "Vul prijs in.\n";
        cin >> getal2;

        //we berekenen de omzet en slaan deze op in getal1
        getal1 *= getal2; // dit is hetzelfde als schrijven 'a = a * b'

        //vragen naar de kosten en slaan deze in getal2 op
        cout << "Geef kosten in." << endl;
        cin >> getal2;

        //toon het eindresultaat
        cout << "De omzet is " << getal1 << endl;
        cout << "De winst is " << getal1 - getal2 << endl << endl;

        cout << "Nog een keer? 1 = ja of 0 = nee.\n";
        cin >> janee;
    }

    return 0;
}

De code is zeker niet Ahold-proof (denk maar aan bvb het invoeren van ongeldige tekens), maar het is de bedoeling dat je goed begrijpt hoe dit werkt, dus stel gerust een vraag als je hier iets niet goed van begrijpt.

--Johan
 
Heel erg bedankt, ik heb de code ingevoerd maar ik kreeg nog een error:

error: `cout' undeclared (first use this function)

maar toen heb ik bovenin nog using namespace std; gezet in de code en toen werkte het wel.

bedankt voor je hulp Johantrax:thumb:
#include <iostream> //de .h is hier niet nodig, iostream is onderdeel van de STL
using namespace std;
int main()

{
long getal1 = 0;
long getal2 = 0;
short janee = 1;

while(janee)
{
cout << "Vul afzet in.\n";
cin >> getal1;
cout << "Vul prijs in.\n";
cin >> getal2;

//we berekenen de omzet en slaan deze op in getal1
getal1 *= getal2; // dit is hetzelfde als schrijven 'a = a * b'

//vragen naar de kosten en slaan deze in getal2 op
cout << "Geef kosten in." << endl;
cin >> getal2;

//toon het eindresultaat
cout << "De omzet is " << getal1 << endl;
cout << "De winst is " << getal1 - getal2 << endl << endl;

cout << "Nog een keer? 1 = ja of 0 = nee.\n";
cin >> janee;
}

return 0;
}
 
Nog een opmerking, als je mijn code met die van jou vergelijkt (op het feit dat ik de namespace vergeten was na dan...)
intendatie het gebruik van tabs/spatie/inspringen is een goede codeergewoonte. Niet alleen verhoogt het vaak de leesbaarheid, maar het laat je ook toe om gemakkelijk te ontdekken of je alle blokken ook wel weer afgesloten hebt.

--Johan

P.S.: zet je de vraag dan ook even op opgelost? dat die je door rechts-onderaan bij 'status van de vraag' op opgelost te klikken. In het forum verschijnt deze vraag dan met een vinkje in het icoontje
 
Bedankt voor de tip, ik snap wat je bedoelt.

En ik zal hem even opgelost zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan