Komme nicht mehr weiter!

Status
Nicht offen für weitere Antworten.

sandy

Aktives Mitglied
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.

Code:
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]
 
B

Beni

Gast
vielleicht:
Code:
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

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

Code:
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

Top Contributor
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

Top Contributor
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

Aktives Mitglied
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

Top Contributor
überleg doch mal....;)

Code:
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

Aktives Mitglied
vielen dank, für deine Hilfe :D

Ich war schon halber am Verzeifeln. Du bist echt klasse :toll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben