[Anfänger] 2 Werte addieren und am Ende alles zusammen rechnen



  • Hallo zusammen,

    ich bin blutiger Anfänger und wollte nun etwas kleines praktisches machen. Schleifen, Werte eingeben oder ausgaben oder Dinge zusammenrechnen kann ich mittlerweile grob. Diese Dinge vermischen ist dann schon wieder eine andere Sache 😃

    Jedoch habe ich mit Logik so meine Schwäche. Jetzt habe ich z.B. im Büro einen Blumenlieferanten der immer folgenden Lieferschein hat:

    4 x 1,99€
    5 x 6,99€
    2 x 4,49€
    1 x 2,99€
    etc.
    

    Mein Wunsch des Programmes wäre nun das ich immer eingebe 4 x 1,99 und danach direkt 5 x 6,99 etc. und die Summe immer addiert wird. Wenn ich dann fertig bin würde ich gerne eine bestimmte Taste drücken und hätte dann die komplette Summe.

    Ich möchte nicht das mir hier jemand fertigen Code gibt, jedoch hoffe ich das die Frage gestattet ist, ob ich dies mit folgenden Mitteln schaffen kann:

    - Array
    - double,int
    - while Schleife?

    Bin für Denkanstöße sehr Dankbar, ich bin schon überfragt wie ich die Summe im Hintergrund immer weiter addiere.

    gruß Data



  • edit



  • thedata schrieb:

    Ich möchte nicht das mir hier jemand fertigen Code gibt, jedoch hoffe ich das die Frage gestattet ist, ob ich dies mit folgenden Mitteln schaffen kann:

    - Array
    - double,int
    - while Schleife?

    Das Array ist unnötig, du musst aber noch einlesen (vermutlich wäre dabei . statt , besser)

    thedata schrieb:

    Bin für Denkanstöße sehr Dankbar, ich bin schon überfragt wie ich die Summe im Hintergrund immer weiter addiere.

    Mit eine Zwischensumme nach jeder "Zeile".



  • Mal ein wenig PseudoCode:

    GesamtSumme = 0
    Anzahl eingeben
    Solange Anzahl > 0
    {
    Preis eingeben
    ZwischenSumme = Preis * Anzahl
    GesamtSumme += ZwischenSumme
    Anzahl eingeben // neue Anzahl ... bei Anzahl <=0 wird Eingabe beendet
    }
    GesamtSumme ausgeben



  • edit



  • Kommazahlen kannst du so einstellen:

    #include <locale>
    
    ...
    
    std::locale::global(std::locale("")); //  Wenn deine preferrierte Umgebung Deutsch ist
    

    Ansonsten Kommazahlen einfach mit Punkt eingeben.

    In Zeile 31 sollte es bestimmt heißen:

    GesamtSumme += ZwischenSumme;
    

    Und als Tipp: Schau dir mal eine do-while-Schleife an. Damit kann man das Problem mit dem ersten Wert für "Anzahl" schön lösen 🙂



  • edit


  • Mod

    Wozu dann überhaupt die Gesamtsummenvariable, wenn die doch immer gleich der Zwischensumme ist?

    (Noch was wichtiges: Soll es in dem Programm um Geld gehen? Ich sehe das WOrt "Preis" an einer Stelle. Fall ja: Double ist mit einer der am wenigsten geeignetem Datentypen für Geldbeträge!)



  • edit


  • Mod

    DaTaCrAsH schrieb:

    Rein aus Interesse, welche eignet sich denn besser?

    Letztlich von den Basisdatentypen keiner so wirklich, aber nimm wenigstens irgendeinen Ganzzahltyp (int & Co.) und rechne in Cent oder Zehntelcent.



  • edit


Log in to reply