1: | [mm]//
|
2: | public class ASechsEins {
|
3: |
|
4: | public static void main (String[] args) {
|
5: |
|
6: |
|
7: | // Zeilen- und Spaltenanzahl erster Matrix
|
8: | System.out.println("Geben Sie die Zeilen- und Spaltenanzahl der ersten Matrix ein. \nZeilen: ");
|
9: | int m1Zeilen = EingabeInt();
|
10: | System.out.println("Spalten: ");
|
11: | int m1Spalten = EingabeInt();
|
12: |
|
13: |
|
14: | // Zeilen- und Spaltenanzahl zweiter Matrix
|
15: | System.out.println("Geben Sie die Zeilen- und Spaltenanzahl der zweiten Matrix ein. \nZeilen: ");
|
16: | int m2Zeilen = EingabeInt();
|
17: | System.out.println("Spalten: ");
|
18: | int m2Spalten = EingabeInt();
|
19: |
|
20: |
|
21: |
|
22: | // Initialisierung der Arrays
|
23: | int[][] matrixEins = new int [m1Zeilen][m1Spalten];
|
24: | int[][] matrixZwei = new int [m2Zeilen][m2Spalten];
|
25: |
|
26: |
|
27: |
|
28: | // Eingabe Inhalt der ersten Matrix
|
29: | System.out.println("Geben Sie nacheinander die Werte der ersten Matrix an. Beginnen Sie in der ersten Zeile und Spalte und fuellen zunaechst von links nach rechts, und dann von oben nach unten auf.");
|
30: |
|
31: |
|
32: | for (int i = 0; i < m1Zeilen; i++)
|
33: | for (int k = 0; k < m1Spalten; k++) {
|
34: | int Wert = EingabeInt();
|
35: | matrixEins[i][k] = Wert;
|
36: | }
|
37: |
|
38: |
|
39: |
|
40: | // Eingabe Inhalt der zweiten Matrix
|
41: | System.out.println("Fuellen Sie nun die zweite Matrix auf.");
|
42: | for (int i = 0; i < m2Zeilen; i++)
|
43: | for (int k = 0; k < m2Spalten; k++) {
|
44: | int Wert = EingabeInt();
|
45: | matrixZwei[i][k] = Wert;
|
46: | }
|
47: |
|
48: |
|
49: |
|
50: | // Ausgabe der ersten Matrix
|
51: | System.out.println("Somit sieht die erste Matrix folgendermassen aus.");
|
52: | for (int k = 0; k < matrixEins.length; k++) {
|
53: | for (int l = 0; l < matrixEins[k].length; l++) {
|
54: | System.out.print(matrixEins[k][l] + "\t");
|
55: | }
|
56: | System.out.println("");
|
57: | }
|
58: |
|
59: |
|
60: |
|
61: | // Ausgabe der zweiten Matrix
|
62: | System.out.println("Und die zweite so: ");
|
63: | for (int k = 0; k < matrixZwei.length; k++) {
|
64: | for (int l = 0; l < matrixZwei[k].length; l++) {
|
65: | System.out.print(matrixZwei[k][l] + "\t");
|
66: | }
|
67: | System.out.println("");
|
68: | }
|
69: |
|
70: |
|
71: |
|
72: | // Matrixaddition
|
73: |
|
74: | System.out.println("Fuer die Addition ergibt sich folgende Matrix");
|
75: | if(m1Zeilen == m2Zeilen && m1Spalten == m2Spalten) {
|
76: | int Addition [][] = new int [m1Zeilen][m1Spalten];
|
77: |
|
78: | for(int i=0; i <m1Zeilen; i++) {
|
79: | for(int j=0; j< m1Spalten; j++) {
|
80: | Addition[i][j] = matrixEins[i][j] + matrixZwei[i][j];
|
81: | System.out.print("\t" + Addition[i][j]);
|
82: | }
|
83: | System.out.println("\t");
|
84: | }
|
85: | }
|
86: |
|
87: | else
|
88: | System.out.println("Die beiden Matrizen haben nicht die gleiche Spalten- und Zeilenanzahl. Daher ist eine Addition nicht moeglich!");
|
89: |
|
90: |
|
91: |
|
92: | // Matrixmultiplikation
|
93: |
|
94: |
|
95: | System.out.println("Fuer die Multiplikation ergibt sich folgende Matrix");
|
96: | if (m1Spalten == m2Zeilen) {
|
97: | int Multiplikation[][] = new int[m1Zeilen][m2Spalten];
|
98: |
|
99: | for(int i=0; i< m1Zeilen; i++){
|
100: | for(int j=0; j< m2Spalten; j++){
|
101: | Multiplikation[i][j] = 0;
|
102: |
|
103: | for(int k=0; k< m2Zeilen; k++)
|
104: | Multiplikation[i][j] = Multiplikation[i][j]+matrixEins[i][k]*matrixZwei[k][j];
|
105: |
|
106: | System.out.print("\t"+ Multiplikation[i][j]);
|
107: | }
|
108: | System.out.println("\t");
|
109: | }
|
110: | }
|
111: |
|
112: | else
|
113: |
|
114: |
|
115: | System.out.println("Die Spaltenanzahl der ersten Matrix entspricht nicht der Zeilenanzahl der zweiten. Daher ist eine Multiplikation nicht moeglich!");
|
116: |
|
117: |
|
118: | }
|
119: | public static int EingabeInt()
|
120: | {
|
121: | java.util.Scanner scanner = new java.util.Scanner(System.in);
|
122: | return scanner.nextInt();
|
123: | }
|
124: | }
|
125: |
|
126: | [/mm] |