Aufgaben zu Matrixoperationen

Bei allen Aufgaben ist eine benutzerdefinierte Funktion (UDF) zu programmieren. Wenn Sie wün­schen, können Sie hierfür die Einwickeltechnik verwenden, die in diesem Internetauftritt an anderer Stelle beschrieben ist  (Aufbaukurs, Skript 3 und Excel-VBA-Anwendungsbeispiele, Matrix­opera­tionen).

 

Verwenden Sie für Arrays, die Sie in diesen Funktionen verwenden, stets die Indexuntergrenze 1. Liefert eine der Funktionen ein Array, so sollte dieses auch für alle Dimensionen die Index­unter­grenze 1 haben. Datentyp für die Elemente der Matrizen soll Double sein.

 

Einfache Aufgaben

  1. Schreiben Sie eine UDF, welche die Summe der Elemente einer Matrix liefert. Die Kopfzeile der Funktion ist:
                Public Function Matrixsumme(ByVal r As Range) As Double
  2. Schreiben Sie eine UDF Matrixmittel, welche das arithmetische Mittel der Elemente einer Matrix liefert.
  3. Programmieren Sie die Funktion Matrixmaximum, welche das größte Element aus einer Matrix ermittelt.
  4. Programmieren Sie die Funktion Spannweite, welche die Differenz zwischen dem größten und dem kleinsten Element einer Matrix liefert.
  5. Schreiben sie eine Funktion
                Public Function MatrGleich (ByVal r1 As Range, ByVal r2 As Range) As Boolean
    welche prüft, ob die Matrizen r1 und r2 gleich sind.

 

Mittelschwere Aufgaben

  1. Schreiben Sie die Funktion
                Public Function Spaltenvektor(ByVal r As Range, ByVal s As Integer) As Double()
    welche ein eindimensionales Array liefert, das die Elemente der Spalte s der von r reprä­sentierten Matrix enthält.
  2. analog für einen Zeilenvektor:
               Public Function Zeilenvektor(ByVal r As Range, ByVal z As Integer) As Double()
  3. Schreiben Sie die Funktion
              Public Function Hauptdiagonale (ByVal r As Range) As Double()
    welche die Hauptdiagonale der von r repräsentierten quadratischen Matrix als liefert. Die Hauptdiagonale ist die von links oben nach rechts unten verlaufende Diagonale.
  4. analog für die von links unten nach rechts oben verlaufende Diagonale.
  5. Programmieren Sie die Funktion
             Public Function istSymmetrisch (ByVal r As Range) As Boolean
    welche prüft, ob es sich bei r um eine symmetrische Matrix handelt. Achten Sie darauf, die Funktion so effizient wie möglich zu gestalten.
  6. Schreiben Sie eine Funktion istDiagonalmatrix, welche prüft, ob es sich bei einer Matrix um eine Diagonalmatrix handelt. Eine Diagonalmatrix ist eine quadratische Matrix, welche außerhalb der Hauptdiagonalen nur Nullen aufweist.
  7. Programmieren Sie die Funktion istEinheitsmatrix, welche prüft, ob es sich bei einer Matrix um eine Einheitsmatrix handelt. Eine Einheitsmatrix ist eine Diagonalmatrix, bei der alle Elemente der Hauptdiagonalen gleich 1 sind.
  8. Programmieren Sie eine Funktion, welche die Elemente einer Matrix jeweils um eine Spalte nach links verschiebt. Die Elemente der ersten Spalte sollen rechts angefügt werden.
  9. Schreiben Sie eine Funktion, welche eine Matrix mit einer ungeraden Anzahl von Spalten bezüglich der mittleren Spalte spiegelt.
  10. Schreiben Sie eine Funktion, welche eine Matrix mit einer ungeraden Anzahl von Zeilen bezüglich der mittleren Zeile spiegelt.
  11. Schreiben Sie eine Funktion, welche eine quadratische Matrix bezüglich der Hauptdiagonalen spiegelt.
  12. wie vorherige Aufgabe, jedoch soll die Spiegelung bezüglich der anderen Diagonale erfolgen.
  13. Schreiben Sie eine Funktion, welche die Transponierte einer Matrix ermittelt.

 

Schwierigere Aufgaben

  1. Programmieren Sie eine UDF für die Matrixmultiplikation
  2. Programmieren Sie eine Funktion
           Public Function links90 (ByVal r As Range) As Double()
    welche eine Matrix um 90 Grad nach links dreht.
  3. wie vorherige Aufgabe, jedoch soll eine n-malige Drehung nach links erfolgen:
          Public Function links (ByVal r As Range, ByVal n As Integer) As Double()
  4. Schreiben Sie eine Funktion, welche ein magisches Quadrat mit der Kantenlänge (= Zahl der Spalten bzw. Zeilen) n erzeugt. Dabei soll n geradzahlig sein. Suchen Sie hierfür einen Algo­rithmus im Internet.
Aufgaben zu zweidimensionalen Arrays (Matrixoperationen)
Hier die Aufgaben noch einmal als Pdf zum Herunterladen
AufgMatrizen.pdf
Adobe Acrobat Dokument 81.1 KB