예제 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Random r = new Random();
            int    brojac_za_crtanje = 1;
            int    brcvorova         = (int)numericUpDown1.Value;
            int    crt = 0;

            if (brcvorova == 1)
            {
                crt = 1;
            }
            if (brcvorova == 2 || brcvorova == 3)
            {
                crt = 2;
            }
            if (brcvorova == 4)
            {
                crt = 3;
            }
            int y = 7;

            for (int i = 0; i < 2; i++)
            {
                int x = 12;
                for (int j = 0; j < crt + 1; j++)
                {
                    Cvor c = new Cvor(idBrojac++, x, y);
                    sema.cvorovi.Add(c);
                    c.zaCrtanje = brojac_za_crtanje++;
                    x          += 10;
                }
                y += 13;
            }
            int numNodes = sema.cvorovi.Count;

            for (int i = 0; i < numNodes / 2; i++)
            {
                Grana g = null;
                if (i != (numNodes / 2 - 1))
                {
                    g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + 1], 0);
                    sema.cvorovi[i].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            for (int i = numNodes / 2; i < numNodes; i++)
            {
                Grana g = null;
                if (i != (numNodes - 1))
                {
                    g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + 1], 0);
                    sema.cvorovi[i].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            for (int i = 0; i < numNodes / 2; i++)
            {
                Grana g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + numNodes / 2], 0);
                sema.cvorovi[i].grane.Add(g);
                sema.grane.Add(g);
            }
            int rand = r.Next(10);

            if (brcvorova == 3)
            {
                int iz  = 0;
                int odr = 4;
                if (rand < 2)
                {
                    iz  = 0;
                    odr = 4;
                }
                else if (rand < 4)
                {
                    iz  = 1;
                    odr = 3;
                }
                else if (rand < 6)
                {
                    iz  = 1;
                    odr = 5;
                }
                else
                {
                    iz  = 2;
                    odr = 4;
                }
                Grana g = new Grana(idGra++, sema.cvorovi[iz], sema.cvorovi[odr], 0);
                sema.cvorovi[iz].grane.Add(g);
                sema.grane.Add(g);
            }
            if (brcvorova == 4)
            {
                int iz  = 0;
                int odr = 4;
                if (rand < 3)
                {
                    iz  = 1;
                    odr = 6;
                }
                else if (rand < 6)
                {
                    iz  = 2;
                    odr = 5;
                }
                else
                {
                    iz  = -1;
                    odr = -1;
                }
                if (iz != -1 && odr != -1)
                {
                    Grana g = new Grana(idGra++, sema.cvorovi[iz], sema.cvorovi[odr], 0);
                    sema.cvorovi[iz].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            foreach (Grana g in sema.grane)
            {
                g.obradjena = false;
                g.struja    = 0;
            }
            foreach (Cvor c in sema.cvorovi)
            {
                c.bot     = true;
                c.indexer = -2;
                c.napon   = 0;
            }
            sema.izbaciPipkeIOstrva(new ListBox());
            List <Poteg> potezi = new List <Poteg>();

            potezi = sema.pot;
            int brojacOtp = 1, brojacStrujni = 1, brojacNapon = 1;

            if (potezi.Count == 1)
            {
                if (r.Next(8) == 0)
                {
                    Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                    brojacStrujni++;
                    if (r.Next(2) == 0)
                    {
                        k.polaritet      = potezi[0].superGrana[0].izvor;
                        k.frontPolaritet = potezi[0].superGrana[0].izvor;
                    }
                    else
                    {
                        k.polaritet      = potezi[0].superGrana[0].odrediste;
                        k.frontPolaritet = potezi[0].superGrana[0].odrediste;
                    }
                    k.namestiSliku(potezi[0].superGrana[0].izvor, potezi[0].superGrana[0].odrediste);
                    potezi[0].superGrana[0].komponente.Add(k);
                    potezi[0].superGrana[0].brojkom++;
                }
                foreach (Grana g in potezi[0].superGrana)
                {
                    if (r.Next(10) != 0)
                    {
                        int koliko = r.Next(10);
                        if (koliko < 7)
                        {
                            koliko = 1;
                        }
                        else
                        {
                            koliko = 2;
                        }
                        for (int i = 0; i < koliko; i++)
                        {
                            int ran = r.Next(100);
                            if (ran < 62)
                            {
                                Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                k.namestiSliku(g.izvor, g.odrediste);
                                brojacOtp++;
                                g.komponente.Add(k);
                                g.brojkom++;
                            }
                            else
                            {
                                Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                                brojacNapon++;
                                if (r.Next(2) == 0)
                                {
                                    k.polaritet      = g.izvor;
                                    k.frontPolaritet = g.izvor;
                                }
                                else
                                {
                                    k.polaritet      = g.odrediste;
                                    k.frontPolaritet = g.odrediste;
                                }
                                k.namestiSliku(g.izvor, g.odrediste);
                                g.komponente.Add(k);
                                g.brojkom++;
                            }
                        }
                    }
                }
                this.p.godina = idBrojac;
                this.p.tezina = idGra;
                this.Close();
                return;
            }
            foreach (Poteg p in potezi)
            {
                if (p.superGrana.Count == 1)
                {
                    int koliko = r.Next(10);
                    if (koliko < 7)
                    {
                        koliko = 1;
                    }
                    else
                    {
                        koliko = 2;
                    }
                    for (int i = 0; i < koliko; i++)
                    {
                        int ran = r.Next(100);
                        if (ran < 50)
                        {
                            Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            brojacOtp++;
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                        else if (ran < 84)
                        {
                            Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                            brojacNapon++;
                            if (r.Next(2) == 0)
                            {
                                k.polaritet      = p.superGrana[0].izvor;
                                k.frontPolaritet = p.superGrana[0].izvor;
                            }
                            else
                            {
                                k.polaritet      = p.superGrana[0].odrediste;
                                k.frontPolaritet = p.superGrana[0].odrediste;
                            }
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                        else if (p.superGrana[0].isStrujni() == false)
                        {
                            Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                            brojacStrujni++;
                            if (r.Next(2) == 0)
                            {
                                k.polaritet      = p.superGrana[0].izvor;
                                k.frontPolaritet = p.superGrana[0].izvor;
                            }
                            else
                            {
                                k.polaritet      = p.superGrana[0].odrediste;
                                k.frontPolaritet = p.superGrana[0].odrediste;
                            }
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                    }
                }
                else
                {
                    for (int ee = 0; ee < p.superGrana.Count; ee++)
                    {
                        if (ee == 1)
                        {
                            int koliko = r.Next(10);
                            if (koliko < 7)
                            {
                                koliko = 1;
                            }
                            else
                            {
                                koliko = 2;
                            }
                            for (int i = 0; i < koliko; i++)
                            {
                                int ran = r.Next(100);
                                if (ran < 50)
                                {
                                    Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    brojacOtp++;
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                                else if (ran < 84)
                                {
                                    Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                                    brojacNapon++;
                                    if (r.Next(2) == 0)
                                    {
                                        k.polaritet      = p.superGrana[1].izvor;
                                        k.frontPolaritet = p.superGrana[1].izvor;
                                    }
                                    else
                                    {
                                        k.polaritet      = p.superGrana[1].odrediste;
                                        k.frontPolaritet = p.superGrana[1].odrediste;
                                    }
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                                else if (p.superGrana[1].isStrujni() == false)
                                {
                                    Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                                    brojacStrujni++;
                                    if (r.Next(2) == 0)
                                    {
                                        k.polaritet      = p.superGrana[1].izvor;
                                        k.frontPolaritet = p.superGrana[1].izvor;
                                    }
                                    else
                                    {
                                        k.polaritet      = p.superGrana[1].odrediste;
                                        k.frontPolaritet = p.superGrana[1].odrediste;
                                    }
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                            }
                        }
                        else
                        {
                            if (r.Next(3) == 0)
                            {
                                Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                k.namestiSliku(p.superGrana[ee].izvor, p.superGrana[ee].odrediste);
                                brojacOtp++;
                                p.superGrana[ee].komponente.Add(k);
                                p.superGrana[ee].brojkom++;
                            }
                        }
                    }
                }
            }
            this.p.godina = idBrojac;
            this.p.tezina = idGra;
            this.Close();
        }
예제 #2
0
        private void button4_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)//ako je neka sema selektovana
            {
                //kod za vracanje sledece seme iz baze : select * from sema where sema.id= listaId[listbox1.selectedItem];
                //i onda sema = ucitana sema

                OracleConnection con       = null;
                string           conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";
                int broj = listaId[listBox1.SelectedIndex];

                try
                {
                    sema.Idseme = broj;
                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();


                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT CVOR.ID_SEMA,CVOR.ID, CVOR.X, CVOR.Y,CVOR.ZA_CRTANJE ");
                    strSQL.Append(" FROM CVOR ");
                    strSQL.Append(" where ID_SEMA=:broj ");

                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            //  brsema = dr.GetInt32(0);
                            int idCvora = dr.GetInt32(1);
                            int korX    = dr.GetInt32(2);
                            int korY    = dr.GetInt32(3);
                            int zaCrtis = dr.GetInt32(4);

                            Cvor k = new Cvor(idCvora, korX, korY);
                            k.zaCrtanje = zaCrtis;
                            // MessageBox.Show(idCvora.ToString() + " " + korX.ToString() + " " + korY.ToString());
                            sema.cvorovi.Add(k);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    MessageBox.Show(ec.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //MessageBox.Show("Greska " + ec.Message);
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }


                con       = null;
                conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";

                try
                {
                    //ucitavamo informacije o broju clana
                    // Console.WriteLine("Uneti broj clana za koga se kreira spisak:");
                    //  int broj = Int32.Parse(Console.ReadLine());

                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();

                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT GRANA.ID_SEMA, GRANA.ID, GRANA.UGAO,GRANA.IZVOR,GRANA.ODREDISTE ");
                    strSQL.Append(" FROM GRANA ");
                    strSQL.Append(" where ID_SEMA=:broj ");


                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            int id_sema       = dr.GetInt32(0);
                            int idGrana       = dr.GetInt32(1);
                            int ugao          = dr.GetInt32(2);
                            int izvorcvor     = dr.GetInt32(3);
                            int odredistecvor = dr.GetInt32(4);
                            //  Debugger.Break();
                            int i1 = -1;
                            int i2 = -1;
                            for (int io = 0; io < sema.cvorovi.Count; io++)
                            {
                                if (sema.cvorovi[io].id == izvorcvor)
                                {
                                    i1 = io;
                                }
                                if (sema.cvorovi[io].id == odredistecvor)
                                {
                                    i2 = io;
                                }
                            }
                            //  Debugger.Break();
                            Grana k = new Grana(idGrana, sema.cvorovi[i1], sema.cvorovi[i2], ugao);
                            sema.cvorovi[i1].grane.Add(k);
                            // Debugger.Break();
                            // MessageBox.Show(idCvora.ToString() + " " + korX.ToString() + " " + korY.ToString());
                            sema.grane.Add(k);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }



                con       = null;
                conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";

                try
                {
                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();

                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT KOMPONENTA.ID_SEMA,KOMPONENTA.ID, KOMPONENTA.ID_GRANA, KOMPONENTA.TIP,KOMPONENTA.VELICINA,KOMPONENTA.SMER,KOMPONENTA.NAZIV ");
                    strSQL.Append(" FROM KOMPONENTA ");
                    strSQL.Append(" WHERE KOMPONENTA.ID_SEMA=:broj ");


                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        //Debugger.Break();
                        while (dr.Read())
                        {
                            int    kk           = dr.GetInt32(0);
                            int    idkomponente = dr.GetInt32(1);
                            int    id_grane     = dr.GetInt32(2);
                            int    tipkompone   = dr.GetInt32(3);
                            int    velicina     = dr.GetInt32(4);
                            int    smer         = dr.GetInt32(5);
                            string nazv         = dr.GetString(6);
                            int    pom          = -1;
                            for (int i = 0; i < sema.grane.Count; i++)
                            {
                                if (sema.grane[i].grana == id_grane)
                                {
                                    pom = i;
                                }
                            }

                            //  Debugger.Break();
                            // Komponenta k = new Otpornik(10, "R1");
                            // k.slika = Image.FromFile("opt.png");
                            Komponenta novaKomponenta = null;
                            if (tipkompone == 0)
                            {
                                novaKomponenta    = new NaponskiGenerator(velicina, nazv, true);
                                novaKomponenta.id = idkomponente;
                            }

                            else if (tipkompone == 1)
                            {
                                novaKomponenta    = new StrujniGenerator(velicina, nazv, true);
                                novaKomponenta.id = idkomponente;
                            }
                            else
                            {
                                novaKomponenta    = new Otpornik(velicina, nazv);
                                novaKomponenta.id = idkomponente;
                            }
                            sema.grane[pom].komponente.Add(novaKomponenta);
                            sema.grane[pom].brojkom++;
                            int komp = -1;
                            for (int i = 0; i < sema.grane[pom].komponente.Count; i++)
                            {
                                if (sema.grane[pom].komponente[i].id == idkomponente)
                                {
                                    komp = i;
                                }
                            }
                            if (smer == 0)
                            {
                                sema.grane[pom].komponente[komp].polaritet      = sema.grane[pom].izvor;//ako je 0 prema izvor
                                sema.grane[pom].komponente[komp].frontPolaritet = sema.grane[pom].izvor;
                            }
                            else if (smer == 1)
                            {
                                sema.grane[pom].komponente[komp].polaritet      = sema.grane[pom].odrediste;
                                sema.grane[pom].komponente[komp].frontPolaritet = sema.grane[pom].odrediste;
                            }

                            sema.grane[pom].komponente[komp].namestiSliku(sema.grane[pom].izvor, sema.grane[pom].odrediste);

                            //if(sema.grane[pom].komponente[komp].polaritet==sema.grane[pom].izvor)
                            //    smer=0
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    MessageBox.Show(ec.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //MessageBox.Show("Greska " + ec.Message);
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }
                // Debugger.Break();
                // MessageBox.Show("Ucitava se sema " + listBox1.SelectedIndex);
                forma.pomZaEDIT = 1;
            }


            else
            {
                MessageBox.Show("Nije selektovana nijedna sema!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            this.Close();
        }
예제 #3
0
        private void odrediZBusMatricu()
        {
            int brojac = 1;

            sema.izbaciPipkeIOstrva(new ListBox());
            foreach (Cvor c1 in praviCvorovi)
            {
                if (c1 == Izvor)
                {
                    c1.TevenenIndexer = -1;
                }
                else if (c1 == Odrediste)
                {
                    c1.TevenenIndexer = 0;
                }
                else
                {
                    c1.TevenenIndexer = brojac++;
                }
            }
            List <Cvor> tCvorovi = new List <Cvor>();

            foreach (Cvor c1 in praviCvorovi)
            {
                if (c1 == Izvor)
                {
                    tCvorovi.Add(c1);
                }
            }
            foreach (Cvor c1 in praviCvorovi)
            {
                if (c1 == Odrediste)
                {
                    tCvorovi.Add(c1);
                }
            }
            foreach (Cvor c1 in praviCvorovi)
            {
                if (c1 != Izvor && c1 != Odrediste)
                {
                    tCvorovi.Add(c1);
                }
            }
            //IZMENA
            int dimenzija = praviCvorovi.Count - 1;

            decimal[,] matricaAdmitansi = new decimal[dimenzija, dimenzija];
            for (int i = 0; i < dimenzija; i++)
            {
                for (int j = 0; j < dimenzija; j++)
                {
                    matricaAdmitansi[i, j] = 0;
                }
            }
            for (int i = 1; i <= dimenzija; i++)
            {
                foreach (Poteg p in sema.pot)
                {
                    if (p.izvor == tCvorovi[i] || p.odrediste == tCvorovi[i])
                    {
                        matricaAdmitansi[tCvorovi[i].TevenenIndexer, tCvorovi[i].TevenenIndexer] += p.izracunajAdmitansu();
                        if (p.izvor == tCvorovi[i] && p.odrediste.TevenenIndexer != -1)
                        {
                            matricaAdmitansi[tCvorovi[i].TevenenIndexer, p.odrediste.TevenenIndexer] += (-1 * p.izracunajAdmitansu());
                        }
                        if (p.odrediste == tCvorovi[i] && p.izvor.TevenenIndexer != -1)
                        {
                            matricaAdmitansi[tCvorovi[i].TevenenIndexer, p.izvor.TevenenIndexer] += (-1 * p.izracunajAdmitansu());
                        }
                    }
                }
            }
            //IZMENA
            int     n = dimenzija;
            decimal c, h;

            decimal[,] prosirenaMatrica = new decimal[dimenzija + 1, dimenzija + 1];
            decimal[,] pocetnoJedinicna = new decimal[dimenzija + 1, dimenzija + 1];
            for (int i = 0; i <= dimenzija; i++)
            {
                for (int j = 0; j <= dimenzija; j++)
                {
                    if (i == 0 || j == 0)
                    {
                        prosirenaMatrica[i, j] = 0;
                        pocetnoJedinicna[i, j] = 0;
                    }
                    else
                    {
                        prosirenaMatrica[i, j] = matricaAdmitansi[i - 1, j - 1];
                        if (i == j)
                        {
                            pocetnoJedinicna[i, j] = 1;
                        }
                        else
                        {
                            pocetnoJedinicna[i, j] = 0;
                        }
                    }
                }
            }
            for (int k = 1; k <= n; k++)//POCETAK ALGORITMA.
            {
                h = prosirenaMatrica[k, k];
                for (int i = 1; i <= n; i++)
                {
                    pocetnoJedinicna[k, i] = pocetnoJedinicna[k, i] / h;
                    prosirenaMatrica[k, i] = prosirenaMatrica[k, i] / h;
                }

                for (int p = k + 1; p <= n; p++)
                {
                    c = prosirenaMatrica[p, k];
                    for (int j = 1; j <= n; j++)
                    {
                        pocetnoJedinicna[p, j] = pocetnoJedinicna[p, j] - c * pocetnoJedinicna[k, j];
                        prosirenaMatrica[p, j] = prosirenaMatrica[p, j] - c * prosirenaMatrica[k, j];
                    }
                }
            }
            for (int z = 1; z <= n; z++)
            {
                pocetnoJedinicna[n, z] = pocetnoJedinicna[n, z] / prosirenaMatrica[n, n];
            }
            prosirenaMatrica[n, n] = 1;
            for (int k = 0; k <= n - 2; k++)
            {
                for (int s = k + 1; s <= n - 1; s++)
                {
                    c = prosirenaMatrica[n - s, n - k];
                    for (int t = 1; t <= n; t++)
                    {
                        pocetnoJedinicna[n - s, t] = pocetnoJedinicna[n - s, t] - pocetnoJedinicna[n - k, t] * c;
                        prosirenaMatrica[n - s, t] = prosirenaMatrica[n - s, t] - prosirenaMatrica[n - k, t] * c;
                    }
                }//KRAJ ALGORITMA.
            }
            decimal napon = Odrediste.napon - Izvor.napon;

            f.osveziListBoxove();
            Cvor prvi = new Cvor(Odrediste.id, 8, 1);

            prvi.zaCrtanje = Odrediste.zaCrtanje;
            Cvor drugi = new Cvor(Izvor.id, 8, 11);

            drugi.zaCrtanje = Izvor.zaCrtanje;
            mali.cvorovi.Add(prvi);
            mali.cvorovi.Add(drugi);
            Grana      g  = new Grana(66, drugi, prvi, 100);
            Komponenta k2 = new Otpornik(100, "Rt");
            Komponenta k1 = new NaponskiGenerator(100, "Et", true);

            k1.polaritet      = prvi;
            k1.frontPolaritet = prvi;
            k1.namestiSliku(drugi, prvi);
            k2.namestiSliku(drugi, prvi);
            g.komponente.Add(k2);
            g.komponente.Add(k1);
            g.brojkom = 2;
            mali.grane.Add(g);
            Rt = pocetnoJedinicna[1, 1];
            Et = napon;
            pictureBox1.Invalidate();
        }