============================================ Matrizen und das Full-Storage Speicherformat ============================================ Ziel: Umsetzen von numerischen Algorithmen, die Matrix-Operationen beinhalten. Aufgabe ======= - Eine Funktion `initMatrix` soll eine $m\times n$ Matrix initialisieren, indem die Elemente bei $1$ beginnen zeilenweise und fortlaufend numeriert werden. Beispielsweise für $m=2$ und $n=3$: ---- LATEX ------------------------------------------ \begin{pmatrix} a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ \end{pmatrix} \leftarrow \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} ----------------------------------------------------- - Eine Funktion `printMatrix` soll eine $m\times n$ Matrix ausgeben Dabei soll folgendes berücksichtigt werden: ------------------------------------------- - Die Funktionen erhalten die Matrizen im Full-Storage Format. - Die Funktionalität soll unabhängig davon sein, ob die Matrizen spaltenweise gespeichert sind. - Ein Puffer benutzt werden, der es erlaubt, Matrizen mit maximalen Dimensionen `DIMMAX_M` und `DIMMAX_N` zu speichern. Diese Konstanten sollen durch Macros festgelegt werden. - Der Puffer kann statisch oder dynamisch angelegt werden. Testaufrufe ----------- Alle Testaufrufe sollen zuerst für eine zeilenweise gespeicherte Matrix und dann für eine spaltenweise gespeicherte Matrix erfolgen: - Eine $7 \times 8$ Matrix $A$ initalisieren. - Die Matrix $A$ ausgeben. - Die Matrix $A^T$ ausgeben. - Den benutzten Pufferbereich ausgeben, d.h. die benutzen Werte des Arrays als $1 \times m\cdot n$ Matrix ausgeben. - Die 2-te Zeile ausgeben. - Die 3-te Spalte ausgeben. - Den Block ---- LATEX ------------------------------------------ \left(\begin{array}{ccc} a_{2,4} & a_{2,5} & a_{2,6} \\ a_{3,4} & a_{3,5} & a_{3,6} \end{array}\right) ----------------------------------------------------- ausgeben. :navigate: up -> doc:index next -> doc:session2/page02