EPROG-LU - Aufgabe 1040 (Matrizenmultiplikation)
1040 |
Matmult |
Matrizenmultiplikation |
Kategorie: | Matrizen |
Klasse: | leicht |
Eingabe: | Integer |
Ausgabe: | Integer |
|
Abzugebende Files: Matmult.txt, Matmult.java |
Kurzbeschreibung:
Zwei quadratische Matrizen sollen multipliziert werden.
Allgemeine Hinweise:
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.5.0) verwenden, können von uns
nicht getestet werden und werden mit 0 Punkten bewertet!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut.
Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation.
Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden
Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenstellung:
Ihr Programm soll zuerst eine Zahl n einlesen, die die Dimension der quadratischen Matrizen angibt. Anschließend sollen die Elemente zweier n*n-Matrizen
eingelesen werden; die beiden Matrizen werden multipliziert und das Produkt
(wieder eine n*n-Matrix) wird ausgegeben.
Für die Multiplikation von Matrizen gilt folgende Formel:
Eingabedaten:
Lesen Sie zuerst die Dimension der Matrizen ein; diese muß > 0 und < 8 sein.
Danach werden die Elemente der Matrizen eingelesen, und zwar in der Reihenfolge a11, a12, ... , a1n, a21, ... , a2n, ... , ann, b11, b12, ... , b1n,
b21, ... , b2n, ... , bnn.
Die einzelnen Elemente der Matrizen sind vom Typ INTEGER.
Ausgabedaten:
Bei korrekten Eingabedaten geben Sie die Elemente der Ergebnismatrix zeilenweise aus, wobei Sie zwei Elemente jeweils durch ein Leerzeichen trennen.
Geben Sie nach jeder Zeile der Matrix einen Zeilenvorschub aus.
Fehlerbehandlung:
Sämtliche Eingabedatensätze sind immer vollständig einzulesen.
Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.
Enthält der Eingabedatensatz einen ungültigen Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.
Sind die Datentypen bei allen Eingaben richtig, die
eingegebenen Daten aber inhaltlich nicht korrekt oder erfüllen nicht die
Bedingungen (z.B. Dimension>7), so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Beispiele:
Eingabedaten
|
3
4 1 2
3 2 1
7 2 6
1 2 3
4 5 6
7 8 9
|
Ausgabedaten
|
22 29 36
18 24 30
57 72 87
|
Testen:
Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und
müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie
bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung
können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei
erzeugen:
java Matmult < Matmult.i1 > Matmult.out1
Das erzeugte File Matmult.out1 können Sie dann mit dem mitgelieferten Outputfile Matmult.o1 vergleichen.