Unterprogramm Quadratwurzelberechnung

grenzreiter

Mitglied
Hi,

ich versuche mich gerade an Unterprogrammen, und komme jetzt aber nicht weiter. Ich möchte nur, dass nacheinander alle Unterprogramme aufgerufen werden, und so die Quadratwurzel ausgegeben wird. Leider mag Java ncht so wie ich gerne möchte, daher bitte ich um Hilfe:

Java:
import javax.swing.JOptionPane;
public class Quadratzahlenberechnung {

		public static void main(String[] args) {
			System.out.println("Hello");
			Eingabe();
			Verarbeitung();
	}

		public static int Eingabe(){
			int Zahl = Integer.parseInt(JOptionPane.showInputDialog("Bitte geben Sie eine Zahl ein"));
			System.out.println(Zahl);
			return Zahl;
		}
		public static int Verarbeitung(int Zahl){
			int Quadratwurzel = Zahl*Zahl;
			System.out.println(Quadratwurzel);
			return Quadratwurzel;
		}
}

Sobald ich es kompilieren will, kommt folgende Meldung in Eclipse:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method Verarbeitung(int) in the type Quadratzahlenberechnung is not applicable for the arguments ()


Ich glaube ich übersehe bis jetzt eine winzige Kleinigkeit, die den ganzen Code chrashen lässt. Wäre schön, wenn mich jemand in die richtige Richtung stoßen könnte.

Gruß
 

Fab1

Top Contributor
Hi,

wie bereits gesagt fehlt der Parameter beim Aufruf von der Verarbeitung(); Methode.

Java:
public static void main(String[] args) {
            System.out.println("Hello");
            Eingabe();
            Verarbeitung(Hier eine Zahl reinschreiben);
    }

Außerdem sollten Variablen wie Zahl oder Quadratwurzel klein geschrieben werden. Dies dient einfach zur besseren Übersicht, so erkennt man gleich das es eine Variable ist.
 

grenzreiter

Mitglied
Danke, aber wenn ich sage, dass der bei der Verarbeitung mit dem Parameter
Java:
Zahl
aus der Eingabe weiterarbeiten soll, kreidet er mir das auch an. Was mache ich denn bloß falsch? ;(
 

Eldorado

Bekanntes Mitglied
Dann zeig mal wie du es versuchst

Wenn du es direkt mit zahl versuchst - das ist eine lokale variable von Eingabe und kann nicht in die main. Du müsstest dann den Rückgabewert der Eingabe Methode verwenden.
Code:
Verarbeitung(Eingabe());
 

grenzreiter

Mitglied
Oh natürlich, wie dumm von mir :oops:

Java:
import javax.swing.JOptionPane;
public class Quadratzahlenberechnung {

		public static void main(String[] args) {
			System.out.println("Hello");
			Eingabe();
			Verarbeitung(Zahl);
	}

		public static int Eingabe(){
			int Zahl = Integer.parseInt(JOptionPane.showInputDialog("Bitte geben Sie eine Zahl ein"));
			System.out.println(Zahl);
			return Zahl;
		}
		public static int Verarbeitung(int Zahl){
			int Quadratwurzel = Zahl*Zahl;
			System.out.println(Quadratwurzel);
			return Quadratwurzel;
		}
}

So. Jetzt muss er doch, wenn er das Unterprogramm Verarbeitung aufruft, den Wert Zahl mitnehmen und mit dem weiterarbeiten?!
 

langhaar!

Bekanntes Mitglied
Hast du dir schon mal überlegt, wo deine Eingabezahl herkommen soll?
Ich sehe da nichts...

Du könntest die Zeile:

Verarbeitung(Zeile)

z.B. durch

Verarbeitung(15)

ersetzen. Wenn du eine variable Zahl übergeben willst, dann muss die irgendwoher kommen.

Übrigens:
Eine Quadratwurzel ist keine Quadratzahl!
 

Eldorado

Bekanntes Mitglied
Java:
int zahl = Eingabe();
Verarbeitung(zahl);
versuchs mal so


und das ist kein Unterprogramm sondern eine METHODE ! :)
 

Ähnliche Java Themen

Neue Themen


Oben