UYGULAMALAR -2 Select case Yapısı: Bir değişkenin aldığı birçok değere göre ayrı komutların çalıştırılması gereken durumlar için If yapısını kullanmak yerine Case yapısını kullanmak daha avantajlıdır. Select Case Değişken case Durum1: Komutlar case Durum2,Durum3: Komutlar case Durum4 to Durum7:Komutlar case is<durum8:komutlar case is>durum9:komutlar case Else Komutlar End Select Örnek: Vize final notlarını hesaplayarak, başarı durumunuzu gösteren bir program yazalım. Bunun için form üzerine bir komut butonu ekleyip caption özelliğini Başarı durumunuz olarak yazın. Programın kodları şu şekilde olacaktır. Dim v, y, z, a v = InputBox("Not girişi", "Vize notunuz:") y = InputBox("Not girişi", "Final notunuz:") If y >= 50 Then a = (v * 0.4) + (y * 0.6) If y < 50 Or a < 50 Then z = InputBox("Not girişi", "Bütünleme notunuz:") a = (v * 0.4) + (z * 0.6) Select Case a Case 0: MsgBox ("Hiç birşey öğrenememişsiniz., Ortalamanız:" & a) Case 1 To 20: MsgBox ("Durumunuz hiç iyi değil., Ortalamanız:" & a) Case 21 To 40: MsgBox ("Durumunuz iyi değil, Ortalamanız:" & a) Case 41 To 49: MsgBox ("Daha çok çalışmalısınız, Ortalamanız:" & a) Case 50: MsgBox ("Sınırda bir not aldınız., Ortalamanız:" & a) Case 51 To 65: MsgBox ("İyi bir not aldınız., Ortalamanız:") Case 66 To 75: MsgBox ("Tebrikler. İyi bir not aldınız., Ortalamanız:" & a) Case 76 To 100: MsgBox ("Tebrikler. Çok iyi bir not aldınız., Ortalamanız:" & a) Case Else: MsgBox ("Böyle bir not almış olamazsınız., Ortalamanız:" & a) End Select Program ekranda şu şekilde görünecektir.
IIF: Bir değişkenin değeri iki durumdan birine göre değer alıyorsa if yapısı yerine IIF kullanılabilir. Bu size daha az satırla aynı işi yapabilme imkanı verir. IFF (şart;doğru ise;yanlış ise) Bu fonksiyonda şart doğru ise birinci ifade, yanlış ise ikinci ifade işleme girer. Örnek: Bir x sayısının karekökünü alıp ekrana yazdıracak bir program yazalım. Kök alma işleminde önce sayının negatif olup olmadığını kontrol etmek gerekir. Form ekranına karekök caption isimli bir komut butonu ekleyelim. Programın kodları şöyledir: Dim x, y x = InputBox("Kökü alınacak sayı") y = IIf(x < 0, MsgBox("Negatif sayının kökü olmaz"), MsgBox("Sonuç:" & Sqr(x))) Program ekranda şu şekilde görünür:
Choose: Bir değişkenin aldığı değer bir sayıya bağlı ise Choose yapısını kullanmak uygundur. Sonuc=Choose(Sayı,değer1,değer2,değer3,...,değerN) Formatında kullanılır. Buradaki sonuç sayıya bağlı olarak değer listesinden bir değerdir. Örneğin sayı 3 ise değer3 olacaktır. Switch: Switch fonksiyonunda birden fazla şartı aynı satırda kontrol etmek mümkündür. Sonuc=Switch(Şart1,Değer1,Şart2,Değer2,...,ŞartN,DeğerN) Şeklinde kullanılır. Buradaki şartlardan hangisi tutuyorsa Sonuç değişkenine ona karşılık gelen değer atanacaktır. Dim n n= Val (InputBox( Notunuz ) Print Switch(n>0 And n<40, Kötü, n>=40 And n<60, Orta, n>=60, İyi ) DÖNGÜ DEYİMLERİ FOR Döngüsü Örnekler: 1. 1 den 20 ye kadar olan sayıları form üzerine yazdıracak bir program oluşturalım.
Programın kodları şu şekildedir: Dim i For i = 1 To 20 Print i Program çalıştığında ekranda şu şekilde görünecektir. 2. Ekranda rasgele koordinatlara iç içe kareler çizecek bir program yazalım. Program için formun üzerine bir komut düğmesi yerleştirin. Programın kodları şu şekildedir: Dim mx, my, i mx = Rnd * Form1.ScaleWidth my = Rnd * Form1.ScaleHeight For i = 10 To 0 Step -1 Line (mx + i * 10, my + i * 10)-(mx - i * 10, my - i * 10),, B Private Sub Form_Load() ScaleMode = 3 Randomize Timer BackColor = &HFFFFFF
Program çalıştırıldığında; 3. Kullanıcının gireceği iki aralık arasındaki tek, çift veya bütün sayıları toplayacak bir program yazalım. Örnek için aşağıdaki formu oluşturalım. Programın kodları şu şekildedir: Dim bas, son, top, i bas = Val(Text1) son = Val(Text2) If Check1 And Check2 Then For i = bas To son If Check1 And Not Check2 Then If bas Mod 2 = 0 Then bas = bas + 1 For i = bas To son Step 2 If Not Check1 And Check2 Then If bas Mod 2 <> 0 Then bas = bas + 1 For i = bas To son Step 2 Label3 = top