Brauche Hilfe bei Programmierung von Taschenrechner!



  • Ich bin Fachinformatiker im ersten Leerjahr, für die Weihnachtsfeiertage wurden uns (wie auch für die Wochenenden) paar Programmieraufgaben zur Übung angeboten, ich hab mir einen Taschenrechner rausgesucht.

    Aber da sind sehr viele neue Sachen für mich dabei, ich hab es mal so weit gemacht, es funktioniert aber nicht:

    // iostram inkludieren
    #include <iostream>
    
    // namensraum std (standart) verwenden
    using namespace std;
    
    // beginn der main-funktion
    int main()
    {
       // informationen ausgeben mit cout
       cout << "Taschenrechner 1.0 Cooperate Edition" << endl;
       cout << "Was wollen sie tun?! +=1 (weitere optionen werden in späteren versionen der software implementiert!!)" << endl;
    
       // informationen einlesen mit cin
       cin >> was_der_benutzer_tun_will;
    
       // if abfrage!! wahr wenn der benutzer sich für + entschiedenne hat
       if(was_der_benutzer_tun_will = "1")
       {
           // hier muss der additionsfall dann näher behandelt werden
           cout << "noch nicht implementiert!!";
       }
       else // anderenfalls
       {
           // den nutzer auf eine ungültige eingabe hinweisen!!
           cout << "SIE HABEN EINEN SCHWEREN AUSNAHMEFEHLER VERURSACHT!!" << endl;
           cout << "DAS PROGRAMM MUSS BEENDET WERDEN" << endl;
       }
    
       // 0 zurückgeben
       return 0;
    // funktionsblock abschließen
    }
    

    :xmas1:



  • Weihnachtsinformatiker schrieb:

    Ich bin Fachinformatiker im ersten Leerjahr,

    Ja, das scheint wahrhaft ein Leerjahr gewesen zu sein 😃

    cout << "Taschenrechner 1.0 Cooperate Edition" << endl;

    Oha, eine sehr kooperative Software also!

    Naja, was funktioniert denn nicht?
    Und wo hast du überhaupt die Variable "was_der_benutzer_tun_will" definiert?
    Btw., man kann es auch übertreiben mit den sprechenden Bezeichnern.



  • Weihnachtsinformatiker schrieb:

    Ich bin Fachinformatiker im ersten Leerjahr, für die Weihnachtsfeiertage wurden uns (wie auch für die Wochenenden) paar Programmieraufgaben zur Übung angeboten, ich hab mir einen Taschenrechner rausgesucht.

    Aber da sind sehr viele neue Sachen für mich dabei, ich hab es mal so weit gemacht, es funktioniert aber nicht:

    // iostram inkludieren
    #include <iostream>
    
    // namensraum std (stan****) verwenden
    using namespace std;
    
    // beginn der main-funktion
    int main()
    {
       // informationen ausgeben mit cout
       cout << "Taschenrechner 1.0 Cooperate Edition" << endl;
       cout << "Was wollen sie tun?! +=1 (weitere optionen werden in späteren versionen der software implementiert!!)" << endl;
    
       // informationen einlesen mit cin
       cin >> was_der_benutzer_tun_will;
       
       // if abfrage!! wahr wenn der benutzer sich für + entschiedenne hat
       if(was_der_benutzer_tun_will = "1")
       {
           // hier muss der additionsfall dann näher behandelt werden
           cout << "noch nicht implementiert!!";
       }
       else // anderenfalls
       {
           // den nutzer auf eine ungültige eingabe hinweisen!!
           cout << "SIE HABEN EINEN SCHWEREN AUSNAHMEFEHLER VERURSACHT!!" << endl;
           cout << "DAS PROGRAMM MUSS BEENDET WERDEN" << endl;
       }
    
       // 0 zurückgeben
       return 0;
    // funktionsblock abschließen
    }
    

    :xmas1:

    😃 👍
    Endlich mal ein Pro hier im Forum!!!!!!!ELF :xmas2:



  • was soll das, dass ihr euch darüber lustig macht? jeder fängt mal klein an und ich finds unfair so zu tun als ob ihr das immer schon konntet.

    konstruktiv: sag einfach mal, was nicht funzt, dann kann dir besser weitergeholfen werden 😉



  • Weihnachtsinformatiker schrieb:

    if(was_der_benutzer_tun_will = "1")
    

    das geht leider nicht, ist 'ne zuweisung, kein vergleich. test auf gleichheit geht mit '=='.

    z.b. char...

    if (was_der_benutzer_tun_will == '1')
    

    string (char array)

    if (0 == strcmp(was_der_benutzer_tun_will, "1"))
    

    c++ string klasse mit überladenem operator

    if (was_der_benutzer_tun_will == "1")
    

    usw...
    :xmas2:



  • // den nutzer auf eine ungültige eingabe hinweisen!!
    cout << "SIE HABEN EINEN SCHWEREN AUSNAHMEFEHLER VERURSACHT!!" << endl;
    cout << "DAS PROGRAMM MUSS BEENDET WERDEN" << endl;

    Das ist das beste, das muss ich unbedingt übernehmen 😃

    Ein schwerer Ausnahmefehler, für dass das Programm gleich beendet werden muss, ist also eine falsche Eingabe.

    Wie wäre es mit folgenden Denkanstoss:

    main()
    {
         bool beenden = false;
         do
         {
              std::string eingabe;
              cin >> eingabe;
    
              if ( eingabe == "1" )
              {
                  count << "Bla";
              }
              else if ( eingabe == "ende" ) beenden = true;
         }
         while ( beenden == false );
    
         count << "Tschüs :)";
    }
    

    // iostram inkludieren
    #include <iostream>

    // namensraum std (stan****) verwenden
    using namespace std;

    Die Kommentare sind auch cool. 😃
    "#include <>" das heißt doch schon das man etwas inkludieren will
    "namespace std;" das heißt doch schon das man den namespace std verwenden will
    usw...

    Kommentare setzt man nur dann, wenn der Code nicht von sich aus verständlich ist. Man erklärt aber nicht Dinge, die jemand der C++ kann gleich sieht. Es unterbricht nur den Lesefluß und stört beim Verständnis des Codes.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Du solltest Dich möglichst rasch in die Grundlagen von C++ einarbeiten, damit das alles weniger "komisch" wirkt.

    http://www.volkard.de/Cpp/Tutorial/Grundlagen/index.html
    http://www.cpp-tutor.de/cpp/intro/toc.htm (könnte ab 01.01.2007 verschwinden)
    http://tutorial.schornboeck.net/inhalt.htm
    http://de.geocities.com/throni3/

    #include <iostream> // notwendig für cout, cin, endl usw.
    #include <string>   // notwendig für C++-strings
    #include <conio.h>  // notwendig für getch(), verhindert in Windows das Schließen der Konsole
    using namespace std; // damit nicht std::cout usw. geschrieben werden muss
    
    int main()
    {
       string input; 
       // Informationen ausgeben 
       cout << "Taschenrechner 1.0 Cooperate Edition\n";
       cout << "Was wollen Sie machen?\n";
       cout << "[1] Addition\n";
       cout << "(Weitere Optionen werden in spaeteren Versionen der Software implementiert.)\n" << endl;
    
       // Informationen einlesen 
       cin >> input;
    
       // if Abfrage: wahr, wenn der Benutzer sich für "Addition" entschieden hat
       if(input == "1")
       {
           // TODO: Addition behandeln
           cout << "Addition noch nicht implementiert.";
       }
       else 
       {
           cout << "\nSIE HABEN EINEN SCHWEREN AUSNAHMEFEHLER VERURSACHT!\nDAS PROGRAMM MUSS BEENDET WERDEN" << endl; //Kult!
       }
       getch();
    }//Ende der Funktion main
    

    Hier noch ein weiteres Programm zum Rechnen, diesmal ohne getch(), also mit der komplexeren C++-Lösung:

    #include <iostream>
    #include <cmath>  // notwendig fuer sqrt(...)
    using namespace std;
    
    void wait() //ausführliche Version
    {
        std::cin.clear();
        std::streambuf* pbuf = std::cin.rdbuf();
        std::streamsize size = pbuf->in_avail();
        std::cin.ignore(size);
        std::cin.get();
    }
    
    int main()
    {
     cout << "Berechnung quadratischer Gleichungen vom Typ x*x + p*x + q = 0"
          << endl << endl;
    
     double p, q, x1, x2;
     cout << "Bitte p eingeben: ";
     cin  >> p;
     cout << "Bitte q eingeben: ";
     cin  >> q;
    
     x1 = -p/2 + sqrt( p*p/4.0 - q );
     x2 = -p/2 - sqrt( p*p/4.0 - q );
    
     cout << endl << "x1 = " << x1 << endl << "x2 = " << x2 << endl;
    
     wait();
    }
    


  • Danke für eure wirklich hilfreichen und netten Antworten, Erhad Henkes, ten und gemein! 🙂

    Aber leider bin ich nur ein Troll 👎, hab mich trotzdem über eure Beträge gefreut und mit Sicherheit helfen eure Postings auch noch einigen Nutzern weiter, die wirklich Probleme mit dem Zeug haben. 😉

    Ja, diejenigen, die mich ernst genommen haben, seid jetzt bitte nicht sauer. :xmas1: Ich hab jetzt wieder ein schlechtes Gewissen, wenn ich mir ansehe was für Mühe sich z.B. Erhard mit seinem Betrag gegeben hat, oder wie sich "gemein" gleich für mich eingesetzt hat. 😞

    Aber bei den Code haben die Meisten zumindest schmunzeln können, in dem Sinne fröhliche Weihnachten!! :xmas1: :xmas2:



  • Das sind halt noch keine Protrollerkenner. :p
    Test

    //standart
    


  • Erkenner schrieb:

    Das sind halt noch keine Protrollerkenner. :p
    Test

    //stan****
    

    Der ersetzt standart sogar ganz mit stan****. Ich dachte beim zitieren wär es wieder standart im Nachrichtentext.



  • Eigentlich hätte ich bei dem Thema "Hausaufgaben über Weihnachten" darauf kommen müssen. Ist für mich übrigens keine Arbeit, mache ich gerne. :xmas1:


Anmelden zum Antworten