Mathematische Probleme mit if-Befehlen
-
Hallo Leute, ich bin ein absoluter Neuling was C++ anbelangt und wende mich an euch in der Hoffnung dass ihr mir helfen könnt...
Haben drei Matheaufgaben (a,b,c) bekommen, die wir anhand von zwei Veriablen (x,y) berechnen lassen können...
Nun haben wir bei Aufgabe b das Problem, dass hier ein Wurzelausdruck (nicht kleiner Null), ein Logarithmusausdruck (ungleich Null) und ein Nenner (ungleich Null) mit dabei sind... Diese drei Fälle sollen wir nun deklarieren mit if-Befehlen und wenn einer der drei gerade genannten Fälle auftritt, soll eine Fehlermeldung in Form von "Kann nicht gelöst werden" oder so ähnlich an stelle von b ausgespuckt werden.Im Folgenden meine Lösungsidee, die leider nicht funktioniert...
Könnt ihr mir (weiter-)helfen?Die Mathematischen Berechnungen stimmen alle von der Schreibweise...
#include <iostream> #include <cmath> using namespace std; void main() { double a, b, c, x, y; const double PI = 3.14159; cout << "Geben Sie einen Wert fuer x ein: "; cin >> x ; cout << "Geben Sie einen Wert fuer y ein: "; cin >> y; a = (pow((sin(x + PI) + 0.3 * pow(cos(x),2.)),2.)) / (sqrt(pow(x,2.) + pow(y,2.) + 1.0)) + exp(-(x+1.0)); cout << "a = " << a << endl; b = (log(fabs(x - 4.0 + y)) + sqrt(9.0+x)) / (-pow(y,2.) * (x - 2.0)); cout << "b= " << b << endl; if x < -9 then cout << "negativer Ausdruck unter der Klammer -> Aufgabe nicht lösbar" << elseif x - 4 + y = 2 then cout "Logarithmus muss ungleich Null sein -> Aufgabe nicht lösbar" << elseif y = 0 or x = 2 then cout "Null im Nenner ist nicht definiert -> Aufgabe nicht lösbar" << endif c = (((2.0 + x * y) / 3.0)+((2.0/3.0) * x * y - 1.0)) / (4.0 * pow(x,2.) * pow(y,2.) + 2.0); cout << "c= " << c << endl;Hier nochmal der arithmetische Ausdruck von b:
-
"funktioniert nicht" - die konkreteste Problembeschreibung, die das Forum je gesehen hat.
-
SG1 schrieb:
"funktioniert nicht" - die konkreteste Problembeschreibung, die das Forum je gesehen hat.
was willst du mir damit sagen?
-
du sollst konkret sagen, was nicht funktioniert
-
Diese drei Fälle sollen wir nun deklarieren mit if-Befehlen und wenn einer der drei gerade genannten Fälle auftritt, soll eine Fehlermeldung in Form von "Kann nicht gelöst werden" oder so ähnlich an stelle von b ausgespuckt werden.
habe gedacht, das wäre klar... sorry.
Die folgenden drei Zeilen müssten "modifiziert" werden, damit er die Fehlermeldungen ausspuckt.
if x < -9 then cout << "negativer Ausdruck unter der Klammer -> Aufgabe nicht lösbar" << elseif x - 4 + y = 2 then cout "Logarithmus muss ungleich Null sein -> Aufgabe nicht lösbar" << elseif y = 0 or x = 2 then cout "Null im Nenner ist nicht definiert -> Aufgabe nicht lösbar" << endifIm Moment tippt man einen Wert für x und y ein und bekommt einen Wert für a,b und c raus. Wenn jetzt aber einer der oben genannten Fällte eintritt soll dann z.b. dastehen "a = nicht lösbar" oder so ähnlich...
-
Und was funktioniert daran nicht, abgesehen davon, dass das BASIC und kein C++ ist?
-
Probier mal:
if (x < -9) cout << "negativer Ausdruck unter der Klammer -> Aufgabe nicht lösbar"; else if ( (x - 4 + y) == 2) cout << "Logarithmus muss ungleich Null sein -> Aufgabe nicht lösbar"; else if (y == 0 || x == 2) cout << "Null im Nenner ist nicht definiert -> Aufgabe nicht lösbar";mfg Ergar