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; }
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(); }