Funktionen und Arrays

Hallo, also ich sitzt da jetzt schon eine Woche dran, die Lösung muss bestimmt einfacher, doch ich kann sie einfach nicht sehen. ;(
Aber, ich gebe nicht auf! ich baue jetzt auf euere Tipps ;)

folgendes. ich möchte eine Klasse Start haben. Dort lasse ich durch ein Fensteraufruf 3 Zahlen eingeben a,b,c. Das funktioniert auch. Dann möchte ich eine anderen Klasse aufrufen die aber in einem neuen Package liegt, die heißt Mathehelfer. Im MatheHelfer soll dann die Funtkion mit der Mitternachtsfomel ( sein
x1= (-b + Math.sqrt(Math.pow(b,2)-4*a*c)/ (2*a));
x2= (-b - Math.sqrt(Math.pow(b,2)-4*a*c) / (2*a));

davor soll die Funktion aber testen, ob die Diskriminante, also:

d = (Math.pow(b,2)-4*a*c)

1, 2 oder gar keine Nullstelle hat, denn wenn die Zahl eine negative ist, kann man ja keine Wurzel ziehen also keine Nullstelle. Wenn sie =0 ist dann gibt es eine Doppelnullstelle also nur x1, und wenn sie >0 ist, dann gibt es x1 und x2, also zwei Nullstellen.

Das Ergebnis soll dann natürlich zurück zur Startklasse und ausgegeben werden.

All das soll mit Funktionen, return und Arrays umgesetzt werden.

ich hab es geschafft es anders umzusetzen, doch das ist nicht die Vogabe, jetzt bastel ich schon Tage an dieser Version rum und komm net weiter.. ;( es ist echt zum Heulen.. ich muss irgendwo nen Denkfehler haben. ich poste mal das was ich bis jetzt hab.. kann durch das herumprobieren auch totaler müll sein. Am schwierigsten ist es mit dem Array??

Danke!

Teil 1:
Java:
package aufgabe1;
import aufgabe2.MatheHelfer;
import unidue.ecg.java.ss2010.graphic.io.GraphicIO;

public class Start {

	public static void main(String[] args) {
		eingabe();
}
	public static double a= 0;
	public static double b= 0;
	public static double c= 0;


	public static void eingabe(){
		// Eingabe der 3 Zahlen a,b und c
		a = GraphicIO.readInt("Bitte geben Sie a ein");
		b = GraphicIO.readInt("Bitte geben Sie b ein:");
		c = GraphicIO.readInt("Bitte geben Sie c ein:");

		MatheHelfer.diskriminante(MatheHelfer.m, MatheHelfer.f, MatheHelfer.g );
		

		GraphicIO.print(MatheHelfer.diskriminante(MatheHelfer.m, MatheHelfer.f, MatheHelfer.g ));
		
	}
}

Teil 2

Java:
package aufgabe2;

import aufgabe1.Start;
import unidue.ecg.java.ss2010.graphic.io.GraphicIO;

public class MatheHelfer {
	public static double a= 0;
	public static double b= 0;
	public static double c= 0;
	public static String m = " Die Funktion bestitzt 2 Nullstellen";
	public static String f ="Die Funktion besitzt eine Doppelnullstelle";
	public static String g ="Die Funktion besitzt keine Nullstelle ";
	
	
	// variablen deklarieren
	static double d = (Math.pow(b,2)-4*a*c);
	public static double x1= (-b + Math.sqrt(Math.pow(b,2)-4*a*c)/ (2*a));
	public static double x2= (-b - Math.sqrt(Math.pow(b,2)-4*a*c) / (2*a));


	public static String diskriminante (String m, String f, String g){

	

		if ( Math.signum(d) > 0)  {
			return (m);
		}

		if (Math.signum(d) == 0){

			return (f);
		}

		return (g);
	}

	public static double mitternachtsformel(double x1){

		

		return x1;

	}
	public static double mitternachtsformel2(double x2){


		


		return x2;
	}
}

Wie gesagt, ist alles ein wenig durcheinander.. ich hoffe ihr versteht mich

Hier nochmal das was funktioniert:

Java:
package aufgabe2;
// import der GraphicIO Klasse
hier ist der Import

public class blubi {
// main-Methode zum starten
	public static void main(String[] args) {
		mitternachtsformel();		

	}
// variablen deklarieren
	static int a;
	static int b;
	static int c;
	static double d;
	public static double e;
	static double x1;
	static double x2;

	public static void mitternachtsformel(){
// Eingabe der 3 Zahlen a,b und c
		a = GraphicIO.readInt("Bitte geben Sie a ein");
		b = GraphicIO.readInt("Bitte geben Sie b ein:");
		c = GraphicIO.readInt("Bitte geben Sie c ein:");
		d = Math.sqrt(Math.pow(b,2)-4*a*c); //d als Diskriminante rechnen für die folgende If-Anweisung
		e = (Math.pow(b,2)-4*a*c);

		//Mitternachtsformel-Rechnung
		x1= (-b+ d)/ (2*a);
		x2= (-b-d)/ (2*a);
// If Anweisung bezüglich der Diskriminante, mit Ausgabe des Ergebnises
		if (Math.signum(e)== -1) {
			GraphicIO.print("Keine Nullstellen vorhanden");
		}
		else if (Math.signum(d) == 0)  {
			GraphicIO.print("Doppelnullstelle! " + "Das Ergenbiss ist: x1 =" + x1);
		}
		else if (Math.signum(d) == +1){

			GraphicIO.print("Zwei Nullstellen vorhanden " + "Das Ergenbiss ist: x1 =" + x1 + " x2=" + x2 );
		}

	}
}
 

seakey

Mitglied
Irgendwie ist dein Code etwas sehr durcheinander:
MatheHelfer.diskriminante(MatheHelfer.m, MatheHelfer.f, MatheHelfer.g );
GraphicIO.print(MatheHelfer.diskriminante(MatheHelfer.m, MatheHelfer.f, MatheHelfer.g ));
Das ist z.B. unnötig. Wieso ruft du MatheHelfer.diskriminante(...) zweimal auf?

Mein Vorschlag wäre jetzt auf die Schnelle:

Java:
public class Start {
     public static void main(String[] args) {
          int a = GraphicIO.readInt("Bitte geben Sie a ein");
          int b = GraphicIO.readInt("Bitte geben Sie b ein:");
          int c = GraphicIO.readInt("Bitte geben Sie c ein:");
		
          int anzahlNullstellen = Mathehelfer.diskriminante(a, b, c);
          int[] result = Mathehelfer.mitternachtsformel(a, b, c);

          System.out.println("Die Funktion hat "+anzahlNullstellen+" Nullstellen");
          System.out.println("x1 = "+result[0]);
          System.out.println("x2 = "+result[1]);
     }
}

Java:
public class Mathehelfer {
     public static int diskriminante(int a, int b, int c) {
          //checke Diskriminanten
          //return Anzahl Nullstellen
     }
	
     public static int[] mitternachtsformel(int a, int b, int c) {
          //Mitternachtsformel berechnen und x1, x2 im Array zurückgeben
     }
}
 
Zuletzt bearbeitet:

Blakh

Bekanntes Mitglied
Vorweg:

Du hast schon ein Thread zu dem Thema ....
http://www.java-forum.org/java-basics-anfaenger-themen/100501-not-number.html
....und du solltest besser alle Antworten lesen, bevor du die Sache als gelöst ansiehst. Hab mich irgendwo übergangen gefühlt. Aber ich sehe, dass du das inzwischen behoben hast.


Zu deinem neuen Problem .... Das hier ist schlecht gemacht :

Java:
  // variablen deklarieren
    public static double a= 0;
    public static double b= 0;
    public static double c= 0;

    static double d = (Math.pow(b,2)-4*a*c);
    public static double x1= (-b + Math.sqrt(Math.pow(b,2)-4*a*c)/ (2*a));
    public static double x2= (-b - Math.sqrt(Math.pow(b,2)-4*a*c) / (2*a));

Du setzt in der Klasse nirgends a, b oder c. D.h. x1 und x2, werden immer 0 sein. Ebenso wie d!

Java:
  public static String diskriminante (String m, String f, String g){
 
    
 
        if ( Math.signum(d) > 0)  {
            return (m);
        }
 
        if (Math.signum(d) == 0){
 
            return (f);
        }
 
        return (g);
    }

Wieso verwendest du für das Ergebnis statische Variablen? So belegst du (wenn auch sehr wenig) Speicher, den du eigentlich nicht brauchst. Besser:

Java:
return "Hier ist mein String"

oder eine lokale Variable, welche nach dem Abschluss der Methode wieder freigegeben wird.

Java:
String erg;

if (...)
   erg = "Ergebnis 1;

return erg;

Und dann das hier ...

Java:
public static double mitternachtsformel(double x1){
 
        
 
        return x1;
 
    }
    public static double mitternachtsformel2(double x2){

return x2

Es ist sinnvoller, die Rechnung in der Methode auszuführen, anstatt bei der Initialisierung der Variable. Du kannst hier ein Array mit max. 2 Werten zurückgeben.

Java:
public double[] mitternachtsformel2(double a, double b, double c) {
double x12[] = new double[2];

...
Rechnung
x12[0] = x1;
x12[1] = x2
...

return x12

}

Bennene deine Variablen so, dass schon der Name sagt, um was es sich handelt. Du benutzt bei deiner funktionierenden Lösung z.b. "e", "d" etc. Besser "diskriminante" etc.
irgendwas noch unklar?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Erste Schritte Bisektion mit zwei Funktionen? Java Basics - Anfänger-Themen 1
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
A Variablen Definitionen zu Codes und Funktionen. Java Basics - Anfänger-Themen 3
Z If Funktionen, GUI, Fachklasse Java Basics - Anfänger-Themen 25
H Frage zu Methoden/Funktionen Java Basics - Anfänger-Themen 3
M Vererbung Funktionen in Basisklasse deklarieren Java Basics - Anfänger-Themen 4
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
J Funktionen Java Basics - Anfänger-Themen 9
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
B Funktionen von außen aufrufen Java Basics - Anfänger-Themen 1
M Klassen Funktionen aus anderen Klassen benutzen Java Basics - Anfänger-Themen 3
G funktionen der super-klasse von der super-klasse Java Basics - Anfänger-Themen 6
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
A ganzrationale funktionen auswerten. Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
K Methoden Funktionen und Prozeduren Java Basics - Anfänger-Themen 11
R Rekursionen und Funktionen ... Java Basics - Anfänger-Themen 8
J Funktionen automatisiert aufrufen Java Basics - Anfänger-Themen 5
B Funktionen programmieren, die im Hintergrund aktiv sind Java Basics - Anfänger-Themen 2
O Funktionen dateiübergreifend mit Packages Java Basics - Anfänger-Themen 6
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
M Methoden Funktionen Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
B Ausgabe problem in Funktionen Java Basics - Anfänger-Themen 6
L Hat java keine virtuellen funktionen?? Java Basics - Anfänger-Themen 6
C funktionen nur static? Java Basics - Anfänger-Themen 6
M MouseAdapter - auf Funktionen zugreifen Java Basics - Anfänger-Themen 13
L Funktionen addRow und deleteRow Java Basics - Anfänger-Themen 6
D Mathematische Funktionen Zeichnen Java Basics - Anfänger-Themen 2
D Variableninhalt über mehrere Funktionen ? Java Basics - Anfänger-Themen 3
Out.println Funktionen Java Basics - Anfänger-Themen 7
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
B Mathematische Funktionen Java Basics - Anfänger-Themen 3
D Warum sollte ich bestehende Funktionen "extend"en? Java Basics - Anfänger-Themen 32
M Statische und nicht-statische Funktionen: Desktop.browse(uri); Java Basics - Anfänger-Themen 4
N Funktionen berechnen in Java Java Basics - Anfänger-Themen 18
Kasoki Eigene Funktionen / Commands Java Basics - Anfänger-Themen 14
Q Nach Stringvorgabe bestimmte funktionen ausführen Java Basics - Anfänger-Themen 3
K zwei Funktionen, ein BufferedReader? Java Basics - Anfänger-Themen 8
A Static in Funktionen bringen Java Basics - Anfänger-Themen 7
J Funktionen in Java? Java Basics - Anfänger-Themen 3
A frage zur integration von funktionen anderer klassen Java Basics - Anfänger-Themen 2
T Funktionen Plotter - Klassen/Methoden/Funktionen Java Basics - Anfänger-Themen 13
A ChatGUI: Scrollbar und Funktionen Java Basics - Anfänger-Themen 5
S wann static Funktionen wann nicht Java Basics - Anfänger-Themen 6
W Funktionen mit Default werten Java Basics - Anfänger-Themen 10
G Müssen globale Funktionen immer "static" sein? Java Basics - Anfänger-Themen 13
S Überladen von Funktionen vermeiden Java Basics - Anfänger-Themen 5
B Funktionen ausführen vorm Beenden des Programmes Java Basics - Anfänger-Themen 13
M Mathematische Funktionen zeichnen. Java Basics - Anfänger-Themen 2
A mathematische Funktionen grafisch darstellen Java Basics - Anfänger-Themen 8
G Funktionen? Java Basics - Anfänger-Themen 7
S 2 regex-Funktionen benötigt Java Basics - Anfänger-Themen 4
S anzahl von funktionen Java Basics - Anfänger-Themen 9
B in der .Jar funktionieren nicht alle Funktionen Java Basics - Anfänger-Themen 18
X Threads+Funktionen Java Basics - Anfänger-Themen 6
S Explorer funktionen nachprogrammieren Java Basics - Anfänger-Themen 2
P Rexex - stringtokenizer - String funktionen allgemein Java Basics - Anfänger-Themen 3
G Problem mit nicht statischen Funktionen Java Basics - Anfänger-Themen 7
S Return bei Funktionen Java Basics - Anfänger-Themen 8
ven000m Rekursive Funktionen - Frage Java Basics - Anfänger-Themen 16
D Funktionen/Methoden/Variablen includieren? :) Java Basics - Anfänger-Themen 4
V funktionen/Variablen f. unterschiedliche Klassen definierne? Java Basics - Anfänger-Themen 6
M mehreren klassen die gleichen funktionen bereitstellen? Java Basics - Anfänger-Themen 3
G Über undo, copy, cat, paste, delete Funktionen Java Basics - Anfänger-Themen 3
S Rekursive Funktionen in imperative Funktionen umwandeln Java Basics - Anfänger-Themen 2
Niki_Tesla 2 Fragen / Funktionen? Java Basics - Anfänger-Themen 4
B Code von Java-Funktionen einsehen Java Basics - Anfänger-Themen 2
B Mathematische funktionen Berechnen und ausgeben lassen?WIE? Java Basics - Anfänger-Themen 2
H Parameterübergabe zwischen einzelnen Funktionen Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben