Problem mit Taschenrechnerscript
-
AA!!! Oha! jo das hab ich voll übersehen
naja heute ist net mein Tag. Danke !! 
-
Ich habe das Script bearbeitet, sodass man jetzt mit int &Loesung1 die Lösungen 1,2,3,4 (für +-*/) definiert und somit eine Weitere Zahl ausrechnen kann:
#include <iostream> #include <conio.h> #include <windows.h> using namespace std; void wait() { FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); getch(); } int main() { int Zahl1; int Zahl2; int Zahl3; char Zeichen1; char Zeichen2; cout << "***** (C) TASCHENRECHNER V.1.0 VON DARTHSHOOT (C) *****\n\n"; cout << "Bitte gebe hier die erste Zahl ein: "; cin >> Zahl1; cout << "Und jetzt + oder - oder * oder : ----> "; cin >> Zeichen1; cout << "Jetzt noch eine Zahl: "; cin >> Zahl2; if( Zeichen1 == '+' ) { int Ergebnis = Zahl1 + Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } if( Zeichen1 == '-' ) { int Ergebnis2 = Zahl1 - Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis2 << "\n"; } if( Zeichen1 == '*' ) { int Ergebnis3 = Zahl1 * Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis3 << "\n"; } if( Zeichen1 == ':' ) { int Ergebnis4 = Zahl1 / Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis4 << "\n"; } int &Loesung1 = Ergebnis, Ergebnis2, Ergebnis3, Ergebnis4; cout << "Und jetzt + oder - oder * oder : ----> "; cin >> Zeichen2; cout << "Jetzt noch eine Zahl: "; cin >> Zahl3; if( Zeichen2 == '+' ) { int Ergebnisb = Loesung1 + Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb << "\n"; } if( Zeichen2 == '-' ) { int Ergebnisb2 = Loesung1 - Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb2 << "\n"; } if( Zeichen2 == '*' ) { int Ergebnisb3 = Loesung1 * Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb3 << "\n"; } if( Zeichen2 == ':' ) { int Ergebnisb4 = Loesung1 / Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb4 << "\n"; } wait(); return 0; }Es gibt allerdings einen Fehler beim compilen:
C:\Dokumente und Einstellungen\Stefan.R2D2-H7ZO0HWXWM\Desktop\taschenrechner\Rechner.cpp(56) : error C2065: 'Ergebnis' : undeclared identifier
Error executing cl.exe.Hmm wenn ERGEBNIS nicht identifiered wäre, dann würde ja auch die vorherige Version nicht klappen oder? aaa.. Ich weiß nicht mehr weiter

P.S. Bitte net böse sein, wenn ich dafür kein neues Thread nehme. Ich bin es gewohnt mit dem erstellen von Threads sparsam zu sein und da es sich hierbei noch um ein und das selbe Script handelt. Wenn ihr aber meint, dass ich auch für solche Fälle ein neues Thread öffnen sollte, dann werde ich das natürlich in Zukunft immer machen ^^
MfG Darthshoot!
-
Nene, lass mal schön in einem Thread. Ansonsten gibt das ne regelrechte Flut.
Zu deinem Problem: Du deklarierst Ergebnis in einem if-Block, d. h. die Variable existiert auch nur in diesem Block. Schreib stattdessen vor den ersten if-Block ein
int Ergebnis;[Edit]
int &Loesung1 = Ergebnis, Ergebnis2, Ergebnis3, Ergebnis4;
Das macht bestimmt nicht das, was du möchtest. Lass solche Konstruktionen und benutz eine Variable fürs Ergebnis.
-
Jo es geht danke!

Jetzt kommt schon das nächste Problem und zwar ist Ergebnis2,3,4 redefiniert oder so und das liegt an diesem Befehl:int &Loesung1 = Ergebnis, ERGEBNIS2, ERGEBNIS3, ERGEBNIS4;
Ich müsste also 4 Lösungen erstellen.. Gibts noch ne Möglichkeit das in etwa so zusammen zu fassen wie ich es da oben gemacht habe?
-
Sag mal, ist das so schwer? Du hast exakt eine Variable für das Ergebnis. Die definierst du nach der User-Eingabe und die restlichen Ergebnis-Variablen fliegen komplett raus.
-
Hmmm für mich Newbie schon

Ich weiß was du meinst, weiß aber nicht wie ich mein Programm wissen lassen soll, dass er alsint &Loesung1 = DIELOESUNGDIEBENUTZTWURDE
machen soll.
Es gibt ja 4 Lösungen für + - * /
-
machs so:
#include <iostream> #include <conio.h> #include <windows.h> using namespace std; void wait() { FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); getch(); } int main() { int Zahl1; int Zahl2; int Zahl3; char Zeichen1; char Zeichen2; int Ergebnis; cout << "***** (C) TASCHENRECHNER V.1.0 VON DARTHSHOOT (C) *****\n\n"; cout << "Bitte gebe hier die erste Zahl ein: "; cin >> Zahl1; cout << "Und jetzt + oder - oder * oder : ----> "; cin >> Zeichen1; cout << "Jetzt noch eine Zahl: "; cin >> Zahl2; if( Zeichen1 == '+' ) { Ergebnis = Zahl1 + Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } if( Zeichen1 == '-' ) { Ergebnis = Zahl1 - Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } if( Zeichen1 == '*' ) { Ergebnis = Zahl1 * Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } if( Zeichen1 == ':' ) { Ergebnis = Zahl1 / Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } int &Loesung1 = Ergebnis; cout << "Und jetzt + oder - oder * oder : ----> "; cin >> Zeichen2; cout << "Jetzt noch eine Zahl: "; cin >> Zahl3; if( Zeichen2 == '+' ) { int Ergebnisb = Loesung1 + Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb << "\n"; } if( Zeichen2 == '-' ) { int Ergebnisb2 = Loesung1 - Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb2 << "\n"; } if( Zeichen2 == '*' ) { int Ergebnisb3 = Loesung1 * Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb3 << "\n"; } if( Zeichen2 == ':' ) { int Ergebnisb4 = Loesung1 / Zahl3; cout << "Das Ergebnis lautet: " << Ergebnisb4 << "\n"; } wait(); return 0; }
-
Darthshoot2
schrieb:Es gibt ja 4 Lösungen für + - * /
Ja abe niemals gleichzeitig.
Kurt
-
Es geht um den Code:
if( Zeichen1 == '+' ) { int Ergebnis = Zahl1 + Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n"; } if( Zeichen1 == '-' ) { int Ergebnis2 = Zahl1 - Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis2 << "\n"; } if( Zeichen1 == '*' ) { int Ergebnis3 = Zahl1 * Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis3 << "\n"; } if( Zeichen1 == ':' ) { int Ergebnis4 = Zahl1 / Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis4 << "\n"; }Kürz den doch einfach so, mit einer einzigen Ergebnis-Variable (wie deutlich kann mans eigentlich noch machen?):
int Ergebnis; if( Zeichen1 == '+' ) Ergebnis = Zahl1 + Zahl2; if( Zeichen1 == '-' ) Ergebnis = Zahl1 - Zahl2; if( Zeichen1 == '*' ) Ergebnis = Zahl1 * Zahl2; if( Zeichen1 == ':' ) Ergebnis = Zahl1 / Zahl2; cout << "Das Ergebnis lautet: " << Ergebnis << "\n";
-
Asooooo jo danke xD dann hatte ich den Michael wohl doch falsch verstanden..
-
#dragon90: Die Hälfte der Grausamkeiten ist bei dir ja noch drin, z. B.
int &Loesung1 = Ergebnis;sowie Ergebnisb, Ergebnisb2 etc.
Nur so als Hinweis: Folgendes ist auch erlaubt:
Ergebnis = Ergebnis * Zahl3;