# Array Methoden Aufruf.



## Derenei (12. Jan 2012)

Ich versuche ein Programm zu schrieben wo ein Benutzer die größe eines Arrays bestimmen kann.
Und dann kann der Benutzer den Array wie groß er halt den Array gemacht hat werte zuweißen.
Zum Schluss soll der max eingegebene Wert und der min eingegebene Wert ausgegen werden. Das habe ich auch schon alles ich kann aber die Array Methode nicht aufrufen und finde auch keine Lösung hier mein Programm:

[Java]
 /**
 * Beschreiben Sie hier die Klasse Array_Übung.
 * 
 * @author (A.P) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Array_Übung
{
   public static void main (String[]args)
   {
       Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
       int x = In.readInt ();
       int [] a = new int [x];
       int z = 1;

       for (int i = 0; i < a.length; i++)
       {
            Out.print ("Zahl "+z+":");
            a_ = In.readInt ();
            z++;
       }
       calcMinMax (x, []a//hier liegt mein Problem);
   }

   private static void calcMinMax(int x, int []a)
   {
       int m = 0;
       int max = 0;
       int min = 0;
       for (int i = 0; i < a.length; i++)
       {
           i++;
           m++;
           if (m <= 1)
           {
               max = a;
               min = a;
           }
           if (a > max)
           {
               max = a;
           }
           if (a < min)
           {
               min = a;
           }
       }
       Out.print ("maximum: "+max);
       Out.println ();
       Out.print ("minimum: "+min);
   }
[/Java]

Könntet ihr mir sagen was ich da falsch mache?
Danke im Voraus._


----------



## Camill (12. Jan 2012)

Was bezweckt der Parameter 
	
	
	
	





```
x
```
 in der Methode 
	
	
	
	





```
calcMinMax
```
?

Nach dem Minimum/Maximum suchen kannst du folgendermaßen:
- erstes Element des Arrays als 'min' und 'max' speichern
- innerhalb der for-Schleife jedes weitere Element mit min/max vergleichen


----------



## diggaa1984 (12. Jan 2012)

```
public static void main (String[]args) {
    Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
    int x = In.readInt ();
    int[] a = new int[x];
    //int z = 1;
       
    for (int i = 0; i < a.length; i++) {
        Out.print ("Zahl " + (i+1) + ":");
        a[i] = In.readInt ();
        //z++;
    }
       
    calcMinMax (x, a); //einfach a reinschieben, es ist ja ein int-Array
}
```

das z kannst du weglassen, da in deiner Schleife das i ja auch als Zähler dient.


----------



## Derenei (12. Jan 2012)

x gibt in der main Methode an wie lange der Array ist.


----------



## Kiri (12. Jan 2012)

Derenei hat gesagt.:


> x gibt in der main Methode an wie lange der Array ist.



aber in der 


```
calcMinMax (x, a);
```

ist x unnötig, da die Variable in dieser Methode nicht verwendet wird!


----------



## Derenei (12. Jan 2012)

Danke habs.


----------



## Derenei (12. Jan 2012)

Hab jetzt noch ein Problem jetzt habe ich die Werte max und min in einen Array gespeichert.
Wenn ich jetzt den Array in einem return zurückgeben will steht wenn ich übersetzen drücke incompatible types found int but excepted int. Wiese ich ein int mit einem int nicht kompatibel. Hier mein Quellcode:


[Java]
 /**
 * Beschreiben Sie hier die Klasse Array_Übung.
 * 
 * @author (A.P) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Array_Übung
{
   public static void main (String[]args)
   {
       Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
       int x = In.readInt ();
       int [] a = new int [x];
       int z = 1;

       for (int i = 0; i < a.length; i++)
       {
            Out.print ("Zahl "+z+":");
            a_ = In.readInt ();
            z++;
       }

   }

   private static int calcMinMax1 (int []a)
   {
       int m = 0;
       int max = 0;
       int min = 0;
       for (int i = a.length-1; i >= 0; i--)
       {
           m++;
           if (m <= 1)
           {
               max = a;
               min = a;
           }
           if (a > max)
           {
               max = a;
           }
           if (a < min)
           {
               min = a;
           }
       }
       int [] b = new int [1];
       b [0] = max;
       b [1] = min;
       return b//Hier liegt das Problem;
   }
}
[/Java]_


----------



## Kiri (12. Jan 2012)

das

[JAVA=25]private static int calcMinMax1 (int []a)[/code]

müsste so lauten


```
private static int[] calcMinMax1 (int []a)
```

Denn im ersten Fall wäre der Rückgabewert ein int, im zweiten Fall ein int-Array!


----------



## Gast2 (12. Jan 2012)

da steht doch sicherlich was von "found int[] but expected int".
Du gibst nen int Array zurück, die Methode hat aber einen int als Rückgabewert.


----------



## diggaa1984 (12. Jan 2012)

ausserdem:

```
int [] b = new int [1];
b [0] = max;
b [1] = min;
```

suche den Fehler


----------



## Derenei (12. Jan 2012)

Mein Programm hat jetzt zwar keine Syntax Fehler wenn ich aber jetzt in der Konsole 1 2 3 eingebe wird in der Konsole
max: I@1fa39bb3 ausgegeben bei min: ist es genau sowas ich habe jetzt keine Idee was das jetzt für ein Problem ist.
Hätte wer eine Idee?
Danke für Eure Hilfe

Quellcode:


[Java]
/**
 * Beschreiben Sie hier die Klasse Array_Übung.
 * 
 * @author (A.P) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Array_Übung
{
   public static void main (String[]args)
   {
       Out.print ("Wie viele Werte möchtem Sie im Array speichern: ");
       int x = In.readInt ();
       int [] a = new int [x];
       int z = 1;

       for (int i = 0; i < a.length; i++)
       {
            Out.print ("Wert "+z+":");
            a_ = In.readInt ();
            z++;
       }
       int [] b = calcMinMax (a);
       Out.println ("Maximaler eingegebener Wert: "+calcMinMax (a)+b [0]);
       Out.println ("Minimal eingegebener Wert: "+calcMinMax (a)+b [1]);
   }

   private static int[] calcMinMax (int []a)
   {
       int m = 0;
       int max = 0;
       int min = 0;
       for (int i = a.length-1; i >= 0; i--)
       {
           m++;
           if (m <= 1)
           {
               max = a;
               min = a;
           }
           if (a > max)
           {
               max = a;
           }
           if (a < min)
           {
               min = a;
           }
       }
       int [] b = new int [2];
       b [0] = max;
       b [1] = min;
       return b;
   }
}
[/Java]_


----------



## Gast2 (12. Jan 2012)

```
Out.println ("Maximaler eingegebener Wert: "+calcMinMax (a)+b [0]);
       Out.println ("Minimal eingegebener Wert: "+calcMinMax (a)+b [1]);
```
calcMinMax gibt dir nen Array zurück, dass du ausgeben willst. Warum rufst du die Methode nochmal auf? Hast du doch im Schritt vorher schon gemacht.


----------



## Derenei (12. Jan 2012)

jep jetzt gehts vielen dank.


----------



## Derenei (13. Jan 2012)

Hätte jetzt noch eine Frage habe bis jetzt Methoden mit Arrays mit: z.b private static int[] MaxMin ( []a) aufgerufen, diese hatten aber auch immer einen Rückgabewert. Wollte vorher dieses Methode mit Arrays mit void einfach nur aufrufen ging aber nicht. Geht das überhaupt und wenn ja wie?
Danke im Voraus.


----------



## diggaa1984 (13. Jan 2012)

du meinst ohne rückgabewert oder was genau soll da passieren?!


----------

