IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 11 Temmuz 2014, 10:42   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Graflarda En Kısa Yolu Bulma




Bu Program C++ Builder 6 ile uyumludur.


oku.txt isimli klasöre aynı örnekte verildiği şekilde

Ör: istanbul,trabzon,10
ankara,samsun,5

gibi verilerinizi girdikten sonra oku.txt isimli dosyanın en başına gidip hangi iki şehir arasındaki en kısa
mesafeyi bulmak istiyorsanız şu formatta yazınız.

samsun,ankara,?

NOT: Yapı ağaç modunda olup gidiş modludur Örneğin : samsun,ankara,5 demek sadece samsundan ankaraya
sefer olduğunu göstermektedir. Program elbette ters modda düşünülüp geliştirebilir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { bool donus=true; String cek; String cek2; String virgul=","; if(FileExists("oku.txt")) { ListBox1->Items->LoadFromFile("oku.txt"); cek=ListBox1->Items->Strings[0]; cek2=cek; int tut=cek.Pos(virgul); String baslangic=cek.Delete(tut,cek.Length()); cek2.Delete(1,tut); tut=cek2.Pos(virgul); cek2.Delete(tut,cek2.Length()); ListBox1->Items->Delete(0); } for(int i=0;i<ListBox1->Items->Count;i++) { String yakala=ListBox1->Items->Strings[i]; int position=yakala.Pos(virgul); yakala.Delete(position,yakala.Length()); if(yakala==cek) { String atilacak=ListBox1->Items->Strings[i]; atilacak.Delete(1,position); position=atilacak.Pos(virgul); String boyut=atilacak; atilacak.Delete(position,atilacak.Length()); boyut.Delete(1,position); ListBox2->Items->Add(atilacak); String olustur=cek+","+atilacak; ListBox3->Items->Add(olustur); } } ListBox2->Items->Clear(); int saydir=1; while(donus==true) { String il; for(int i=0;i<ListBox3->Items->Count;i++) { String aman; for(int p=0;p<saydir;p++) { int pozisyon=ListBox3->Items->Strings[i].Pos(virgul); il=ListBox3->Items->Strings[i]; il.Delete(1,pozisyon); } for(int p=0;p<ListBox1->Items->Count;p++) { String orada=ListBox1->Items->Strings[p]; int position=orada.Pos(virgul); orada.Delete(position,orada.Length()); if(orada==il) { aman=ListBox1->Items->Strings[p]; int position=aman.Pos(virgul); aman.Delete(1,position); position=aman.Pos(virgul); aman.Delete(position,aman.Length()); String olustur=ListBox3->Items->Strings[i]+","+aman; ListBox2->Items->Add(olustur); } } } for(int sar=0;sar<ListBox3->Items->Count;sar++) { int varmi=ListBox3->Items->Strings[sar].Pos(cek2); if(varmi!=0) { ListBox4->Items->Add(ListBox3->Items->Strings[sar]); ListBox3->Items->Delete(sar); } } ListBox3->Items->Clear(); for(int den=0;den<ListBox2->Items->Count;den++) { ListBox3->Items->Add(ListBox2->Items->Strings[den]); } saydir++; ListBox2->Items->Clear(); for(int of=0;of<ListBox3->Items->Count;of++) { //1 String cekbre=ListBox3->Items->Strings[of]; for(int oy=0;oy<saydir;oy++) { int position=cekbre.Pos(virgul); cekbre.Delete(1,position); } for(int pes=0;pes<ListBox1->Items->Count;pes++) { String yeter=ListBox1->Items->Strings[pes]; int virgulinyeri=yeter.Pos(virgul); yeter.Delete(virgulinyeri,yeter.Length()); if(yeter==cekbre) { String usak=ListBox1->Items->Strings[pes]; virgulinyeri=usak.Pos(virgul); usak.Delete(1,virgulinyeri); virgulinyeri=usak.Pos(virgul); usak.Delete(virgulinyeri,usak.Length()); int denetim=(ListBox3->Items->Strings[of]).Pos(usak); if(denetim==0) { String olustur=ListBox3->Items->Strings[of]; olustur+=","+usak; ListBox2->Items->Add(olustur); } } } } //1 if(ListBox2->Items->Count==0) donus=false; } //while for(int p=0;p<ListBox4->Items->Count;p++) { String kopya1=ListBox4->Items->Strings[p]; int virgulbe=kopya1.Pos(virgul); int sayi=0; String nedir; while(virgulbe!=0) { String kopya2=kopya1; kopya1.Delete(virgulbe,kopya1.Length()); kopya2.Delete(1,virgulbe); String ikinci=kopya2; virgulbe=ikinci.Pos(virgul); ikinci.Delete(virgulbe,ikinci.Length()); String olustur=kopya1+","+ikinci; for(int oeh=0;oeh<ListBox1->Items->Count;oeh++) { int olurmu=ListBox1->Items->Strings[oeh].Pos(olustur); if(olurmu!=0) { nedir=ListBox1->Items->Strings[oeh]; int yeri=nedir.Pos(virgul); nedir.Delete(1,yeri); yeri=nedir.Pos(virgul); nedir.Delete(1,yeri); sayi+=StrToInt(nedir); } } kopya1=kopya2; virgulbe=kopya2.Pos(virgul); } ListBox2->Items->Add(sayi); } ListBox3->Items->Clear(); int enkucuk=100000; for(int a=0;a<ListBox2->Items->Count;a++) { if(StrToInt(ListBox2->Items->Strings[a])<enkucuk) enkucuk=StrToInt(ListBox2->Items->Strings[a]); } for(int a=0;a<ListBox2->Items->Count;a++) { if(StrToInt(ListBox2->Items->Strings[a])==enkucuk) ListBox3->Items->Add(ListBox4->Items->Strings[a]+"->"+enkucuk); } ListBox3->Items->SaveToFile("sonuc.txt"); ListBox2->Items->Clear(); ListBox4->Items->Clear(); } //---------------------------------------------------------------------------


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
bulma, en, graflarda, kısa, yolu


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Etkili ve kısa yoldan para kazanmanın yolu. Then İnternetten Para Kazanma Yolları 3 15 Ocak 2012 13:30
Kısa Aşk Sözleri-Kısa Aşk Mesajları-Kısa Aşk Sözü-Kısa Aşk Mesajı 2011 2012 PauL Aşk ve Sevgi Köşesi 0 15 Kasım 2011 12:50
2011- Bayan Kısa Saç Şekilleri + Kısa Saçlar da Moda Rüzgarı... Sevda Ah Kadınlar 0 21 Kasım 2010 18:57