for (i = 0; i < tam; i++) { for (j = 0; j < tam; j++) { result[i][j] = a[i][j] + b[i][j];

/*------------------------------------------------------------------------------*/ //funkcja odejmująca jedną macierz od drugiej void subtract(double **a, double **b, double **result, int tam) {

int i, j;

for (i = 0; i < tam; i++) { for (j = 0; j < tam; j++) { result[i][j] = a[i][j] - b[i][j];

/*------------------------------------------------------------------------------*/ // Ta funkcja alokuje macierz przy użyciu funkcji malloc oraz inicjalizuje ją. Jeżeli zmienna losowa // jest zerem to funkcja inicjalizuje macierz o wartościach zerowych, jeżeli jest jedynką to inicjalizuje // inicjalizuje macierz z losowymi wartościami. Jeżeli jest jakąkolwiek inną wartością to macierz jest // inicjalizowana bez żadnych wartości Zmienna tam określa długość macierzy. double **allocate_real_matrix(int tam, int random) {

int i, j, n = tam, m = tam; double **v, a; // wskaźnik na wektor

// alokuje jeden wektor wektoru (macierz) v = (double**) malloc(n * sizeof(double*));

if (v == NULL) { printf ("** Blad alokacji macierzy: Niewystarczajaca pamiec **"); return (NULL);

// alokacja każdego rzędu macierzy for (i = 0; i < n;