C-Uebung

Matrix

String | | Programm

Aufgabe “Matrix”:

a) Schreiben Sie eine Funktion, welche zwei Matrizen A und B der Größe 2×2 miteinander multipliziert.
Die zwei zu multiplizierenden Matrizen sollen als Funktionsparameter übergeben werden, ebenfalls die Ergebnis-Matrix M mittels Call-By-Reference.

$\displaystyle{ M = AB \textrm{ mit } M_{xy} = \sum_{k=0}^1 A_{ky} B_{xk} }$

Der dazugehörige Funktionsprototyp ist:

void multiply(double a[2][2], double b[2][2], // input matrices
              double m[2][2]);                // output matrix

Ergänzen Sie den obigen Funktionsprototyp durch die passende Verwendung des Schlüsselwortes const.

b) Schreiben Sie eine Funktion, welche eine 2×2 Matrix M invertiert und die resultierende Matrix $M^{-1}$ mittels Call-By-Reference zurückgibt.

$\displaystyle{ M = \left( \begin{array}{c c} a & b \\ c & d \end{array} \right) }$
$\displaystyle{ M^{-1} = \left( \begin{array}{c c} a & b \\ c & d \end{array} \right) ^{-1} = \frac{1}{ad - bc} \left( \begin{array}{c c} d & -b \\ -c & a \end{array} \right) }$

c) Schreiben Sie eine Funktion, welche eine 2×2 Matrix formatiert ausgibt.

d) Testen Sie die obigen Funktionen, indem Sie die folgende Matrix mit ihrer Invertierten multiplizieren und ausgeben.

$\displaystyle{ \left( \begin{array}{c c} 0 & -1 \\ 2 & 1 \end{array} \right) \cdot \left( \begin{array}{c c} 0 & -1 \\ 2 & 1 \end{array} \right)^{-1} = \left( \begin{array}{c c} ? & ? \\ ? & ? \end{array} \right) }$

Hinweis: $M_{xy} \equiv m[y][x]$.

String | | Programm

Options: