Hilfe bei einem Zaehler



  • Danke, erst einmal für eure Antworten.

    EOutOfResources schrieb:

    So:

    #include <iostream>
    int main()
    {
      int AnzahlKronen = 100; //100 = Startwert
      std::cout << "1 + 1 = ";
      int Eingabe;
      std::cin >> Eingabe;
      if(Eingabe == 2)
      {
        std::cout << "Ja, richtig!" << std::endl;
        std::cout << "+50 Kronen"!" << std::endl;
        AnzahlKronen += 50; //Zur Variable AnzahlKronen 50 dazuzählen
        std::cout << "Anzahl Kronen: " << AnzahlKronen << std::endl;
      }
      else
      {
        std::cout << "Ne, sorry!" << std::endl;
        std::cout << "-50 Kronen"!" << std::endl;
        AnzahlKronen -= 50; //Von Variable AnzahlKronen 50 subtrahieren
        std::cout << "Anzahl Kronen: " << AnzahlKronen << std::endl;
      }
    }
    

    Der Code funktioniert beim Debuggen aber nicht. Außerdem werde ich aus dem

    std::
    

    nicht schlau, da ich, wie gesagt, erst vor ca. 1 Woche immer 1 Stunde am Tag lerne und diese Anweisung noch nicht dran kam in meinem Buch außer mit

    using namespace std;
    

    . Was bedeutet denn das

    std::
    

    ?

    @ CStoll: Ich weiß, dass die Anwendung auch kürzer geht, aber bei den drei Anweisungen und Befehlen die ich gelernt habe, bin ich schon beinahe froh, dass ich so etwas geschafft habe, wenn auch der Code so lange ist 😃



  • Wenn using namespace std; fehlt musst du vor jedem Objekt, Funktion und Typ der Standard-Bibliothek ein std:: setzten. Für dich bedeutet das: Entweder using namespace std; oder jeder cin oder cout hat ein std:: vor sich.

    EDIT: In den Zeile 11 und 18 kannst du jeweils das mittlere " entfernen, dann sollte es funktionieren.



  • SeppJ schrieb:

    Mach um Zeile 6 herum etwas wie int kontostand = 100; Bei einer richtigen Antwort machst du kontostand += 50; bei einer falschen kontostand -= 50; Den Konstostand kannst du an jeder Stelle mit cout << "Der Konstostand ist " << kontostand << endl; oder ähnlichem ausgeben.

    Wenn ich dieses genau so eingebe, dann bleibt er 100 stehen, wenn ich jedoch dann eingebe cout << "Der Konstostand ist " << kontostand-=50 << endl; , dann ist es eine Fehlermeldung. Also, was habe ich falsch gemacht?


  • Mod

    sLink. schrieb:

    Wenn ich dieses genau so eingebe, dann bleibt er 100 stehen, wenn ich jedoch dann eingebe cout << "Der Konstostand ist " << kontostand-=50 << endl; , dann ist es eine Fehlermeldung. Also, was habe ich falsch gemacht?

    So wild mischen kannst du das nicht. Beziehungsweise doch, wenn du dir Klammern richtig setzt, aber das wird arg unübersichtlich. Mach Programmlogik und Ausgabe nicht gleichzeitig. Zieh erst die 50 ab, dann gib den neuen Stand aus.



  • SeppJ schrieb:

    sLink. schrieb:

    Wenn ich dieses genau so eingebe, dann bleibt er 100 stehen, wenn ich jedoch dann eingebe cout << "Der Konstostand ist " << kontostand-=50 << endl; , dann ist es eine Fehlermeldung. Also, was habe ich falsch gemacht?

    So wild mischen kannst du das nicht. Beziehungsweise doch, wenn du dir Klammern richtig setzt, aber das wird arg unübersichtlich. Mach Programmlogik und Ausgabe nicht gleichzeitig. Zieh erst die 50 ab, dann gib den neuen Stand aus.

    Könntest du mir vielleicht noch einen Beispielcode geben?


  • Mod

    sLink. schrieb:

    Könntest du mir vielleicht noch einen Beispielcode geben?

    Beispiel wozu? Du sollst einfach nur nicht die Zuweisung und die Ausgabe in einer Zeile machen, sondern so wie ich es dir zuerst gezeigt habe.

    Und bitte versuch die Antworten die du schon bekommen hast durchzulesen und durch zu denken.



  • SeppJ schrieb:

    Mach um Zeile 6 herum etwas wie int kontostand = 100; Bei einer richtigen Antwort machst du kontostand += 50; bei einer falschen kontostand -= 50; Den Konstostand kannst du an jeder Stelle mit cout << "Der Konstostand ist " << kontostand << endl; oder ähnlichem ausgeben.

    Das war deine Antwort, über die wir sprechen? Und dann, wie du sagst cout << "Der Konstostand ist " << kontostand << endl; mache ich daraus cout << "Der Konstostand ist " << kontostand=-50 << endl; bei einer falschen Antwort. Oder meinst du gleich unter das int kontostand; , also dann zum Beispiel so:

    int Antwort;
    int kontostand;
    
    if (Antwort=wrong)
    {
    kontostand=-50
    }
    

    also das Ganze oder so Ähnliches ab Zeile 6 einfügen?


  • Mod

    Letzteres.

    Verstehst du eigentlich auch nur irgendetwas von den Anweisungen die du da benutzt? Mir kommt das so vor, als würdest du einfach nur Codefetzen zusammenklicken ohne zu verstehen, was sie machen.



  • SeppJ schrieb:

    Letzteres.

    Verstehst du eigentlich auch nur irgendetwas von den Anweisungen die du da benutzt? Mir kommt das so vor, als würdest du einfach nur Codefetzen zusammenklicken ohne zu verstehen, was sie machen.

    Ja, verstehe ich auf jeden Fall, das Problem ist halt ich kann sie nicht wirklich anwenden. Aber auch dies bessert sich. Es ist halt auch meine erste Programmiersprache, die ich lerne und ich war davor, was das angeht, wirklich blank. Ich lerne aber wie gesagt, so gut und viel ich kann, mache dies ja auch erst seit einer Woche und denke, ich weiß zwar, was sie bringen, aber habe Probleme mit den Klammern, etc, aber wie gesagt, ich hoffe, dass sich das bessert 😉
    PS: Ich habe es jetzt erfolgreich geschafft!;)



  • Wie lernst du denn?

    Hast du ein Buch, ein Schulbuch vielleicht, oder ein Tutorial im Netz ?



  • Hacker schrieb:

    Wie lernst du denn?

    Hast du ein Buch, ein Schulbuch vielleicht, oder ein Tutorial im Netz ?

    Ich lerne mit einem Buch.



  • Na dann können wir nur hoffen, daß dort nicht der Name J.W. vorne drauf steht 😃 Wenn doch: Such dir ein besseres Buch.



  • Wieso !?

    Jürgen Wolf hat gute Bücher geschrieben, ich hab zum Beispiel C++ - von A bis Z.
    Es ist halt nur voll von irgendwelchen Müll, der die Seiten manchmal doppelt solange wie nötig macht...
    aber halt auch nur manchmal



  • Das würde dann wohl erklären, wie man zu solchem Code kommt :D. Ich hab' mich zwar noch nicht ernsthaft mit seinen Büchern beschäftigt, aber hier sind schon genug JW-Opfer gewaltig auf die Nase gefallen und mussten auf den richtigen Weg zurückgeführt werden, weil seine Bücher auf den ersten Blick schön aussehen, aber viele Details fehlerhaft darstellen.



  • Verdammt!
    Das Teil hat mich 40€ gekostet...



  • Ja, ich würde dir auch dringenst zu einem guten Buch raten:
    "Der C++ Programmierer" oder "C++ Primer" und für später dann: "Die C++ Programmiersprache", "Effektiv C++" (die gesamte Reihe davon) und/oder "Exceptional C++" (auch die gesamte Reihe) und wenn du Generetik magst, dann noch "C++ Templates" und/oder "Modern C++ Design".

    Ich habe jedoch nur zwei der sieben aber viele andere Quellen bestätigen meine Liste. Und wenn du eins davon mit Amazon.de bestellst, mache es mit dem Forenlink bei der Büchersektion.



  • Ich habe eines von Arnold Willemer, meiner Meinung nach schreibt er gut, ich denke halt oft zu kompliziert und wie gesagt seit einer Woche jeden Tag ca 20 Minuten lesen und noch 10 Minuten probieren, das Gelernte umzusetzen.


Anmelden zum Antworten