Visual Basic Dersleri - 6

Önceki başlık Sonraki başlık Aşağa gitmek

Visual Basic Dersleri - 6

Mesaj tarafından eeisahin Bir C.tesi 30 Haz. 2007, 11:27 pm

DÖNGÜLER VE NESNEL DİZİLER

FOR-NEXT

Döngüler istenilen program bildirilerinin şartlı veya şartsız olarark istenilen sayı kadar çalıştırılmasına yarar.
Şimdi for-next döngüsünü kullanarak rastgele 6 sayı oluşturan bir program yapacağız.Önce for next döngüsünün yapısına bir bakalım.

For Değişken = Başlangıç to Bitiş

Tekrarlanacak kodlar

Next Değişken




Nesneleri dizi şeklinde oluşturarak bunları döngülerle rahatça işleyebiliriz.Programı anlatırken nasıl dizi oluşturacağınızı da anlatacağım.

Şimdi yeni bir form oluşturun.Formun üstüne bir CommandButton, bir adet de Label yerleştirin.Label nesnesini seçin ve properties penceresinden adını LblSayı olarak değiştirin.Height = 500 , Width = 500 , Font(size) = 12 ve kalın, BackColor = Beyaz.Şimdi bu Label´ı kopyalayın ve yapıştır deyin.Karşınıza çıkan mesajda size bu nesnenin bir dizi olup olmayacağı soruluyor.Evetî tıklayın.Artık nesnemiz dizi olduğu için bir dahaki yapıştır dediğinizde size bişey sorulmayacaktır.6 Label olana kadar yapıştır deyin.Dizinin mantığı nesneye verilen index numarasıdır.yani bizim nesnemiz için LblSayı(indexnumarası).Özellik = Değer
Somut olarak LblSayı(1).Caption = "Selam"

Evet şimdi Program kodlarını yazıp satır satır incelemeye alalım.


Varsayılan Visual Basic Dersleri - 6
Forumumuzu ve diğer tüm siteleri daha hızlı ve güvenli dolaşmak için alttaki reklama tıklayıp açılan pencereden Download butonuna tıklayın ve Firefox tarayıcıyı indirin...

DÖNGÜLER VE NESNEL DİZİLER

FOR-NEXT

Döngüler istenilen program bildirilerinin şartlı veya şartsız olarark istenilen sayı kadar çalıştırılmasına yarar.
Şimdi for-next döngüsünü kullanarak rastgele 6 sayı oluşturan bir program yapacağız.Önce for next döngüsünün yapısına bir bakalım.

For Değişken = Başlangıç to Bitiş

Tekrarlanacak kodlar

Next Değişken




Nesneleri dizi şeklinde oluşturarak bunları döngülerle rahatça işleyebiliriz.Programı anlatırken nasıl dizi oluşturacağınızı da anlatacağım.

Şimdi yeni bir form oluşturun.Formun üstüne bir CommandButton, bir adet de Label yerleştirin.Label nesnesini seçin ve properties penceresinden adını LblSayı olarak değiştirin.Height = 500 , Width = 500 , Font(size) = 12 ve kalın, BackColor = Beyaz.Şimdi bu Label´ı kopyalayın ve yapıştır deyin.Karşınıza çıkan mesajda size bu nesnenin bir dizi olup olmayacağı soruluyor.Evetî tıklayın.Artık nesnemiz dizi olduğu için bir dahaki yapıştır dediğinizde size bişey sorulmayacaktır.6 Label olana kadar yapıştır deyin.Dizinin mantığı nesneye verilen index numarasıdır.yani bizim nesnemiz için LblSayı(indexnumarası).Özellik = Değer
Somut olarak LblSayı(1).Caption = "Selam"



Evet şimdi Program kodlarını yazıp satır satır incelemeye alalım.



CommandButton nesnesinin kod bölümüne yazılan kodlara baktığımızda For i = 0 To 5 yazan kısım şöyle açıklanır.i adlı değişkenin değerini 0 dahil olmak üzere 5 oluncaya kadar döngüyü çalıştır.Yani toplam döngü 6 kez çalışmış oluyor.İsterseniz i değişkenini Dim bildirisiyle tanımlayabilirsiniz.General kısmına Dim i As Integer yazabilirsiniz.Program daha az sistem kaynağı kullanacaktır.Neyse..
Alt satırda LblSayı(i) = Int (Rnd*49) kodunu görüyoruz.Buradaki LblSayı(i) yazan ksım i değişkeninin aldığı değerlere göre gerekli label´ın indexine tekabül ediyor.Yani döngü ilk kez çalıştırıldığında i değişkeni 0 olduğu için LblSayı(0) olan bizim ilk label nesnesimizi işliyor.daha sonra 1 , 2..5 olana kadar çalışan döngü 6 label nesnesinide işlemiş oluyor.Burada .Caption özelliğini kullanmadık.Kafanız karışmasın kullansanızda olur.LblSayı(i).Caption = Int (Rnd * 49) desenizde program aynı şekilde çalışacaktır.Şimdi gelelim Int (Rnd * 49) Fonksiyonuna burada Int bir tam sayı tanımla demek.Parantez içindeki Rnd ise Random yani rasgele bir sayı olsun demek.* 49 ise 0 ile 49 arasında bir sayı olsun demek.0 dahil 49 hariç oluyor.Yani tam bir sayısalLoto olmadı .İsterseniz parantezin sonuna + 1 fonksiyonunu ekleyerek yapabilirsiniz.Formun Form_Load olay yordamına yazdığımız Randomize kodu; Rnd işleminin program her çalıştırıldığında rastgele bir nokta seçmesine yarıyor.Eğer Randomize yazmamış olsaydık Programı her çalıştırdığımızda program hep aynı rakamları seçecekti.Son olarak programı bitiren bir Next komutu görüyoruz.Şimdi programı çalıştırıp nasıl çalıştığına bakın.eğer bi hata yoksa ve derlemek istiyorsanız File menüsünden Project1.exe yazan kısma gelerek dosyanızı exe formatına çevirebilirsiniz.

*Exit For

For-Next döngüsünden çıkmak için bir Exit For bildirisini nasıl kullanacağınız hakkında bir örnek yapalım.
Diyelimki belirli bir kodu döngüye soktunuz ama değişken belli bir değeri aldığında veya belli bir olay gerçekleştiğinde döngüden çıkmak istediniz.İşte bunu Exit For bildirisiyle yapabilirsiniz.Örnek : Forma bir buton yerleştirin ve alttaki kodu yazın.

Private Sub Command1_Click()

For i = 1 To 20
isim = InputBox("En Sevdiğiniz Web Siteleri Hangileri? Çıkmak için son yazın", "Kullanıcı Bilgisi")
If isim = "son" Then
Exit For
End If
Print isim
Next i

End Sub




Evet hemen kodlara bakıyoruz ve 1 den başlayıp 20 ye kadar sürecek bir For-Next döngüsü görüyoruz.Evet burada yeni bir nesne ile karşılaşıyoruz.InputBox nesnesi.Bu nesne kullanıcıdan bilgi almak için kullanılır ve MsgBox gibi kod ile çağrılır.Form üzerine yerleştirilmez.Sadece çağrıldığında gelir ve bilgiyi alırız.Örnek resim aşağıda.


If bloğunun başladığı yere bakarsak, eğer isim = son ise Exit For ile döngüden çık kod satırını görürüz.Eğer bu kodu yazmamış olsaydık InputBox bize 20 defa görünecek yani bizden 20 web sitesi isteyecekti.Oysa işimiz bittiği zaman son yazarak InputBox´u kapatabiliyoruz.Print komutu ise form üzerine yazı yazdırmaya yarar.

*Step

Step anahtar sözcüğü For-Next döngülerinde belirli aralıklardaki değerler için kullanılır.Örnek:

For i = 1 To 10 Step 2
Print i
Next i

DO-LOOP DÖNGÜSÜ

Do döngüleri For-Next döngülerinin bir alternatifi olarak kullanılabilir.İkisinin arasındaki fark ise Do-Loop döngüleri istenilen şart gerçekleşene kadar döngüyü devam ettirirler.Önce söz dizimine bakalım sonrada bir örnekle açıklayalım.

Do While Koşul
Tekrarlanacak olan kod bloğu
Loop

Örnek Program: Programın tuttuğu sayıyı bilmeye çalışacağımız küçük bir oyun.

Önce General kısmına değişkenlerimizi tanımlıyoruz

Dim i As Integer
Dim inpbox As Integer

Şimdi General kısmından formu seçin ve aşağıdakileri yazın

Randomize
i = Int(Rnd * 10) + 1

Şimdi de CommandButton´un kod kısmına aşağıdakileri yazıyoruz.

Do While inpbox <> i
inpbox = InputBox("1 ile 10 arasında bir sayı tuttum?", "Sayı Ne?")
Loop
MsgBox "Tebrikler bildiniz.Tuttuğum sayı " & i

Kodun bitmiş hali tam olarak aşağıdadır.


Dim i As Integer
Dim inpbox As Integer

Private Sub Command1_Click()
Do While inpbox <> i
inpbox = InputBox("1 ile 10 arasında bir sayı tuttum?", "Sayı Ne?")
Loop
MsgBox "Tebrikler bildiniz.Tuttuğum sayı " & i
End Sub

Private Sub Form_Load()
Randomize
i = Int(Rnd * 10) + 1
End Sub



En baştan açıklayalım.i ve inpbox bizim tam sayıları tutan iki değişkenimiz.i değişkenine Form_Load olay yordamındaki koddan 1 den 10 a kadar bir tam sayı geliyor.Yani biz programı çalıştırdığımız da programımız sayısını tutmuş oluyor.Bu tür kodları önceki derslerde açıkladığım için tekrar etmiyorum.Düğmeye tıklandığı zaman Do While inpbox <> i kodu çalışarak programa bir dögünün başladığını ve inpbox değişkeni i değişkenine eşit olmadığı sürece döngüyü sürdürmesini söylüyor.hemen altında inpbox değişkeni bizden girdi almak için InputBox girdi kutusunu çağırıyor.Girdiğimiz sayı programın tuttuğu sayıya eşit değilse bizden tekrar girdi almak için InputBox kutusunu tekrar çağırıyor.Yani Loop gerçekleşiyor.Girdiğimiz sayı programın tuttuğu sayıya yani i değişkenine eşit oldu diyelim.Program hemen döngüden çıkıp bir alt satırdan devam ediyor ve bize burada sayıyı bildiğimize dair bir mesaj kutusu gösteriyor.Burada & bağlacını görüyoruz.Bu bağlaç sayıları veya yazıları veya her ikisini birbirine bağlamaya yarar.Biz burada i değişkenine bağladık.

Eğer döngünün program içinde en az bir kez çalışmasını istiyorsanız koşullu ifadeyi döngünün sonuna koyun.

Do

Yürütülecek kodlar

Loop While Koşul


Do While Koşul şeklinde yazdığımız döngü biz istenilen koşulu sağladığımız an(En başta olsa bile)döngüden çıkar ve döngünün içindeki diğer kodlar işlenmez.Loop While Koşul şeklinde yazdığımız döngü ise önce kodları işler ve sonra bir karşılaştırma yapar.Yani kodlar değer ne olursa olsun en az bir kez çalışmış olur.Aradaki farkta böyle.

* Until

Do döngülerinde while anahtar sözcüğü yerine Until anahtar sözcüğünüde kullanabilirsiniz.Aralarındaki fark ise şöyle

Do While Sayı <>10

Print Sayı

Loop
---------------------------
Do Until Sayı = 10

Print Sayı

Loop


İki döngüyü incelediğimizde sadece aradaki işleçlerin farklı olduğunu görüyoruz.Do While Sayı <> 10 yazan döngüde sayı 10´a eşit olmadığı sürece döngüyü sürdür diyor.Do Until Sayı = 10 yazan döngüde ise sayı 10 a eşit olduğunda döngüden çık diyor.Yani aslında ikiside aynı şeyi söylüyor.Yanlız While´da olumsuz, Until´de ise olumlu cümle kullanılmış. Hangisi kolayınıza geliyorsa onu kullanın.
avatar
eeisahin
admin
admin

Erkek Mesaj Sayısı : 409
Teknolojiyle aran nasıl : geçinip gidiyoruzz
Kayıt tarihi : 03/03/07

Kullanıcı profilini gör

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz