Hallo Leute, Ich müsste in C++ ein Beipielprogramm schreiben, habe auch schon fast alles fertig. Da ich mich aber nur in C# und C "auskenne" weiß ich in c++ nicht weiter. Beim "printf" sollte das Ergebniss der Rechnung ausgegeben werden. Jedoch weiß ich nicht wie man die Ausgabe des Ergebnisses macht, dass der Operator (+, -, *, /) auch korrekt dabei steht. Kennt sich hier jemand aus? Danke :)
Gast
#3195443
Nun ja, dein C++ unterscheidet sich auf den ersten Blick nicht sonderlich von normalem C. Und damit kennst du dich ja aus ;) Printf funktioniert in C++ genauso wie in C. Was also ist jetzt deine Frage? Und was sagt dein Compiler zu deinem Programm? Richtig mögen wird er das wohl nicht, nicht nur wegen der komischen Endung .txt Oliver
Du benutzt für die Ein- und Ausgabe ja größtenteils die Stream-IO von
C++, also die Operatoren >> und <<. Das ist in Ordnung, aber die Streams
heißten nicht scanf und printf, sondern cin und cout. Ersetze also
einfach diese Namen.
Die zig Fehler, die der Compiler dann noch ausgibt, würden fast alle
auch von einem C-Compiler angeprangert. Da du ja C kannst, sollte es dir
deswegen nicht schwer fallen, diese Fehler zu beheben.
Wenn das tut, würde ich noch etwas an der "Usability" optimieren:
- Wäre es nicht schöner,
444 - 333
statt
444 333 2
eingeben zu können, um eine Subtraktion durchzuführen?
- Und was passiert bei einer Division durch Null?
- Was passiert, wenn man einen ungültigen Operator eingibt?
- Wenn man mehrere Rechnungen durchführen möchte, muss man jedesmal das
Programm neu starten :-/
- ...
"printf" und "scanf" kannst du so nicht aufrufen. Lies in deinem C Buch nach. Wenn das Programm im C Syntax läuft, fügst Du die Stream Funktionalität von C++ hinzu. Danach erstelle eine Klasse "Taschenrechner", die dann die einzelnen Methoden - addition, subtraktion, multiplikation und division - beinhaltet, die jetzt einzeln existieren. Anschliessend überlädst Du die Operatoren +, - , *, / mit eben dieser Funktionalität. Die Grundlagen von C++ kannst du in einem Buch nachlesen. z.B. "Der C++ Programmierer" von Ulrich Breymann. Grüsse
Gast
#3196643
Yalu X. schrieb: > Wenn das tut, würde ich noch etwas an der "Usability" optimieren: Die Usability ist wahrscheinlich auf dem Hausaufgabenpapier vorgegeben.
Hmm, kann mir das jemand zeigen wie das dann aussehen sollte? Darin
1 | |
lg :)
Richard Lunz schrieb: > Hmm, > kann mir das jemand zeigen wie das dann aussehen sollte? > > Darin >
1 | |
2 | |
Na ja. Eben entweder als C++ Stream Operationen
1 | |
oder eben auf die C-Tour
1 | |
aber du kannst nicht das eine mit dem anderen mischen. Entweder du benutzt die Stream Operationen, dann heißt der Ausgabestream cout oder eben mit printf und Formatstring. Näheres findest du sicherlich in deinen Lernunterlagen.
Gast
#3198808
> Jedoch weiß ich nicht wie man die Ausgabe des Ergebnisses macht, dass > der Operator (+, -, *, /) auch korrekt dabei steht. > Kennt sich hier jemand aus? http://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Einf%C3%BChrung_in_C%2B%2B/_Ein_Taschenrechner_wird_geboren zu faul "C++ Taschenrechner" in die Suchmaschine einzutippen ... unglaublich.
Hi, ok,
Habe das so weit hinbekommen. Danke
Nur ist jetzt der Fehler:
>"Subtraktion" Bezeichenr wurde nicht gefunden.<
Das gleiche für multiplikation und division.
Woran kann das liegen?
Richard Lunz schrieb: > Woran kann das liegen? Stichwort: "Vorwärtsdeklaration"
Gast
#3200067
Warum funktioniert es den bei der "addition"? So machst Du es auch mit den drei anderen Operationen.
Calculus schrieb: > arum funktioniert es den bei der "addition"? Das frage ich mich auch :)
Karl Heinz Buchegger schrieb: > printf( "%d + %d = %d\n", x, y, z ); ... wobei heute doch %i genommen wird (laut meinem C-Buch)
F. Fo schrieb: > Karl Heinz Buchegger schrieb: >> printf( "%d + %d = %d\n", x, y, z ); > > ... wobei heute doch %i genommen wird (laut meinem C-Buch) für printf sind %d und %i gleich.
Richard Lunz schrieb: > Calculus schrieb: >> arum funktioniert es den bei der "addition"? > > Das frage ich mich auch :) Dann benutze mal in deinem Editor die Funktion 'Finden' und schau dir mal an, wo überall der Text "addition" vorkommt. Spätestens dann müsste es eigentlich klingeln, worin der Unterschied zwischen "addition" und "subtraktion" besteht.
Hi Leute, Funktioniert, danke :)
Gast
#3200802
Hab einen Fehler gefunden!!! Eingabe: 3 4 0 -> Programm Absturz!!! :-P
Calculus schrieb: > -> Programm Absturz Kein Absturtz, die Konsole schließt sich einfach wieder sofort nach Abschluss der Ausgabe. Habe am Schluss noch einmal while(1) { } angehängt, ist zwar nicht elegant aber es funktioniert ;)
So, jetzt hab ichs anstatt mit cin und cout, mit printf und scanf probiert, aber es kommt nur Müll raus. Laut Internet solls so aussehen, als bsp: scanf (“%d“, &i); //scanf wartet auf Zahl läuft aber nicht... Fragezeichen :)
Richard Lunz schrieb: > Calculus schrieb: >> -> Programm Absturz > > Kein Absturtz Doch. Richard Lunz schrieb: > So, jetzt hab ichs anstatt mit cin und cout, mit printf und scanf > probiert, aber es kommt nur Müll raus. Bei mir läuft das so gar nicht erst durch den Compiler. Nachdem ich das hier
1 | |
behoben hab, kommt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
und wenn ich das auch noch behebe, funktioniert es.
ok, und wie schaut der c-code aus wenn es funktioniert?
Gast
#3202377
Da ist die berühmt berüchtigte "Division durch Null"! Diese Grundlage lernt man im Mathematikunterricht. Einfach eine "if" Abfrage in die divisons Funktion einbauen und wenn der zweite Operand "0" ist eine Meldung ausgeben, dass eine Fehleingabe vorliegt. Grundregel: Bei einer Division immer den Divisor auf != 0 prüfen. Sonst stürzt ein Programm unter allen Umständen ab!!!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.