Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, hab hier eine Übungsaufgabe gelößt, funktioniert auch alles. Allerdings ist mir Wochen später beim Üben und Aufgaben nochmal machen aufgefallen das ein Teil der Aufgabe etwas anders gemeint war.
Die Methode minArray() ermittelt die Position des kleinsten Wertes im Array. Die Methode bestimmtenWert() soll ein Array und einen Index übergeben bekommen. Ich hab es so geschrieben das man das Array und den Index eingibt und dann der Wert an dieser Stelle ausgegeben wird.
Die Methode bestimmtenWert() soll aber den kleinste Wert im Array ausgegeben, also der Wert der im Array steht an der Stelle, die die Methode minArray() zurück gibt.
Hab jetzt lange rumprobiert aber ich bekomme es nicht hin. Könnte mir jemand sagen wie es geht ? ;(
Java:
import javax.swing.JOptionPane;
class Pra4{
//Methode ließt über Fenster 5 Zahlen ein und legt sie in Array ab
static int[] fuelleArray(int array1[]){
String eingabe;
int zahl;
for(int i = 0; i < array1.length; i++){
eingabe = JOptionPane.showInputDialog("Gebe Zahl ein.");
zahl = Integer.parseInt(eingabe);
array1[i] = zahl;
}
return array1;
}
//Methode bekommt Array übergeben, ermittelt kleinsten Wert im Array und gibt
//die Position des kleinsten Wertes im Array zurück
static int minArray(int array1[]){
int min = array1[0];
int index = 0;
for(int i = 1; i < array1.length; i++){
if(min > array1[i]){ // < gibt größten Wert an, > gibt kleinsten Wert an
min = array1[i];
index = i;
}
}
return index;
}
//Methode gibt bestimmten Wert aus Array in Dialogfenster aus, Methode bekommt
//Array und index übergeben. Methode gibt nichts zurück
static void bestimmtenWert(int array1[], int i){
JOptionPane.showMessageDialog(null, i);
}
//Methode Array ausgeben zum Testen
static void arrayAusgeben(int array1[]){
System.out.println("Werte im Array: ");
for(int i = 0; i < array1.length; i++){
System.out.println(array1[i]);
}
}
public static void main(String[] args){
int[] array2 = new int[5];
fuelleArray(array2);
arrayAusgeben(array2);
System.out.println("Kleinster Wert an Stelle: array1["+minArray(array2)+"]");
bestimmtenWert(array2,3);
}
}
Ah ich glaube ich hab es zu unverständlich geschrieben. Einfach nur den kleinsten Wert ausgeben ist nicht mein Problem. Wie dies geht weiß ich.
Java:
static int minArray(int array1[]){
int min = array1[0];
int index = 0;
for(int i = 1; i < array1.length; i++){
if(min > array1[i]){ // < gibt größten Wert an, > gibt kleinsten Wert an
min = array1[i];
index = i;
}
}
return index;
}
Java:
static void bestimmtenWert(int array1[], int i){
JOptionPane.showMessageDialog(null, array1[i]);
}
Java:
bestimmtenWert(array2,3); //Ausgabe wäre die Zahl die an Position 3 steht.
Es soll aber durch die Methode
Java:
bestimmtenWert(array2, XXXXX);
der Wert der kleinsten Zahl ausgegeben werden.Ich muss also irgendwie auf die methode minArray zugreifen. Der Methode muss ein Array übergeben werden und ein Index. z.b. funktioniert
bestimmtenWert(array2, index); nicht weil index natürlich nur in der Methode definiert ist, aber so irgendwie soll es funktionieren.
bestimmtenWert(array2,3); //Ausgabe wäre die Zahl die an Position 3 steht.
Es soll aber durch die Methode
Java:
bestimmtenWert(array2, XXXXX);
der Wert der kleinsten Zahl ausgegeben werden.Ich muss also irgendwie auf die methode minArray zugreifen. Der Methode muss ein Array übergeben werden und ein Index. z.b. funktioniert
Heißt Du willst eine Methode für unterschiedliche Zwecke "missbrauchen"?
Wenn einen Methode
Code:
bestimmtenWert
besser
Code:
gibBestimmtenWert
heißt erwarten man, dass ein bestimmter Wert und nicht der minimale Wert zurückgegeben wird.
Also entweder zwei Methoden, eine für den jeweiligen Zweck oder (der etwas unschönere Weg) Du musst der Methode mittels eines Parameters mitteilen was Du willst (bestimmter Wert oder minimaler Wert) und machst in der Methode eine Fallunterscheidung.