G
Guest
Gast
Hey ihr,
also ich möche gleich vorn weg sagen, dass ich ein ziemlicher Neuanfänger in Java bin. Also habt bitte Nachsicht mit mir
Ich soll ein Programm schreiben, in dem man eine quadratische Gleichung ausrechnen kann. Das heißt die Aufgabe lautet ganz normal ax²+bx+c=0. Ich muss es realisieren, dass die Aufgabe am Anfang angezeigt wird, so dass der Benutzer weiß worum es sich handelt. Danach sollen die eingegeben Variabeln, also die Gleichung, ausgerechnet werden. Dabei soll beachtet werden, dass falls die Gleichung eine reelle Lösung hat, sie mit einer Genauigkeit von 8 Stellen hinter dem Komma ausgegeben wird. Falls keine reelle Lösungen vorhanden sind, soll ein Hinweis erscheinen.
Okay, aber gleich vor weg. Ich möchte nicht, dass das hier rüberkommt, als würde ich nun auf eine Lösung warten. Ich würde das gerne verstehen und lernen. Mein Problem ist leider nur, das ich mit den verschiedenen programmierstilen noch nicht klar komme. Wir sollen nicht prozedural programmieren, sondern eben objektorientiert. Also nicht alles in eine Main-Klasse schreiben.
Ich habe mir das so vorgestellt:
Für MeineAusgabe habe ich eine extra Klasse in der nur System.out.Println() steht. Wir können das direkt schreiben, aber haben angefangen es erst einmal in einer solchen Klasse zu lassen.
Außerdem gibt es eine Klasse MeineEingabe die ich von meiner letzten Aufgabe habe. Dort kann ich alles nachvollziehen..bis auf den letzten Teil (vielleicht könntet ihr mir sagen wieso der so geschrieben ist, die Kommentare sind von mir...und an ihnen wurde nicht gemeckert bei der letzten Aufgabe) [das DecimalFormat habe ich selbst auf 8 Stellen hinter dem Komma gesetzt. Ist das so richtig?]
MeineEingabe:
Dann gibt es noch eine MainKlasse die bei mir GleichungsRechnerMain heißt:
Ich hoffe der Code ist sichtbar
Ich würde mich sehr über etwas Unterstützung freuen. Mit einer anderen Programmierschreibweise tu ich mich noch sehr schwer und ich hoffe, dass das nun nicht zu viel war. Falls mir jemand helfen möchte, würde ich mich sehr freuen. Ich mag das alles lernen :###
Viele Grüße und danke sehr![/code]
also ich möche gleich vorn weg sagen, dass ich ein ziemlicher Neuanfänger in Java bin. Also habt bitte Nachsicht mit mir
Okay, aber gleich vor weg. Ich möchte nicht, dass das hier rüberkommt, als würde ich nun auf eine Lösung warten. Ich würde das gerne verstehen und lernen. Mein Problem ist leider nur, das ich mit den verschiedenen programmierstilen noch nicht klar komme. Wir sollen nicht prozedural programmieren, sondern eben objektorientiert. Also nicht alles in eine Main-Klasse schreiben.
Ich habe mir das so vorgestellt:
Code:
public class GleichungRechner
{
//Meine Attribute
private double a = 0;
private double b = 0;
private double c = 0;
private double x = 0;
//Mein Konstruktor
public GleichungRechner() throws IOException
{
erfasseA();
erfasseB();
erfasseC();
berechneX();
}
//Hier folgen die Methoden
private void erfasseA() throws IOException
{
MeineAusgabe.schreibe("Geben Sie bitte die Variable a ein: /n");
a = MeineEingabe.erfasseDouble();
}
private void erfasseB() throws IOException
{
MeineAusgabe.schreibe("Geben Sie bitte die Variable b ein: /n");
b = MeineEingabe.erfasseDouble();
}
private void erfasseC() throws IOException
{
MeineAusgabe.schreibe("Geben Sie bitte die Variable c ein: /n");
c = MeineEingabe.erfasseDouble();
}
//Hier würde ich mit der Rechung beginnen...weiß nur nicht wie ich sie realisieren muss bezüglich des Quadrates und der Wurzelrechnung. Also eine Funktion BerechneX() habe ich mir gedacht?
}
Für MeineAusgabe habe ich eine extra Klasse in der nur System.out.Println() steht. Wir können das direkt schreiben, aber haben angefangen es erst einmal in einer solchen Klasse zu lassen.
Außerdem gibt es eine Klasse MeineEingabe die ich von meiner letzten Aufgabe habe. Dort kann ich alles nachvollziehen..bis auf den letzten Teil (vielleicht könntet ihr mir sagen wieso der so geschrieben ist, die Kommentare sind von mir...und an ihnen wurde nicht gemeckert bei der letzten Aufgabe) [das DecimalFormat habe ich selbst auf 8 Stellen hinter dem Komma gesetzt. Ist das so richtig?]
MeineEingabe:
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.text.DecimalFormat;
/**Ermoeglicht die Eingabe von Text oder Ziffern ueber die Tastatur.
*/
public class MeineEingabe
{
/**Erfasst die Eingabe eines Textes mit Hilfe der Tastatur.
*/
private static BufferedReader eingabe =
new BufferedReader(new InputStreamReader(System.in));
/**Erfasst den ueber die Tastatur eingegebenen Text.
* @return Erfasst den ueber die Tastatur eingegebenen Text.
*/
public static String erfasseText() throws IOException
{
return eingabe.readLine();
}
/**Erfasst die ueber die Tastatur eingegebene Zahl.
* @return Erfasst die ueber die Tastatur eingegebene Zahl.
*/
public static int erfasseInt() throws IOException
{
return Integer.parseInt(erfasseText());
}
/**Erfasst die ueber die Tastatur eingegebene Zahl.
* @return Erfasst die ueber die Tastatur eingegebene Zahl.
*/
public static double erfasseDouble() throws IOException
{
return Double.parseDouble(erfasseText());
}
/**Wandelt die Zahl in eine neue Gleitkommazahl um und rundet diese.
* @param zahl Ist die Zahl die gerundet werden soll.
* @param stellen Ist die Anzahl der Stellen hinter dem Komma.
* @return liefert die Gleitkommazahl.
*/
public static String runde(double zahl, int stellen) throws IOException
{
String dformat = "0.";
for (int i = 0; i < stellen; i++)
dformat += "0.00000000";
DecimalFormat deciformat = new DecimalFormat(dformat);
return deciformat.format(zahl);
}
}
Dann gibt es noch eine MainKlasse die bei mir GleichungsRechnerMain heißt:
Code:
import java.io.IOException;
public class GleichungRechnerMain
{
/**Startet den TemperaturUmrechner
*/
public static void main(String[] args) throws IOException
{
GleichungRechner rechner = new GleichungRechner();
}
}
Ich hoffe der Code ist sichtbar
Viele Grüße und danke sehr![/code]