MMORPG Core - Deutsche Community für Online Rollenspiele - Powered by vBulletin

  • AAA
  • Aggressive
  • Alienated
  • Amazed
  • Amused
  • Angelic
  • Angry
  • Apelike
  • Artistic
  • Asleep
  • Balanced
  • Banhappy
  • Bashful
  • Bitchy
  • Blah
  • Bookworm
  • Bored
  • Breezy
  • Brooding
  • Busy
  • Buzzed
  • Chatty
  • Cheeky
  • Cheerful
  • Cloud 9
  • Cold
  • Coldturkey
  • Confused
  • Cool
  • Crappy
  • Creative
  • Curious
  • Cynical
  • Daring
  • Dead
  • Depressed
  • Devilish
  • Disagree
  • Doh
  • Doubtful
  • Dramaqueen
  • Dreaming
  • Drunk
  • Elated
  • Energetic
  • Fiendish
  • Fine
  • Flirty
  • Gloomy
  • Goofy
  • Grumpy
  • Happy
  • Horny
  • Hot
  • Hungover
  • In Love
  • Innocent
  • Inpain
  • Insomnious
  • Inspired
  • Lonely
  • Lucky
  • Lurking
  • Mellow
  • Mischievious
  • Mondayblues
  • Musical
  • Nerdy
  • Notamused
  • Notworthy
  • Paranoid
  • Pensive
  • Predatory
  • Procrastinating
  • Psychedelic
  • Question
  • Relaxed
  • Roflmao
  • Sad
  • Scared
  • Scurvy
  • Shocked
  • Sick
  • Sleepy
  • Sluggish
  • Sneaky
  • Snobbish
  • Spaced
  • Spooky
  • Sporty
  • Starving
  • Stressed
  • Sunshine
  • Sweettooth
  • Thinking
  • Tired
  • Torn
  • Twisted
  • Veggedout
  • Volatile
  • Woot
  • Worried
  • Yeehaw
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • Tweet   
    Ergebnis 1 bis 10 von 10
    1. #1
      Gesperrt
       

      Registriert seit
      Nov 2010
      Ort
      Raum Wuppertal
      Beiträge
      184
      Danke
      21
      Danke erhalten: 29

      Standard Verbesserungen für meinen Code

      Die Werbung stört? Registriere dich hier!
      Hallo lieber M-Core User, ich habe am Samstag angefangen c++ zu lernen mit dem sicher wohl bekannten Buch C++ von A bis Z. Da ich nun heute die
      do...while Schleife im Buch als neues Thema hatte, dachte ich mir, das ich mal einen kleinen Taschenrechner schreibe um die Schleife sozusagen zu üben. Es klappt alles soweit wunderbar, allerdings sagte ein Freund von mir, der schon länger C++ lernt, das der Code noch zu verbessern sei, ich wollte natürlich nicht wissen wie, sondern wo. Allerdings hat er mir natürlich auch dies nicht verraten, da ich allerdings gerne wissen würde wo, damit ich daran arbeiten kann bzw. herausfinden kann was dort zu verbessern ist, dachte ich ich Frage mal hier in meinem neuen Forum nach :)

      Nun nach langer Rede hier noch endlich der Code hehe :
      Code:
      // Rechner by Asura Cryin v1.0.2
      #include <iostream>
      #include <cstdlib>
      using namespace std;
      
      int var, var1, var2;
      
      int main(void) {
        do {
          // Aufforderung zur Wahl der Rechenart
          cout << "\nBitte eine Rechenart waehlen : \n";
          cout << "-1- Addition \n";
          cout << "-2- Subtraktion \n";
          cout << "-3- Multiplikation \n";
          cout << "-4- Division \n";
          cout << "-5- Ende \n";
      
            if( !(cin >> var)) {
              cerr << "Fehler bei der Eingabe ! \n";
              exit(1);
            }
            // Beginn der Rechnungen und so 
            switch (var) {
              case 1 :
                cout << "Sie haben Addition gewaehlt \n";
                cout << "Bitte Zahl eins eingeben : ";
                if( !(cin >> var1)) {
                  cerr << "Fehler bei der Eingabe! ";
                  exit(1);
                }
                  cout << "Bitte Zahl zwei eingeben : ";
                if( !(cin >> var2)) {
                    cerr << "Fehler bei der Eingabe! ";
                    exit(1);
                  }
                cout << var1 << " + " << var2 << " = " << (var1+var2);
                break;
              case 2 :
                cout << "Sie haben Subtraktion gewaehlt \n";
                cout << "Bitte Zahl eins eingeben : ";
                if( !(cin >> var1)) {
                  cerr << "Fehler bei der Eingabe! ";
                  exit(1);
                }
                  cout << "Bitte Zahl zwei eingeben : ";
                if( !(cin >> var2)) {
                    cerr << "Fehler bei der Eingabe! ";
                    exit(1);
                  }
                cout << var1 << " - " << var2 << " = " << (var1-var2);
                break;
              case 3 :
                cout << "Sie haben Multiplikation gewaehlt \n";
                cout << "Bitte Zahl eins eingeben : ";
                if( !(cin >> var1)) {
                  cerr << "Fehler bei der Eingabe! ";
                  exit(1);
                }
                  cout << "Bitte Zahl zwei eingeben : ";
                if( !(cin >> var2)) {
                    cerr << "Fehler bei der Eingabe! ";
                    exit(1);
                  }
                cout << var1 << " * " << var2 << " = " << (var1*var2);
                break;
              case 4 : 
                cout << "Sie haben Division gewaehlt \n";
                cout << "Bitte Zahl eins eingeben : ";
                if( !(cin >> var1)) {
                  cerr << "Fehler bei der Eingabe! ";
                  exit(1);
                }
                  cout << "Bitte Zahl zwei eingeben : ";
                if( !(cin >> var2)) {
                    cerr << "Fehler bei der Eingabe! ";
                    exit(1);
                  }
                cout << var1 << " / " << var2 << " = " << (var1/var2);
                break;
              case 5 :
                cout << "Sie haben Ende gewaehlt \n";
                cout << "Das Programm wird beendet ";
                break;
              default :
                cout << "Fehler bei der Eingabe";
                break;
                }
        } while(var !=5);
        return 0;
      }

    2. #2
      Weiter so!
       

      Registriert seit
      Jan 2010
      Beiträge
      95
      Danke
      6
      Danke erhalten: 3

      Standard

      Ich würde einen anderen Datentypen wählen, da du ja sicherlich weißt, dass integer keine Kommazahlen anzeigen kann. Bsp: 5/6=0

    3. #3
      Core Freak!
       
      Avatar von Sedrika
      Registriert seit
      Aug 2009
      Beiträge
      1,695
      Danke
      240
      Danke erhalten: 628

      Standard

      Ich weis nicht direkt ob C++ es auch hat, doch du könntest dann

      Double nehmen.

    4. #4
      Weiter so!
       

      Registriert seit
      Jul 2010
      Beiträge
      98
      Danke
      2
      Danke erhalten: 18

      Standard

      Oder long double...
      Du willst zu den Pros gehören?
      IRC: Channel: #101, Server: irc.euirc.net

    5. #5
      Gesperrt
       

      Registriert seit
      Nov 2010
      Ort
      Raum Wuppertal
      Beiträge
      184
      Danke
      21
      Danke erhalten: 29

      Standard

      das mit dem Datentyp ist mir bewusst, ich hatte auch eigentlich vor double zu nehmen, kA wieso daraus dann int geworden ist. o: . Ich bedanke mich schon mal für eure Posts, würde mich aber natürlich über weitere Verbesserungsvorschläge freuen (will ja direkt lernen alles anständig und bestmöglich zu lösen ).

      MfG Asura

    6. #6
      Gesperrt
       

      Registriert seit
      Nov 2010
      Ort
      Raum Wuppertal
      Beiträge
      184
      Danke
      21
      Danke erhalten: 29

      Standard

      Hallo, ich meld mich mal wieder haha xP. Nun, ich hab mich dann heute Morgen dann noch einmal dran gesetzt und einen neuen Rechner gecodet(Übung macht ja bekanntlich den Meister ^^). Hab mir natürlich ein, zwei Erweiterungen einfallen lassen ^^ Allerdings macht er nun Zicken bei der Division o.o
      Alles was ich eingebe kommt mit einem total falschen Ergebnis raus, auch die Wiedergabe der Variablen ist falsch. Aber ich weiß nicht wieso.

      Hier einmal der abschnitt :
      Code:
          if (wahl1==1) {
                          cout << "Sie möchten zwei Zahlen dividieren\n";
                          cout << "Bitte Zahl eins eingeben\n";
      
                          if( !(cin >> var)) {
                              cerr << "Error! Fehler bei der Eingabe!\n";
                              break;
                          }
                          cout << "Bitte Zahl zwei eingeben\n";
      
                          if( !(cin >> var)) {
                              cerr << "Error! Fehler bei der Eingabe!\n";
                              break;
                          }
                          cout << var << " / " << var1 << " = " << (var/var1);
                          break;
      könnte es daran liegen das long double nicht dafür geeignet ist?^^ (ich weiß auch das ich keinen Schutz vor 0 Divisionen habe und es dann ''crashd")
      wäre über Hilfe erfreut

      Edit: also ich hab das mal getestet, wenn ich int als Datentyp nutze geht es, mit long double allerdings nicht.
      Woran liegt das? Würde mich mal interessieren :O

    7. #7
      Sir_Hans
      Gast
       

      Standard

      wo hast du denn var1 definier? ich seh nur 2 mal

      if( !(cin >> var))

    8. #8
      Gesperrt
       

      Registriert seit
      Nov 2010
      Ort
      Raum Wuppertal
      Beiträge
      184
      Danke
      21
      Danke erhalten: 29

      Standard

      Haha. Ja, du hast recht, manchmal sieht man den Wald vor lauter Bäumen nicht ^^
      Geändert von Asura-Cryin (12.11.10 um 21:45 Uhr) Grund: Ausdruck/Rechtschreibung =<

    9. #9
      Neuling
       
      Avatar von LeaKs
      Registriert seit
      Jan 2011
      Beiträge
      15
      Danke
      0
      Danke erhalten: 0

      Standard

      du könntest mal den datentyp float benutzen.

      Code:
      if( !(cin >> var) && var = 0)

    10. #10
      Delphi
       
      Avatar von ichbinniemand
      Registriert seit
      Jul 2009
      Beiträge
      966
      Danke
      24
      Danke erhalten: 164

      Standard

      Float ist ungenau double ist denke ich schon der richtige datentyp
      Du konntest anstatt bei jeder Aufgabe die zahlen einlesen konntest du dies schon vor dem Switch Case machen somit sparst du Code

      so würde das dann aussehen
      Code:
      cout << "[1]Addition \n" << "[2]Subtraktion\n" << "[3]Multiplikation\n" << "[4]Division\n";
      	int select;
      	if (!(cin >> select)) {cerr << "Fehler";cin.get();}
      	double in1, in2;
      	cout << "Zahl1 eingeben\n";
      	if (!(cin >> in1)) {cerr << "Fehler";cin.get(); }
      	cout << "Zahl2 eingeben\n";
      	if (!(cin >> in2)) {cerr << "Fehler";cin.get(); }
      	switch (select) {
      		case 1 : cout << (in1+in2) << "\n"; break;
      		case 2 : cout << (in1-in2) << "\n"; break;
      		case 3 : cout << (in1*in2) << "\n"; break;
      		case 4 : cout << (in1/in2) << "\n"; break;
      	}
      Zitat Zitat von Steve Jobs
      Stay hungry - stay foolish.


    Lesezeichen

    Berechtigungen

    • Neue Themen erstellen: Nein
    • Themen beantworten: Nein
    • Anhänge hochladen: Nein
    • Beiträge bearbeiten: Nein
    •