コード例 #1
0
ファイル: Siec.cs プロジェクト: DanielW1/TSST-EmulatorSieci
        public void kosztCalejSciezki()
        {
            algorytmFloyda();
            suma = new int[liczbaWezlow, liczbaWezlow];
            Wezel   Pierwszy, Ostatni;
            Sciezka S1;
            int     pomocnicza;

            for (int i = 0; i < liczbaWezlow; i++)
            {
                for (int j = 0; j < liczbaWezlow; j++)
                {
                    if (i != j)
                    {
                        pomocnicza = 0;
                        Pierwszy   = wezly[i];
                        Ostatni    = wezly[j];
                        S1         = new Sciezka(Pierwszy, Ostatni);
                        S1.zwroc_ListaKrawedziSciezki = S1.wyznaczSciezke(Pierwszy, Ostatni, tablicaKierowaniaLaczami,
                                                                          tablicaKierowaniaWezlami, ref wezly, 1, Koszty);
                        S1.wyznaczWezly(Pierwszy);
                        foreach (Lacze krawedz in S1.zwroc_ListaKrawedziSciezki)
                        {
                            pomocnicza = pomocnicza + (int)krawedz.Waga;
                        }
                        suma[i, j] = pomocnicza;
                    }
                    else
                    {
                        suma[i, j] = 0;
                    }
                }
            }
        }
コード例 #2
0
ファイル: Siec.cs プロジェクト: DanielW1/TSST-EmulatorSieci
        public void testFloyd(ref Lacze[,] tablicaKierowaniaLaczami, ref Wezel[,] tablicaKierowaniaWezlami)
        {
            Console.WriteLine();
            Console.WriteLine();
            Sciezka S1 = new Sciezka();

            Console.WriteLine($"Podaj nr wierzcholka(od 1 do {wezly.Count}), z ktorego wyruszamy");
            int nr1 = 0, nr2 = 0;

            try
            {
                nr1 = Int32.Parse(Console.ReadLine());
            }
            catch (Exception)
            {
                Console.WriteLine($"Podaj liczby od 1 do  {wezly.Count} ");
            }

            Console.WriteLine($"Podaj nr wierzcholka (od 1 do  {wezly.Count}), do ktorego chcesz sie udac:");

            try
            {
                nr2 = Int32.Parse(Console.ReadLine());
            }
            catch (Exception)
            {
                Console.WriteLine($"Podaj liczby od 1 do  {wezly.Count} ");
            }

            S1.Wezel1 = wezly[nr1 - 1]; //Ustawiamy poczatek i koniec Sciezki
            S1.Wezel2 = wezly[nr2 - 1];

            S1.KrawedzieSciezki = S1.wyznaczSciezke(wezly[nr1 - 1], wezly[nr2 - 1], tablicaKierowaniaLaczami,
                                                    tablicaKierowaniaWezlami, ref wezly, 1, Koszty);
            S1.wyznaczWezly(wezly[nr1 - 1]);
            S1.pokazSciezke();
        }