d
🧩 Syntax:
using System;
class Zadanie5
{
static void Main()
{
// Testowanie dodawania macierzy
int[,] macierzA2x2 = { { 1, 2 }, { 3, 4 } };
int[,] macierzB2x2 = { { 5, 6 }, { 7, 8 } };
int liczbaKrokow;
int[,] wynikDodawania = DodajMacierze(macierzA2x2, macierzB2x2, out liczbaKrokow);
Console.WriteLine($"Kroki dodawania 2x2: {liczbaKrokow}");
// Testowanie mnożenia macierzy
int[,] macierzA2x3 = { { 1, 2, 3 }, { 4, 5, 6 } };
int[,] macierzB3x2 = { { 7, 8 }, { 9, 10 }, { 11, 12 } };
int[,] wynikMnozenia = PomnozMacierze(macierzA2x3, macierzB3x2, out liczbaKrokow);
Console.WriteLine($"Kroki mnożenia [2x3]*[3x2]: {liczbaKrokow}");
// Testowanie transpozycji
int[,] macierz = { { 1, 2, 3 }, { 4, 5, 6 } };
int[,] transponowana = TransponujMacierz(macierz);
Console.WriteLine("Macierz transponowana:");
WypiszMacierz(transponowana);
}
static int[,] DodajMacierze(int[,] macierzA, int[,] macierzB, out int liczbaKrokow)
{
int wiersze = macierzA.GetLength(0);
int kolumny = macierzA.GetLength(1);
int[,] wynik = new int[wiersze, kolumny];
liczbaKrokow = 0;
for (int i = 0; i < wiersze; i++)
{
for (int j = 0; j < kolumny; j++)
{
wynik[i, j] = macierzA[i, j] + macierzB[i, j];
liczbaKrokow++;
}
}
return wynik;
}
static int[,] PomnozMacierze(int[,] macierzA, int[,] macierzB, out int liczbaKrokow)
{
int wA = macierzA.GetLength(0);
int kA = macierzA.GetLength(1);
int wB = macierzB.GetLength(0);
int kB = macierzB.GetLength(1);
int[,] wynik = new int[wA, kB];
liczbaKrokow = 0;
for (int i = 0; i < wA; i++)
{
for (int j = 0; j < kB; j++)
{
int suma = 0;
for (int k = 0; k < kA; k++)
{
suma += macierzA[i, k] * macierzB[k, j];
liczbaKrokow++;
}
wynik[i, j] = suma;
}
}
return wynik;
}
static int[,] TransponujMacierz(int[,] macierz)
{
int wiersze = macierz.GetLength(0);
int kolumny = macierz.GetLength(1);
int[,] wynik = new int[kolumny, wiersze];
for (int i = 0; i < wiersze; i++)
for (int j = 0; j < kolumny; j++)
wynik[j, i] = macierz[i, j];
return wynik;
}
static void WypiszMacierz(int[,] macierz)
{
for (int i = 0; i < macierz.GetLength(0); i++)
{
for (int j = 0; j < macierz.GetLength(1); j++)
Console.Write(macierz[i, j] + "\t");
Console.WriteLine();
}
}
}