Gleichungen true/false
-
Hallo ! Ich will mir gerne ein Programm machen das gucken kann ob eine gleichung richtig ist oder nicht ! Mein bisheriger Ansatz ist so :
int main() { ofstream fout( "C:\Text.txt" ); for(double x=-999999;x<999999;x=x+0.1) { for(double y=999999;x>-999999;x=x-0.1) { if((-2*x+5*y=3)==true) { fout << ergebnis; fout << endl; } } } }doch mein Compiler meckert : Fehler 2 error C2106: '=': Linker Operand muss ein L-Wert sein c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\mathe\mathe\main.cpp 14
Was habe ich falsch gemacht ?
-
Der Fehler dürfte hier liegen:
if((-2*x+5*y=3)==true)und sollte wohl so lauten:
if(-2*x+5*y==3)
-
Die Bedingung wird aufgrund der Fliesskomma-Ungenauigkeiten kaum jemals
truesein. Führe Toleranzbereiche um 3 ein.
-
Jo danke ! Mein Programm startet und läuft auch fröhlich durch nur wie du gesagt hast landet es kaum treffer und ist (verhältnismäßig) EXTREM langsam ! Wie führe ich diese Toleranzbereiche ein ? Code :
#include <fstream> using std::ofstream; using std::endl; #include <iostream> using namespace std; int main() { ofstream fout( "C:\Text.txt" ); for(double x=-999999;x<999999;x=x+0.1) { for(double y=999999;y>-999999;y=y-0.1) { cout << "(" << x << "|" << y << ")"; if(-2*x+5*y==3) { fout << "(" << x << "|" << y << ")"; fout << endl; } } } }
-
Oder de multiplizierst einfach alles mit 10. Dann fallen die Kommata ganz weg und du kannst Integers nehmen.
-
Die Toleranzbereiche machst du, indem du jeweils prüfst, ob das Resultat nur um einen kleinen Wert von 3 abweicht.
BruteForce ist meistens sehr langsam. Was willst du mit diesem Code überhaupt bezwecken?
-
ja das merk ich auhc gerade ! Also die aufgabe ist so :
Nenne Zahlenpaare , die Lösung der Gleichung -2x+5y=3 sind.
Damit ist sowas gemeint : (-99|-39).Mir ist klar das man diese Aufgabe auch mit einem hübschen Koordinaten Kreuz lösen könnte aber da ich nciht weis wie man dieses in c++ macht habe ich die try and error methode versucht xD
-
Ich habe es gerade mit Zahlen zwischen -99 und 99 probiert und festgestellt das in meine text.txt nichts geschrieben wird ! Fehler : Cannot create a file when that file already exists. Nachdem löschen der Datei = selber Fehler ?
-
Was soll das für ein Fehler sein? Ist er während der Laufzeit mit einer Popup-Meldung aufgetaucht?
-
Nein ! Die Übersetzung meines Error Codes nach GetLastError()
-
Bin ich dumm ! Ich habs ! (statt C:\.txt hatte ich C:\.txt geschrien) DANKE ! an alle die mir geholfen haben !