Gleichungssystem: Ich habe es probiert!

Status
Nicht offen für weitere Antworten.
A

Andreas D.

Gast
Hi Leute!

Da ihr gesagt hattet, dass ihr keine Hausaufgaben gemacht habe ich mich, da ich heute den ganzen Tag frei hatte, mit unserem JAVA-Lehrburch hingesetzt und mich ein wenig "schlau" gelesen. Nun habe ich versucht, dass Gleichungssystem zu lösen. Bei mir hat es auch einigermaßen geklappt und ich wollte jetzt fragen ob es so richtig ist:

Code:
public class Gleichungssystem {
public static void main(String[] args) {
/* Die benötigten Variablen werden angelegt, dabei benutze ich den Befehl "int". 
Bei Kommazahlen wird der Befehl "double" als Datentyp angewendet. 
Da in der Aufgabe nicht drinstand, dass die Variablen über die Konsole angegeben werden sollen, 
habe ich sie einfach jetzt in diesem Quelltext angelegt! */

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;

// Hier noch einmal die beiden Gleichungen, die gelöst werden sollen:
// int x = (c*e - f*b)/( a*e - d*b );
// int y = (a*f - d*c)/( a*e - d*b );

// Jetzt kommt die Abfrage, ob der Nenner gleich 0 ist. Da er bei beiden Brüchen gleich ist, 
muss nur einmal abgefragt werden.
if((a*e - d*b) == 0){
// Der Nenner ist 0
System.out.println("Das Gleichungssystem wird im Unterricht näher Untersucht.");
}
else{
// Der Nenner ist nicht 0, daher wird nun die Lösung ausgerechnet.
int x = (c*e - f*b)/( a*e - d*b );
int y = (a*f - d*c)/( a*e - d*b );
System.out.println("x= "+ x);
System.out.println("y= "+ y);

/* In diesem Fall habe ich das Programm so geschrieben, dass der Nenner nicht 0 ist, dass also das richtige Ergebniss
 ausgerechnet wird. Wenn man anstatt den oben vorgebenen Variablen, 
also 1,2,3,4,5,6 beispielsweise 0,0,0,0,0,0 eingeben würde, 
würde wie erwartet der Nenner 0 sein und als Ergebniss der Satz "Das Gleichungssystem wird im Unterricht näher Untersucht." folgen. 
Die Variablen können von Ihnen, Herr Drori, beliebig eingesetzt werden.

Mit freundlichen Grüßen,
A.D. */

}
}
}


Dazu vom im vorigen Beitrag nochmals die Aufgabenstellung:

Aufgabe zum Programmieren:

Es soll ein Programm entstehen, dass ein Gleichungssystem mit zwei Gleichungen und zwei Unbekannten löst.
Das Gleichungssystem:

ax + by = c
dx + ey = f

Für unsere Zwecke reicht es auch, wenn wir sofort eine Formel zur Lösung angeben und diese durch ein Programm implementieren.

Die Formel ist:


x = ce - fb y = af - dc
_____ ; ______

ae - db ae - db


Die "_____" sollen Bruchstriche darstellen.


Also muss man abfragen (mit einer if - Anweisung), ob der Nenner in beiden Formeln 0 ist oder nicht.

D.h.: if((ae - db)!=0) usw. ...
Falls die if-Abfrage false ist, also der Nenner ist gleich 0, dann muss man die Meldung: Das Gleichungssystem wird im Unterricht näher Untersucht.

Mit dieser Meldung ist das Gleichungssystem zwar nicht geläst, aber für das Feststellen, ob ihr mit den Abfragen im Programm umgehen könnt oder nicht.

Viel Erfolg beim Programmieren!

[Edit by foobar: Zeilenlaenge angepasst]

Vielen Dank im Vorraus,

A.D.
 

Leroy42

Top Contributor
Es sieht alles gut aus (ich habe die Lösungsformeln allerdings nicht geprüft)

Du darfst aber nicht voraussetzen(*), daß die Lösungen immer ganzzahlig sind

Code:
int x = (c*e - f*b)/( a*e - d*b );
sollte also besser heißen
Code:
double x = (1.0*c*e - f*b)/(1.0*a*e - d*b );

da z.B.
Code:
int z = 1;
int n = 2;
double q = z/n;
als Integer-Berechnung ausgeführt wird und q==0 ergibt.

(*) Voraus wird nur mit einem r geschrieben :wink:
 
B

Beni

Gast
Ich würde anstelle von "int" einfach immer "double" verwenden. Das Ergebnis wird dadurch genauer, und Probleme mit einer Integer-Division hast du dann garantiert nicht.

Falls du von der Konsole was einlesen möchtest:
Code:
import java.util.Scanner;

...

Scanner sc = new Scanner( System.in );
double a = sc.nextDouble();
(P.S. benötigt aber Java 1.5)
 

derDachs

Mitglied
ääääähhhmmmm...

Wenn man ein Gleichungssystem mit mehren unbekannten lösen möchte , hat man mehere unbekannte und das ergebnis ist bekannt..

Ich verstehe auch das ganze hier nicht, was denn für HA ?

Aber auf jedenfall ist das doch komplett der Weg in die falsche Richtung..

Das lösen eine GL-Systems müsste doch so aussehen
x = (c*e - f*b)/( a*e - d*b )
y = (a*f - d*c)/( a*e - d*b )

wobei x und y bekannt... und eher zwei drei der anderen unbekannt....

so ist das kein lösen eines Gleichungssystems, sondern plumpes rechnen mit variablen...
Sind das HA von Klasse 3?? :)

mfG derDachs
 

jagdfalke

Bekanntes Mitglied
derDachs:
Hast du den Thread überhaupt gelesen? Die 2 Zeilen die mit x= bzw y= anfangen sind die Lösungen des Gleichungssystems, welches so aussieht:
ax + by = c
dx + ey = f
Und wenn mich meine trüben Augen nicht trügen kommt da ein x und ein y vor, welche standardmäßig Buchstaben für Variablen sind. Und wenn er in seinem Code schon a, b, c, d, e und f defininert, kannste davon ausgehen.

mfg
jagdfalke
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Lineares Gleichungssystem Java Basics - Anfänger-Themen 5
G Ein Java Programm welches ein lineares Gleichungssystem löst Java Basics - Anfänger-Themen 16
S Gleichungssystem lösen Java Basics - Anfänger-Themen 6
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
E Habe ein Problem Java Basics - Anfänger-Themen 10
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J Java: Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 4
Thallius String und \n. Habe wohl gerade Brett vorm Kopf Java Basics - Anfänger-Themen 13
G Umgebungsvariable Hallo Ich habe ein Problem mit der Umgv Java Basics - Anfänger-Themen 9
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
J Habe problem mit Java Java Basics - Anfänger-Themen 2
S Habe mist gebaut.. ^^ Java Basics - Anfänger-Themen 4
I Habe keine Idee was ich als Anfänger programmieren kann. Java Basics - Anfänger-Themen 4
K Habe ich ein Synchronisationsproblem ? Java Basics - Anfänger-Themen 25
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
E Habe java. Datei wie ausführen ? Java Basics - Anfänger-Themen 9
B Habe einen Fehler Java Basics - Anfänger-Themen 3
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4
U Habe meine .class files gelöscht. Java Basics - Anfänger-Themen 3
S Taschenrechner programmieren und habe null Ahnung Java Basics - Anfänger-Themen 22
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
G habe ein Catch problem Java Basics - Anfänger-Themen 7
X Habe Set, möchte List Java Basics - Anfänger-Themen 3
W Applet starten - ich habe keine ahnung Java Basics - Anfänger-Themen 17
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
K Brauche nur Tipps Leute habe keine plan wie ich dass machen Java Basics - Anfänger-Themen 4
R Habe ein Problem und eine Frage Java Basics - Anfänger-Themen 19
P Habe da ein Problem mit Arrays! Bitte um Hilfe Java Basics - Anfänger-Themen 2
H habe keine main Java Basics - Anfänger-Themen 9
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
ven000m Rauten "Stern" zeichnen, hälfte habe ich zweite? Java Basics - Anfänger-Themen 2
G Habe Fragen zu der Programmierung eines Matheprogramms Java Basics - Anfänger-Themen 5
T HILFE! Ich habe keinen Plan mehr! Java Basics - Anfänger-Themen 16
M Habe ein Problem mit dem Konstruktor!Wer kann helfen? Java Basics - Anfänger-Themen 15
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben