Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Matrizenmultiplikation: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „= Aufgabe = Schreibe eine Funktion <tt>mult</tt> die zwei beliebig große (aber zueinander passende) Matrizen miteinander mulipliziert.<br> Der Prototyp der Funk...“)
 
 
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Aufgabe =
 
= Aufgabe =
  
Schreibe eine Funktion <tt>mult</tt> die zwei beliebig große (aber zueinander passende) Matrizen miteinander mulipliziert.<br>
+
Schreibe eine Funktion <tt>mult</tt> die zwei beliebig große (aber zueinander passende) [http://en.wikipedia.org/wiki/Matrix_multiplication Matrizen miteinander mulipliziert].<br>
 
Der Prototyp der Funktion <tt>mult</tt> soll sein:
 
Der Prototyp der Funktion <tt>mult</tt> soll sein:
  
Zeile 28: Zeile 28:
 
  int * const result[] = {c0, c1, c2};
 
  int * const result[] = {c0, c1, c2};
  
Ein viertes Array <tt>expected</tt> zum Vergleichen der Ergebnisse fehlt aber noch...
+
Ein viertes Array <tt>expected</tt> zum Vergleichen der Ergebnisse fehlt aber noch...<br>
 +
'''Tipp''': Die Lösung enthält die Zahlen 15 und 16 in der Mitte.
  
  
 
'''Viel Spaß und Erfolg!'''
 
'''Viel Spaß und Erfolg!'''

Aktuelle Version vom 5. März 2013, 17:37 Uhr

Aufgabe

Schreibe eine Funktion mult die zwei beliebig große (aber zueinander passende) Matrizen miteinander mulipliziert.
Der Prototyp der Funktion mult soll sein:

void mult(
    const int * const *a,
    const int * const *b,
    int * const *result,
    int rows_a,
    int cols_a,
    int cols_b);

Verdeutliche dir zuerst, welches const welche Wirkung hat, und

Zum Testen kannst du folgende drei Arrays benutzen:

const int a0[] = {1, 0};
const int a1[] = {4, 3};
const int a2[] = {2, 5};
const int *a[] = {a0, a1, a2};

const int b0[] = {6, 3, 4, 2};
const int b1[] = {7, 1, 0, 5};
const int *b[] = {b0, b1};

int c0[4], c1[4], c2[4];
int * const result[] = {c0, c1, c2};

Ein viertes Array expected zum Vergleichen der Ergebnisse fehlt aber noch...
Tipp: Die Lösung enthält die Zahlen 15 und 16 in der Mitte.


Viel Spaß und Erfolg!