Example #1
0
        private void button10_Click(object sender, EventArgs e)
        {
            button10.Enabled = false;
            sw.Start();

            sifirla();
            z.yolcusayisi = 5; z.dereceHesapla(); z.toplamKm = 0;
            th            = new Thread(() => algoritma());
            th.Priority   = ThreadPriority.Highest; th.Start();
            th.Join();
            double enCokKar = z.sabitUcretKar();
            int    yolcu = 5; double gidilenYol = z.toplamKm;

            th.Abort();
            for (int i = 5; i <= 50; i++)
            {
                sifirla();
                z.yolcusayisi = i; z.dereceHesapla(); z.toplamKm = 0;
                Thread yeni_thread = new Thread(() => algoritma());
                yeni_thread.Start();
                yeni_thread.Join();
                if (z.sabitUcretKar() > enCokKar && sehir[z.bitisid - 1].gitmeDurumu == true)
                {
                    enCokKar   = z.sabitUcretKar();
                    yolcu      = i;
                    gidilenYol = z.toplamKm;
                }
                yeni_thread.Abort();
            }
            butonIslemleri(yolcu);
            string yazi = "Cevap: " + yolcu + " / 1 Kişi: " + Zeplin.sabitUcret + "₺ \n Elde Edilen Kar: " + enCokKar + " ₺ \n Toplam Km: " + gidilenYol;

            label11.Text = yazi;

            button8_Click(e, e);
            yaz = new StreamWriter("problem2.txt");
            yaz.WriteLine("Baslangic : " + z.baslangicid + " Bitis : " + z.bitisid + " Yolcu Sayisi : " + z.yolcusayisi);
            yaz.WriteLine(yazi);
            yaz.WriteLine("mesafe / baslangic lat-long / bitis lat-long / baslangic - bitis");
            for (int i = 0; i < sehir[z.bitisid - 1].yolHaritasi.Count; i++)
            {
                if (i != sehir[z.bitisid - 1].yolHaritasi.Count - 1)
                {
                    yaz.WriteLine(Zeplin.MesafeHesapla(sehir[z.bitisid - 1].yolHaritasi[i], sehir[z.bitisid - 1].yolHaritasi[i + 1]) + " / " + Zeplin.lat_baslangic + " - " + Zeplin.lng_baslangic + " / " + Zeplin.lat_bitis + " - " + Zeplin.lng_bitis + " / " + sehir[z.bitisid - 1].yolHaritasi[i] + " - " + sehir[z.bitisid - 1].yolHaritasi[i + 1]);
                }
            }
            yaz.Close();

            sw.Stop();
            label13.Text     = sw.ElapsedMilliseconds + " ms"; label12.Text = "En çok kar için gereken yolcu sayısı hesaplanıyor";
            button10.Enabled = true;
        }
Example #2
0
        public void problemCoz()
        {
            sifirla();
            z.yolcusayisi = 5; z.dereceHesapla(); z.toplamKm = 0;
            th            = new Thread(() => algoritma());
            th.Priority   = ThreadPriority.Highest; th.Start();
            th.Join();
            double enCokKar = z.sabitUcretKar();
            int    yolcu = 5; double gidilenYol = z.toplamKm;

            th.Abort();
            for (int i = 5; i <= 50; i++)
            {
                sifirla();
                z.yolcusayisi = i; z.dereceHesapla(); z.toplamKm = 0;
                Thread yeni_thread = new Thread(() => algoritma());
                yeni_thread.Start();
                yeni_thread.Join();
                if (z.sabitUcretKar() > enCokKar && sehir[z.bitisid - 1].gitmeDurumu == true)
                {
                    enCokKar   = z.sabitUcretKar();
                    yolcu      = i;
                    gidilenYol = z.toplamKm;
                }
                yeni_thread.Abort();
            }
            sifirla();
            z.yolcusayisi = yolcu; z.dereceHesapla(); z.toplamKm = 0;
            textBox1.Text = yolcu.ToString();
            label4.Text   = ""; label5.Text = "";
            th            = new Thread(() => algoritma()); th.Start();
            string yazi = "Cevap: " + yolcu + " / 1 Kişi: " + Zeplin.sabitUcret + "\n Elde Edilen Kar: " + enCokKar + " ₺ \n Toplam Km: " + gidilenYol;

            label11.Text = yazi;

            th2 = new Thread(() => yolHaritasiCiz(z.bitisid - 1));
            th2.Start(); th2.Join();
            yaz = new StreamWriter("problem2.txt");
            yaz.WriteLine("Baslangic : " + z.baslangicid + " Bitis : " + z.bitisid + " Yolcu Sayisi : " + z.yolcusayisi);
            yaz.WriteLine(yazi);
            yaz.WriteLine("mesafe / baslangic lat-long / bitis lat-long / baslangic - bitis");
            for (int i = 0; i < sehir[z.bitisid - 1].yolHaritasi.Count; i++)
            {
                if (i != sehir[z.bitisid - 1].yolHaritasi.Count - 1)
                {
                    yaz.WriteLine(Zeplin.MesafeHesapla(sehir[z.bitisid - 1].yolHaritasi[i], sehir[z.bitisid - 1].yolHaritasi[i + 1]) + " / " + Zeplin.lat_baslangic + " - " + Zeplin.lng_baslangic + " / " + Zeplin.lat_bitis + " - " + Zeplin.lng_bitis + " / " + sehir[z.bitisid - 1].yolHaritasi[i] + " - " + sehir[z.bitisid - 1].yolHaritasi[i + 1]);
                }
            }
            yaz.Close();
        }