# Nullstellen-Berechnung



## Dimodie (21. Sep 2011)

Hi 
also ich hätte da ein paar Fragen zu mienem kleinen Projekt, die Fragen betreffen hauptsächlich sachen die ich in meinem Java_-Bucht richtig verstanden habe. Also...

Zu meinem Projekt(chen): Mein Ziel ist ein Programm zu schreiben in dem ich die parameter a, b und c eingeben kann und er mir dann die Nullstellen an dem Graphen ausrechnet. 
Zum Beispiel habe ich die Funktion 4x^2+6x-4, die parameter sind also a=4 b=6 und c=-4 diese werden dann in die Mitternachtformel eingesetzt und es soll dann die Nullstellen angeben. In diesem Fall also x1= -2 und x2 = 0.5.  (Mitternachtsformelm: -b +- Wurzel aus ( b^2 - 4 *a*c) / 2*a).

Nun mien Programm:

```
package Versuche;

public class Mitternachtsformel {
	
	
	public static void main(String[] args) {
		double a = 3000;
		double b = 46850;
		double c = -4;
		System.out.println("Mitternachtsformel für:");
		System.out.println(a + "x^2 + " + b + "x + " + c);
		System.out.println("-----------");
		System.out.println("ÜBERPRÜFUNG");
		System.out.println("-----------");
		double bMinus = b * -1; // -b
		System.out.println("bMinus:" + bMinus);
		double bhZwei = b * b; //b^2
		System.out.println("bhZwei:" + bhZwei);
		double uSqrt = bhZwei - 4 * a * c; // was unter der wurzel steht
		System.out.println("uSqrt:" + uSqrt); 
		double pSqrt = Math.sqrt(uSqrt); // die wurzel wird gezogen
		System.out.println("pSqrt:" + pSqrt);
		double uBruch = 2 * a; // berechnung was unter dem Bruch steht
		System.out.println("uBruch:" + uBruch);
		double ueBruchEins = bMinus + pSqrt; //berechnung was über dem bruch steht 1
		System.out.println("ueBruchEins:" + ueBruchEins);
		double ueBruchZwei = bMinus - pSqrt; //berechnung was über dem bruch steht 2
		System.out.println("ueBruchZwei:" + ueBruchZwei);
		System.out.println("-----------");
		System.out.println("ERGEBNIS");
		System.out.println("-----------");
		double xEins = ueBruchEins / uBruch;// berechnung x1
		System.out.println("x1: " + xEins);
		double xZwei = ueBruchZwei / uBruch; // berrechnung x2
		System.out.println("x2: " + xZwei);
		
		
		
		
	}
		
}
```

Mein programm funktioniert Spitze !

Doch nun zu mienen fragen:

Wie kann ich dieses Programm nun compilieren sodass ich eine datie auf dem desktop hab, dass ich es öffnen kann ?

Wie kann ich einrichten, das ich die parameter a, b und c dann in diesem programm frei wählen  kann also dass ich vorher eine eingabe hab?


Mein Problem ist nur das ich Eingaben vorher in der Schule nur in Greenfoot gemacht hab, was mich jetzt nicht gerade weiter bringt.

Danke für eure Hilfe 

Grüße Vale


----------



## U2nt (22. Sep 2011)

Falls du eclipse benutzt, liegt in deinem Projekt-Ordner ein Ordner bin (binaries), der die kompilierten Klassen deiner Projekte enthält, also bspw. die Mitternachtsformel.class.

Wenn du nicht eclipse benutzt, musst du über das terminal zu dem Pfad deiner Mitternachtsformel.java wechseln, und dort den Befehl "javac Mitternachtsformel.java" aufrufen. Nun solltest du die Mitternachtsformel.class im gleichen Verzeichnis haben.

Um das Programm zu starten, musst du in der Konsole java Dateipfad eingeben. Wenn du also noch im gleichen Verzeichnis bist, geschieht dies über java Mitternachtsformel.
Dafür kann man sich bspw. auch ein .bat- oder .sh-Skript schreiben.


Wenn du Eingaben in der Konsole haben willst, reicht ein Scanner:

```
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
double b = input.nextDouble();
double c = input.nextDouble();
```

Wenn das ganze bisschen "schöner" sein soll, kann man auch ein JOptionPane.showInputDialog anzeigen lassen, den erhaltenen String zum Double parsen (+ ggf. try-catch) und damit weiter rechnen.


----------



## remy (22. Sep 2011)

Entweder auf die harte Tour per Konsole:
Lesson: Packaging Programs in JAR Files (The Java™ Tutorials > Deployment)

Oder du baust dir eine Batch-File (Text-Datei mit dem "java Klasse..."-Befehl und diese in .bat umbenennen).

Oder falls du noch mehr mit Java machen willst, solltest du dir eine entsprechende IDE besorgen (z.B. Eclipse). Da gibt es tolle Menüs, die dir beim Erstellen einer ausführbaren Datei helfen.


Benutzereingaben auf Konsolenbasis:
Scanner (Java 2 Platform SE 5.0)

Edit: da ist heute ständig jemand schneller


----------



## Dimodie (22. Sep 2011)

Also Eclipse habe ich aber wie erstelle ich da ausführbare datei?


----------



## Fu3L (22. Sep 2011)

Du legst ein Projekt an für deinen Rechner. Wenn du da alles drin hast, dann machst du einen Rechtsklick auf den Projektordner und wählst "Export", wählst dort "Runnable Jar File" aus und wählst noch die Main Class und den Ort, wos gespeichert werden soll. Dann "Finish". Dann hast du am angegeben Ort ein jar File, das in den meisten Fällen per Doppelklick ausführbar sien sollte.


----------



## Dimodie (22. Sep 2011)

Ja hab ich so gemacht aber es startet nicht... es kommt nur der ton von windows für ein fehler aber ne fehlermeldung kommt auch nicht


----------



## Dimodie (22. Sep 2011)

ok jetzt kommt keine fehlermeldung mehr auch kein ton aber es startet immer noch nicht


----------



## Fu3L (22. Sep 2011)

Kannst dus an dem Ort, wo es sich befindet per 
	
	
	
	





```
java -jar JarName.jar
```
 starten? (Wobei JarName selbstverständlich zu ersetzen ist^^). Also per .bat-Datei oder über die Konsole. So könnte man die Fehlerquelle eingrenzen.


----------



## Dimodie (22. Sep 2011)

da funktionierts wie mach ich des jetzt in eine bat-datei?


----------



## Fu3L (22. Sep 2011)

Legst ein neues Textdokument an und änderst beim Umbenennen auch die Endung in ".bat". (Wenn die nich bei dir angezeigt werden, kann man das auch beim Speichern mitm Editor festlegen)

Darin schreibst du dann deine(n) Befehl(e), wie du ihn/sie in der Konsole schreiben würdest und legst die .bat-Datei neben die .jar-Datei. Zu der .bat kannst du dann eine Verknüpfung anlegen.


----------



## Dimodie (22. Sep 2011)

danke es funktioniert =)


----------

