Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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");
        }