Пример #1
0
        // uruchomienie algorytmu, wybranie początkowego Miasta
        private void button1_Click_1(object sender, EventArgs e)
        {
            string wybrane = comboBox1.Text;
            Miasto results = lista.Find(delegate(Miasto bk)
            {
                return(bk.Nazwa == wybrane);
            }
                                        );

            startowe = results;
            obecneQ  = results;
            najktotszaDroga(obecneQ);
        }
Пример #2
0
        // główna pętla programu
        private void najktotszaDroga(Miasto obecne)
        {
            int indeks;

            for (int i = 0; i < lista.Count - 1; i++)
            {
                obecne.zazanczony = true;
                indeks            = obliczanieDrogi(obecne);
                obecne            = lista[indeks];
                richTextBox1.AppendText("Idę do: " + obecne.Nazwa + " Odległość: " + Math.Round(odleglos, 2) + Environment.NewLine);
                calkowitaOdleglosc += odleglos;
            }
            odleglos            = Math.Sqrt((startowe.x - obecne.x) * (startowe.x - obecne.x) + (startowe.y - obecne.y) * (startowe.y - obecne.y));
            calkowitaOdleglosc += odleglos;
            richTextBox1.AppendText("Wracam do " + startowe.Nazwa + " Odleglość: " + Math.Round(odleglos, 2) + Environment.NewLine + "Całkowita odległość: " + Math.Round(calkowitaOdleglosc, 2));
        }
Пример #3
0
        // szukanie Miasta o najkrtoszej drodze
        private int obliczanieDrogi(Miasto obecne)
        {
            double x1 = obecne.x;                                                               // pobranie x z obecengo Miasta
            double y1 = obecne.y;                                                               // pobranie y z obecnego Miasta
            double x2, y2, najkrotszaDroga = 0, droga = 0;

            for (int licznik = 0; licznik < lista.Count; licznik++)
            {
                if (licznik != lista.IndexOf(obecne) && lista[licznik].zazanczony == false)     // sprawdzenie czy Miasto obecne nie jest takie samo jak Miasto sprawdzane i czy nie było już "odwiedzone" przez algorytm
                {
                    x2    = lista[licznik].x;                                                   // pobranie x Miasta które sprawdzamy
                    y2    = lista[licznik].y;                                                   // pobranie y Miasta które sprawdzamy
                    droga = Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));           // obliczenie odległości między punkatami na ośi współrzędnych
                    if (najkrotszaDroga >= droga || najkrotszaDroga == 0)
                    {
                        najkrotszaDroga = droga;
                        indeksMiasta    = licznik;
                    }
                }
            }
            odleglos = najkrotszaDroga;
            return(indeksMiasta);                                                                // zwrócenie indeksu Miasta w liscie o nakrotszej drodze
        }
Пример #4
0
        private string display(Miasto result)
        {
            string wynik = result.Nazwa;

            return(wynik);
        }