# Komme nicht mehr weiter!



## sandy (13. Jul 2005)

Hallo Leute, 

Ich habe forgende Aufgabe zu lösen: 

Schreiben sie eine Funktion, die eine Integer Matrix als Eingabe erhält und als Ergebins die Durchschnittswerte der einzelnen Spalten liefert(d.h. einen double-Vektor zum Ergebnis hat). 

bis jezt bin ich soweit und komme nicht mehr weiter. 


```
public static int berech(int [][] matrix)
{
    int erg = 0; 
    
     for (int i = 0; i<=matrix.length-1; i++)    
    {    
         for ( int j = 0; j<=matrix[j].length-1; j++)    
         {    
             erg = ...;

          }    
     }
```



kann mir vielleicht jemand helfen???
    [/code]


----------



## Beni (13. Jul 2005)

vielleicht:

```
erg = erg + matrix[i][j];
```
:wink:

P.S. überprüf mal sehr genau die Abbruchbedingungen deiner beiden Schleifen. Zum einen gibt es den "<" Operator, zum anderen ist die Abbruchbedinung bei Nr. 2 seltsam... (ich sage nur, ArrayIndexOutOfBoundsException :bae: )


----------



## sandy (13. Jul 2005)

nein, geht leider nicht, habe ich schon versucht. 
Ich bin mit dem Code nun soweit: 


```
public class aufg11 
{
	public static int berech (int [][] matrix)
	{
		int erg = 0; 
		
		for (int i = 0; i <= matrix.length-1; i++)
		{
			for (int j = 0; j <= matrix[0].length-1; j++ )
			{
				erg = matrix[i][j]+ matrix [i][j]/3;
				//System.out.println(erg);
			}
		}
		return erg;
	}
	
	public static void main(String[] args)
	{
		aufg11 obj = new aufg11();
				
		double [][] matrix = {{2.0,1.0,3.0},{5.0,8.0,0.0}, {1.0,0.0,0.0}};
		//matrix = new int[2][2];
		
		System.out.println(obj.berech (matrix[2][2]));
		
	
	}
}
```

[/code]


----------



## The_S (13. Jul 2005)

Wie wärs, wenn du das so machst, wie Beni geschrieben hat? Am Ende musst du selbstverständlich noch durch die Anzahl der Felder deiner Matrix teilen! Das sollte dir aber klar sein!

[edit] irgendwie ist dein kompletter Code total wirr ???:L


----------



## mic_checker (13. Jul 2005)

Klassennamen werden groß geschrieben.

wieso übergibst du der methode ein element der matrix ?

Die Methode erwartet eine Matrix als Parameter, wobei du einerseits sagst es ist eine double Matrix...aber in der Methode verwendest du dann eine int-Matrix, was insofern keinen Sinn macht als das du bei der Division durch 3 mit int Probleme kriegst.


----------



## sandy (13. Jul 2005)

mic_checker hat gesagt.:
			
		

> Klassennamen werden groß geschrieben.
> 
> wieso übergibst du der methode ein element der matrix ?
> 
> Die Methode erwartet eine Matrix als Parameter, wobei du einerseits sagst es ist eine double Matrix...aber in der Methode verwendest du dann eine int-Matrix, was insofern keinen Sinn macht als das du bei der Division durch 3 mit int Probleme kriegst.




es muss eine Funktion sein, die eine Integer Matrix als Eingabe erhält und einen double Vektor zum Ergebnis hat, deshalb habe ich im oberen Teil eine int Matrix und im unteren Teil eine double Matrix definiert. 

Ich weiß auch, dass der gesamte Code etwas verwirrend ist.  :cry: 

Wenn du einen anderen Vorschlag hast, wäre ich dir sehr dankbar.  :lol: 


Gruß 

Sandy



[/quote]


----------



## mic_checker (13. Jul 2005)

überleg doch mal....


```
public class MatrixDurch
{
   public double[] berech (int [][] matrix)
   {
   	int hoehe = matrix.length;
	   
      double[] ergebnis = new double[hoehe];

....
      return ergebnis;
   }
   public static void main(String[] args)
   {
      MatrixDurch md = new MatrixDurch();
            
      int [][] matrix = {
      						{2,1,3},
						      {5,8,0}, 
						      {1,0,0}
						      	};
      
      double[] vektor = md.berech(matrix); 

		for(int i = 0;i < vektor.length;i++)
			System.out.println(i+". "+vektor[i]);
      
   
   }
}
```

Das solltest du so verwenden können, jetzt noch entsprechend etwas anpassen , bzw. ausbauen


----------



## sandy (13. Jul 2005)

vielen dank, für deine Hilfe   

Ich war schon halber am Verzeifeln. Du bist echt klasse  :toll:


----------

