Taschenrecher Code, für Vorstellungsgespräch
-
joho

-
Hey, es wird wohl niemand daran zweifeln, dass wenn du den Job bekommst, 50% des Ruhmes uns gebührt.
Deshalb fände ich es nur fair, wenn wir auch 50% deines zukünftigen Gehaltes bekommen würden.Ich schick dir meine Bankverbindung per PM!

-
xD guta witz

-
Deshalb fände ich es nur fair, wenn wir auch 50% deines zukünftigen Gehaltes bekommen würden.
Mal halblang, selbst der Staat ist nicht so gierig.

-
Erhard Henkes schrieb:
Mal halblang, selbst der Staat ist nicht so gierig.

Der trägt ja auch nichts dazu bei.

@whenyouDIE
Wieso verwirfst du den ganzen Code, den ich mit dir erarbeitet habe?
Und Code::Blocks hab ich dir gegenüber auch schon erwähnt, also nichts hier von wegen davon hab ich noch nichts gehört.
-
initialisier die variablen beim erstellen
-
@ far_away :habe den code nicht verworfen, habe ihn nur überarbeitet und war die auch sehr dankbar deswegen :), hatte mir nur nochmal gedanken darüber gemacht wie ich ihn vll einfacher schreiben könnte, aber trotzdem thx, war nicht böse gemeint
:wie meinst du dass mit dem initialisiern?mfg
whenyou
-
Hi,
Mit dem Intalisieren meint er, das du anstatt direkt am Anfang des Codes sie erst dort anlegst wenn du sie brauchst.
Bsp.:int iName; //blablalba iName = izahl + izahl2;kann man sauberer auch so schreiben:
int IName = izahl + izahl2;MFG ReduX
-
achso k danke, aber noch eine Frage, gibt es vllt einen Befehl um jeweils den Bildschirm löschen zu lassen? da clrscr(); nicht funktioniert in Code::blocks gibt es dafür vll irgendetwas??, da dieses Programm sonst sehr unübersichtlich wird??thx schoma @Redux
PS: Programm wurde wieder überarbeitet, fehler ausgeglichen
mfg whenyou
-
system("cls");
-
sollte reichen schrieb:
system("cls");Funktioniert thx
mfg
whenyou
-
Zeig doch mal deinen jetztigen Code, dann können wir eventuell noch Unschönheiten etc. beseitigen.
-
@Nexus: Der Code wo auf seite 1 steht is der jetzige Code, ich überarbeite immer gleich wenn ich Tipps bekommen habe ;), also so habe ich ihn auch atm auf meinem Rechner (obwohl ich jetzt die Namen der Variablen so lasse)
thx
mfg
whenyou
-
Hallo, ich hab noch ein paar Kleinigkeiten überarbeitet und deinen Code schön eingerückt (das macht einen sauberen Eindruck). Vielleicht noch einige Anmerkungen: Wenn man eine falsche Auswahlzahl (z.B. 7) eingibt, und nachher eine richtige, wird mit dieser bereits weitergerechnet. An sich nicht so schlimm, schau einfach, dass du bei der Vorstellung eine gültige Auswahl triffst

Undgetch()ist veraltet, nimmgetchar(), da brauchst du auch nur den Header <iostream>.#include <iostream> //#include <conio.h> brauchst du gar nicht using namespace std; int main () { float fltNumber=0; float fltResult=0; int intMode=0; bool first=true; cout<<"Willkommen bei meinem Taschenrechner, viel Erfolg beim Rechnen!"; do { if (first==false) { //getch(); würde ich weglassen, da man sonst immer 2 Mal Enter drücken muss system("cls"); cout<<"\n\n------------------"; cout<<"\nErgebnis: "<<fltResult<<"!"; cout<<"\n------------------"; cout<<"\n\n-------------------------------------------------"; cout<<"\nSie koennen nun mit Ihrem Ergebnis weiterrechnen!"; cout<<"\n-------------------------------------------------"; } do { cout<<"\n\n\nWas moechten sie nun tun?"; cout<<"\ndruecken Sie:"; cout<<"\n\n(1) fuer eine Addition"; cout<<"\n(2) fuer eine Subtraktion"; cout<<"\n(3) fuer eine Multiplikation"; cout<<"\n(4) fuer eine Division"; cout<<"\n(5) wenn Sie Ihr Ergebnis auf Null setzten moechten"; cout<<"\n(6) wenn Sie dass Programm beenden wollen"; cout<<"\n\nNach der Zahleneingabe immer Enter druecken!!"; cout<<"\n\nAuswahl: "; cin >>intMode; cout<<"----------"; if (intMode<1||intMode>6) { cout<<"\n\aIhre Eingabe war nicht korrekt, versuchen Sie es erneut!"; cout<<"\n---------------------------------------------------------"; //first=true; das kann man weglassen } if (intMode==5) { fltResult=0; cout<<"\n\n------------------"; cout<<"\nErgebnis: "<<fltResult<<"!"; cout<<"\n------------------"; cout<<"\n\nNun koennen Sie ein neues Ergebnis bestimmen!"; cout<<"\n---------------------------------------------"; first=false; } if (intMode==6) { first=false; } // hier war der If-Block } while (intMode<1||intMode>6); // hier ist er jetzt (+ Abfrage, ob Eingabe nicht 5 oder 6) if (first==true && intMode!=5 && intMode!=6) { cout<<"\n\nBitte tippen Sie nun Ihre erste gewuenschte Zahl ein: "; cin >>fltResult; } if (intMode!=5 && intMode!=6) { cout <<"\nBitte tippen Sie nun Ihre zweite gewuenschte Zahl ein: "; cin >>fltNumber; } switch (intMode) { case 1: fltResult=fltResult+fltNumber; first=false; break; case 2: fltResult=fltResult-fltNumber; first=false; break; case 3: fltResult=fltResult*fltNumber; first=false; break; case 4: if (fltNumber==0) { cout<<"\n\n\aMan darf nicht durch Null teilen!!!"; cout<<"\n-----------------------------------"; first=true; break; } else { fltResult=fltResult/fltNumber; } first=false; break; case 5: fltResult=0; first=true; break; } } while (intMode<=5); cout<<"\nVielen Dank fuer Ihren Besuch!"; system("pause"); // statt getch() //return 0; // muss nicht explizit stehen, main() gibt normalerweise 0 zurück }
-
Nexus schrieb:
Hallo, ich hab noch ein paar Kleinigkeiten überarbeitet und deinen Code schön eingerückt (das macht einen sauberen Eindruck). Vielleicht noch einige Anmerkungen: Wenn man eine falsche Auswahlzahl (z.B. 7) eingibt, und nachher eine richtige, wird mit dieser bereits weitergerechnet. An sich nicht so schlimm, schau einfach, dass du bei der Vorstellung eine gültige Auswahl triffst

Undgetch()ist veraltet, nimmgetchar(), da brauchst du auch nur den Header <iostream>.ok dankeschön, aber ne frage, vll könntest du mir ja helfen, du hast gesagt ich rechne dann mit dem falschen Ergebnis weiter, wie muss man dass umschreiben?, dass das nicht geht?, sehe da grade nicht die stelle wo ich was einfügen müsste um diesen fehler zu beheben
thx!
mfg whenyou
EDIT: OK dass problem liegt bei der IF Schleife
if (intMode<1||intMode>6) { cout<<"\n\aIhre Eingabe war nicht korrekt, versuchen Sie es erneut!"; cout<<"\n---------------------------------------------------------"; first=false; }aber wenn ich first=true; setzte, dann kriege ich wieder 2 zahlen zum weiterrechnen, aber wenn ich schonmal ein ergebnis, hatte dann stimmts ja eigentlich wieder, diees problem tritt ja eigentlich nur am anfang auf oder??
-
Natürlich braucht mein einen Rückgabewert. Deshalb heißt es ja auch int main().

-
Nexus schrieb:
Und
getch()ist veraltet, nimmgetchar(), da brauchst du auch nur den Header <iostream>.Uff, soviel falsches in so einem kleinen Satz. Fakten:
- getch ist eine nicht im Standard enthaltene Funktion aus Borlands conio.h (wahrscheinlich auch bei anderen Compilern/Libraries anzutreffen)
- getchar ist nur bedingt eine Alternative zu getch, da getchar auf dem Standardeingabestrom und getch auf der Tastatur agiert.
- getchar steht in <stdio.h> bzw. <cstdio>
- Die C++-Version von getchar() ist cin.get(), dazu ist <iostream> nötig.
Nichts davon ist veraltet. Man kann höchstens argumentieren, dass man in C++-Programmen zugunsten von iostream auf stdio.h und damit auf getchar verzichten sollte...
-
Tut mir leid, mit dem kenne ich mich auch nicht so gut aus (ich mach Tastatureingaben sonst immer über irgendwelche Grafiklibraries). Aber der <iostream>-Header reicht für
getchar()zumindest...Also, ich hab den Code oben noch einmal editiert. Sonst nimmst du eben trotzdem
getch()aus <conio.h>, oder ebencin.get(). Und was den Fehler betrifft, das habe ich im Code kommentiert.
-
Danke @ Nexus, ein Problem wäre nun aber noch offen.
Nämlich wenn du dass Programm startest, und meinetwegen eine Addition durchführst 1+1 meinetwegen, dann kommt dass Menu wieder du gibst 8 ein(fehlermeldung), dann meinetwegen wieder Addition, und dann musst du wieder 2 neue zahlen eingeben, aber wenns ginge, dass er dann mit dem alten ergebniss weiterrechnet verstehst du?, beim ersten mal passts ja, aber beim 2ten durchlauf zumindest, hoffe du verstehst was ich meine
mfg
whenyouEdit: Dürfte dass Problem gelöst haben, schau ma bitte die if-schleife an wo unten steht
if (first==true&&intMode<1||intMode>6&&first==true) { cout<<"\n\aIhre Eingabe war nicht korrekt, versuchen Sie es erneut!"; cout<<"\n---------------------------------------------------------"; first=true; } else if (first==false&&intMode<1||intMode>6&&first==false) { cout<<"\n\aIhre Eingabe war nicht korrekt, versuchen Sie es erneut!"; cout<<"\n---------------------------------------------------------"; }nur noch eine else if schleife eingefügt, hoffe sowas ist zulässig?
-
Ich denke, du kannst es einfacher machen, indem du
first=true;weglässt (siehe Kommentar im oberen Post). Und stattgetch()kannst du auchsystem("pause")verwenden. Und bevor nun wieder einer kommt mit dem Argument, das sei nicht plattformunabhängig, soll sich dieser mal überlegen, was er mitsystem("cls")macht.Aber berücksichtige doch meine Einrückung, das sieht wirklich sauberer aus.