public static Matrica <T> operator+(Matrica <T> prva, Matrica <T> druga) { if (prva.vrsta != druga.vrsta || prva.kolona != druga.kolona) { throw new Exception("Matrice nisu kompatabilne"); } Matrica <T> rezultat = new Matrica <T>(prva.vrsta, prva.kolona); for (int i = 0; i < rezultat.vrsta; i++) { for (int j = 0; j < rezultat.kolona; j++) { rezultat.matrica[i, j] = (T)prva.matrica[i, j].Saberi(druga.matrica[i, j]); } } return(rezultat); }
public static Matrica <T> operator*(Matrica <T> prva, Matrica <T> druga) { if (prva.kolona != druga.vrsta) { throw new Exception("Matrice nisu kompatabilne"); } Matrica <T> rezultat = new Matrica <T>(prva.vrsta, druga.kolona); for (int i = 0; i < rezultat.vrsta; i++) { for (int j = 0; j < rezultat.kolona; j++) { rezultat.matrica[i, j] = (T)rezultat.matrica[i, j].Nula; for (int k = 0; k < prva.kolona; k++) { rezultat.matrica[i, j] = (T)rezultat.matrica[i, j].Saberi(prva.matrica[i, k].Pomnozi(druga.matrica[k, j])); } } } return(rezultat); }
static void Main(string[] args) { Matrica <RacionalniBroj> racMatrica = new Matrica <RacionalniBroj>(2, 3); Console.WriteLine("Default racionalna matrica"); racMatrica.Prikazi(); for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { racMatrica[i, j] = new RacionalniBroj(i + 1, j + 1); } } Console.WriteLine("Racionalna sa zadatim vrednostima"); racMatrica.Prikazi(); Console.WriteLine("Postinkrement i prikaz u istoj liniji"); (racMatrica++).Prikazi(); Console.WriteLine("Postinkrement ponovni prikaz"); racMatrica.Prikazi(); racMatrica = racMatrica + racMatrica; Console.WriteLine("Sabiranje"); racMatrica.Prikazi(); racMatrica.Snimi("C: \\Users\\mladj\\Desktop\\matricaRac.txt"); Console.WriteLine("================================================"); Matrica <Kompleksni> kompMatrica = new Matrica <Kompleksni>(2, 3); Console.WriteLine("Default kompleksna matrica"); kompMatrica.Prikazi(); for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { kompMatrica[i, j] = new Kompleksni(i + j + 1, j + 1); } } Console.WriteLine("Kompleksan sa zadatim vrednostima"); kompMatrica.Prikazi(); Console.WriteLine("Postinkrement i prikaz u istoj liniji"); (kompMatrica++).Prikazi(); Console.WriteLine("Postinkrement ponovni prikaz"); kompMatrica.Prikazi(); kompMatrica = kompMatrica + kompMatrica; Console.WriteLine("Sabiranje"); kompMatrica.Prikazi(); Matrica <Kompleksni> komp = new Matrica <Kompleksni>(3, 2); for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { komp[i, j] = new Kompleksni(i + j + 1, j + 3); } } Matrica <Kompleksni> rezultat = new Matrica <Kompleksni>(2, 2); rezultat = komp * kompMatrica; Console.WriteLine("Mnozenje"); rezultat.Prikazi(); kompMatrica.Snimi("C: \\Users\\mladj\\Desktop\\matricaKomp.txt"); }