Hallo!
Ich bin ein Neuling in Sachen Java und habe ein Problem mit Exception Handling.
Wir sollen ein Programm zur Matrizenmultiplikation schreiben. Durch Exception Handling soll nun geprüft werden, ob die die Zahl der Spalten des linken Operanden gleich der Zahl der Zeilen des rechten Operanden sind. Ich habe dieses Problem erstmal in einer if-Schleife gelöst, wie ich es aus C gewohnt bin, aber ich habe keine Ahnung wie das mit Exception Handling geht.
Hier mal mein Quellcode von der Matrix Klasse ( Eingabe, Ausgabe und Berechnungsmethode):
und die Klasse Test mit meiner Main:
Muss ich jetzt meine Exceptions in der Test Klasse erstellen oder in meiner Methode multiplizieren bzw wie muss meine eigene Exception Klasse aussehen
Danke im voraus
ZeroM170
Ich bin ein Neuling in Sachen Java und habe ein Problem mit Exception Handling.
Wir sollen ein Programm zur Matrizenmultiplikation schreiben. Durch Exception Handling soll nun geprüft werden, ob die die Zahl der Spalten des linken Operanden gleich der Zahl der Zeilen des rechten Operanden sind. Ich habe dieses Problem erstmal in einer if-Schleife gelöst, wie ich es aus C gewohnt bin, aber ich habe keine Ahnung wie das mit Exception Handling geht.
Hier mal mein Quellcode von der Matrix Klasse ( Eingabe, Ausgabe und Berechnungsmethode):
Code:
import java.io.BufferedReader;
public class Matrix {
public double[][] data;
public Matrix(int m, int n)
{
data = new double[m][n]; // m Zeilen ; n Spalten;
}
public void einlesen(BufferedReader din) throws java.io.IOException {
for (int i = 0; i < data.length; i++)
for (int j = 0; j < data[0].length; j++) {
System.out.print("( " + (i + 1) + ", " + (j + 1) + " ) : ");
data[i][j] = Double.parseDouble(din.readLine());
}
}
public void show() {
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[0].length; j++)
System.out.printf(data[i][j] + "\t");
System.out.println();
}
}
public Matrix multiplizieren(Matrix b) // Matrix A * Matrix B
{
int p = data.length, q = b.data.length, r = b.data[0].length;
Matrix c = new Matrix(p, r);
for (int i = 0; i < p; i++)
for (int j = 0; j < r; j++) {
double sum = 0.0;
for (int k = 0; k < q; k++)
sum += data[i][k] * b.data[k][j];
c.data[i][j] = sum;
}
return c;
}
}
und die Klasse Test mit meiner Main:
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class test {
public static void main(String[] argv) throws java.io.IOException
{
BufferedReader din = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Zeilenanzahl Matrix A " + "eingeben :");
int p = Integer.parseInt(din.readLine());
System.out.println("Spaltenanzahl Matrix A " + "eingeben :");
int q = Integer.parseInt(din.readLine());
System.out.println("Zeilenanzahl Matrix B " + "eingeben :");
int r = Integer.parseInt(din.readLine());
System.out.println("Spaltenanzahl Matrix B " + "eingeben :");
int s = Integer.parseInt(din.readLine());
Matrix a = new Matrix(p, q);
Matrix b = new Matrix(s, r);
if (s != q) // Abfrage ob Multiplikation möglich ist
System.out.println("Spaltenanzahl von Matrix A stimmt nicht mit der Zeilenanzahl von Matrix B überein");
else {
System.out.println("Matrix A eingeben :");
a.einlesen(din);
System.out.println("Matrix B eingeben :");
b.einlesen(din);
Matrix c = a.multiplizieren(b);
System.out.println("Ergebnismatrix " + "C = A * B :");
c.show();
}
}
}
Muss ich jetzt meine Exceptions in der Test Klasse erstellen oder in meiner Methode multiplizieren bzw wie muss meine eigene Exception Klasse aussehen
Danke im voraus
ZeroM170