Macierze najczęściej zapisuje się w postaci prostokątnej tablicy. Możliwe jest również zapisanie ich w postaci wektora długość równej ilości wierszy macierzy pomnożonej przez ilość kolumn macierzy. Najbardziej popularną metodą jest przechowywanie macierzy w tablicach podwójnie indeksowanych czyli prościej mówiąc dwuwymiarowych. Jednak prócz samej tabeli musimy przechowywać wielkość tabeli: ilość wierszy i kolumn. W celu uproszczenia zapisu użyjemy struktury.
(2.) Nowo utworzona klasa macierz będzie przechowywać informację w tablicy dwuwymiarowej dane. Dodatkowo będzie możliwy dostęp do (4. - 6.) ilości jej kolumn oraz (8. - 10.) wierszy poprzez pobranie długości odpowiedniego wymiaru.
(2.) Przy tworzeniu uzyskujemy wskaźnik na macierz, więc aby zmodyfikować pola danych nowo utworzonej macierzy to będziemy używać "->" zamiast "."(, którą używamy dla typ, a nie typ*). (3. - 4.) Następnie przypisujemy wielkość naszej zmiennej macierzy. (5.) Zmienna table to nasza 2D tablica, którą na sam koniec przekażemy do matrix. (7.) Następnie dla każdego wiersza tworzymy listę double i (9.) każdy element ustawiamy na 0. Na koniec iteracji (11.) przekazujemy wskaźnik do zmiennej table i (12.) zwracamy macierz.
Domyślny konstruktor macierzy pobiera wartości n i m oznaczających kolejno ilość wierszy i kolumn. Zadaniem konstruktora jest inicjalizacja tablicy do przechowywania danych.
Bardzo często przy macierzach omawia się macierze kwadratowe, dlatego warto uwzględnić szybki i prosty sposób na tworzenie macierzy kwadratowych.
Na podstawie napisanej klasy Macierz można już napisać klase dziedziczącą po niej MacierzJednostkowa. Macierz jednostkowa na swojej głównej diagonali ma same jedynki. Prościej mówiąc każda liczba o współrzędnych x i y, gdzie x = y ma wartość 1.
Załóżmy, że chcemy napisać funkcję, która usunie i-ty wiersz macierzy. Oznacza to, że musimy utworzyć nową tablicę wielkości n - 1 × m. Następnie przepisać każdy wiersz po kolei pomijając wiersz, który chcemy usunąć.
(2.) Tworzymy tymczasową, mniejszą tablicę dwuwymiarową i (3. - 10.) przepisujemy wszystkiw wiersze prócz wskazanego. Należy tutaj mieć dwie oddzielne zmienne. Jedna z nich pozwala i pozwala na przechodzenie po kolejnych wierszach, a x przechowuje pod którym indeksem wiersza zapisujemy dane w tablicy tymczasowej.
Usuwanie kolumny macierzy jest trochę bardziej skomplikowane, ale opiera się na identycznym schemacie:
Mnożenie macierzy przez skalar oznacza pomnożenie każdej liczby w macierzy przez skalar:
Struktura Matrix jest naszym wytworem i standardowe biblioteki nie potrafią wypisać jej na konsole. Jednak możemy napisać specjalną funkcje, która nam to umożliwi:
Funkcja używa tu specjalnego znaku "\t", który wypisuje tabulator, aby macierz była wyrównana w kolumnach.
Poniższy fragment kodu prezentuje użycie niektórych napisanych funkcji:
Napisz funkcję sumujWszystko(), która zsumuje wszystkie liczby w macierzy i zwróci wynik jako liczbę rzeczywistą.
Napisz funkcję lub konstruktor, który pozwoli użytkownikowi wprowadzić macierz czyli: