Hi !
Bin gerade dabei mir ein Programm zu schreiben, mit dem ich Matrizen addieren und multiplizieren kann.
Jetzt häng ich gerade bei der Addition und komm einfach nicht weiter.
Bei der Methode "addieren" kann er anscheinend die Werte der beiden Matrizen nicht addieren und schreibt mir immer den Fehler : "The type of the expression must be an array type but it resolved to Matrix".
Hab schon gegoogelt ect. ist aber schwer direkt auf mein Problem die richtige Lösung zu finden, da die meisten Leute das Programm ganz anders geschrieben haben :/
Nun bitte ich euch mir zu helfen, bin echt ratlos :bahnhof: .
Hier mein Code bisher:
Liebe Grüße Sassan
Bin gerade dabei mir ein Programm zu schreiben, mit dem ich Matrizen addieren und multiplizieren kann.
Jetzt häng ich gerade bei der Addition und komm einfach nicht weiter.
Bei der Methode "addieren" kann er anscheinend die Werte der beiden Matrizen nicht addieren und schreibt mir immer den Fehler : "The type of the expression must be an array type but it resolved to Matrix".
Hab schon gegoogelt ect. ist aber schwer direkt auf mein Problem die richtige Lösung zu finden, da die meisten Leute das Programm ganz anders geschrieben haben :/
Nun bitte ich euch mir zu helfen, bin echt ratlos :bahnhof: .
Hier mein Code bisher:
Java:
import java.util.Scanner;
public class Matrix {
/** VARIABLEN */
private int zeilen;
private int spalten;
public Scanner scan1 = new Scanner(System.in);
private int[][] matrix;
/** Matrix Konstruktor */
public Matrix (){
}
public Matrix (int aZeilen, int aSpalten){
this.zeilen = aZeilen;
this.spalten = aSpalten;
this.matrix = new int[zeilen][spalten];
}
/** Zeilen + Spalten einlesen */
public void einlesen(){
int e;
int i;
try{
for(e=0; e<spalten; e++){ /** Spalten von 0 bis "spalten" */
i=0;
for(i=0; i<zeilen; i++) { /** Zeilen von 0 bis "zeilen" */
int z= i+1;
int s= e+1;
System.out.println("Bitte geben Sie die " +z+". Zeile und "+s+". Spalte Ihrer Matrix ein:" );
matrix[i][e] = Integer.parseInt(scan1.nextLine()); /** Von Tastatur einlesen + parsen */
}
}
}
/**Format Fehler catchen */
catch(NumberFormatException ex){
System.out.println("FEHLER! Nur Zahlen sind erlaubt !");
}
}
/**Matrix anzeigen */
public void anzeigen(){
System.out.println();
System.out.println("MATRIX :");
System.out.println();
for ( int zeile = 0; zeile < matrix.length; zeile++ )
{
for ( int spalte=0; spalte < matrix[zeile].length; spalte++ )
System.out.print( matrix[zeile][spalte] + " ");
System.out.println();
}
}
/** Matrix addieren */
public Matrix addieren(Matrix a) {
Matrix r = new Matrix(zeilen,spalten); /** Result Matrix */
if((matrix.length==a.zeilen) && (matrix[zeilen].length==a.spalten)) { /** Check ob Matrix Addition möglich */
for(int i = 0; i < matrix.length; i++) { /** Zeilen durchgehen */
for (int e=0; e<matrix[zeilen].length; e++) { /**Spalten durchgehen */
r[i][e] = matrix[i][e] + a[i][e];
}
}
}
else{
System.out.println("Addition nicht möglich!"); /** Wenn Matrix Addition nicht möglich */
}
return r;
}
}
Liebe Grüße Sassan