DERS 5: PROGRAM KONTROLÜ

 

Ders sonunda yapabilecekleriniz:

 

-Program içindeki akış kontrolünü açıklamak.

 

I. PROGRAM KONTROLÜ

Program içinde tanımlama deyimleri, atama deyimleri yer alır. Ancak programın işleyişinde bu deyimler sırasıyla değil de belli bir mantıkla işletilmesi gerekir. İşte program deyimlerinin işleyiş sırasının kontrolüne program kontrolü denir.

 

Program kontrolü karar yapıları ve döngülerle sağlanır:

 

Karar yapıları:

-If...Then..Else

-Select Case

 

Karar yapılarının yanı sıra yaygın olarak kullanılan bir diğer yapı da döngü (loop) tur. Döngüler özellikle programın etkinliği bakımından önemli bir programlama tekniğidir.

 

Döngü Yapıları:

-Do...Loop

-For...Next

 

A. DÖNGÜLER

Döngüler işlemlerin belli bir sayıda ya da koşulla ilgili olarak yinelenmesi (tekrarı) anlamına gelir.

 

Döngü yapıları:

 

Do...Loop: Bir koşula göre döngü.

For...Next: Belli bir sayıda döngü (sayaçlı).

 

Bir sayaçlı döngü For...Next döngüsü olarak bilinir. For deyimi ile döngünün sayacını tanımlanır. Next deyimi ile yinelecek blok sona erer. Döngünün her dönüşünde sayaç değişkeni bir sayı artırılır. Böylece bir sayıdan diğerine kadar işlemler sürüdürülür.

 

Do...Loop Deyimi:

Bir blok deyimi verilen koşul doğru (True) olduğu sürece işletir.

 

Yapısı:

 

Do

            [ifade bloğu]

            [Exit Do]

            [ifade bloğu]

Loop [{While | Until} koşul]

 

Do döngülerinin temelinde koşul (condition) yatar. Bir koşul True ya da False olabilen bir ifadedir.

 

Tablo: İlişki  operatörleri

Operatör        Anlamı

<                     Küçüktür

<=                   Küçük eşittir

>                     Büyüktür

>=                   Büyük eşittir

<>                   Eşit değildir

=                     Eşittir

And                 Ve

Or                   Veya - Ya da

Not                  Değil

 

Örnek: Bir döngü kurma

 

Do While Ücret < 100000 ' Ücret 100000 den küçük olduğunda

            Toplam = Toplam + Ücret

Loop

 

For...Next Deyimi:

Bir grup deyimi belli sayıda çalıştırarak (tekrar ederek) bir döngü oluşturur. Örneğin birden ona kadar (on kere) şu işlemi yap şeklinde. Özellikle bir döngü denetim değişkenin kullanıldığı (sayaç) bu döngü yapısı iç içe döngülerin de yapılmasını sağlar. For.Next döngüleri özellikle dizilerin işlenmesinde de yaygın olarak kullanılır.

 

Yapısı:

 

For sayaç = başlangıç To bitiş [ Step artırım ]

            [ifade bloğu]

            [Exit For]

            [ifade bloğu]

Next [sayaç]

 

Örnek: Birden ona kadar sayıların toplamını alır:

 

Sub Button1_Click ()

Dim Toplam As Double

Toplam = 0

For I = 1 To 10

    Toplam = Toplam + I

Next I

MsgBox "1'den 10'a kadar sayıların toplamı: " & Toplam

End sub

 

NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için www.farukcubukcu.com adresine bakınız.

 

B. KARAR YAPILARI

Karar yapıları If...Then...Else ve Select...Case deyimleriyle gerçekleştirilir. If...Then...Else deyimi belli bir deyimi ya da bir blok deyimi bir koşula bağlı olarak işletmeyi sağlar. Koşulun doğru olması True, yanlış olması False anlamına gelir. Select Case deyiminde ise özellikle bir karar değişkeninin aldığı değerlere göre değişik işlemlerin yapılması sağlanır.

 

Karar yapılarının temelinde değerler arasındaki ilişkiler yatar. İlişkiler değerler arasındaki operatörlerle kurulur.

 

Tablo: İlişki  operatörleri

Operatör        Anlamı

<                     Küçüktür

<=                   Küçük eşittir

>                     Büyüktür

>=                   Büyük eşittir

<>                   Eşit değildir

=                     Eşittir

And                 Ve

Or                   Veya - Ya da

Not                  Değil

 

If...Then...Else Deyimi:

Klasik olarak kullanılan karar mekanizmasıdır. Eğer koşul sağlanıyorsa (if) bunu yap; yoksa şunu yap (else) gibi:

 

If koşul  Then

            [işlem1]

Else

            [işlem2]

End If

 

If-Then-Else yapısının birinci kullanım biçiminde genellikle basit ifadelere karşılık gelen ifadeler çözülür. Koşul doğruysa (True) Then'den sonraki deyim işletilir, değilse bu deyimler atlanır. İkinci kullanım biçiminde ise; daha karmaşık hesaplamalara ve kararlara karşılık gelen ifadeler çözülür. Bu yapıda koşul doğruysa işlem1 yerine getirilir, değilse Else'den sonra belirtilen işlemler yerine getirilir.

 

Select Case Deyimi:

Bir değerin test edilmesini sağlayan ve yaygın kullanılan bir yapıdır. Select Case yapısı bir koşul ya da değişken için olası değerlerin değerlendirilmesini sağlar. Diğer bir deyişle bir ifadenin değerine göre bir ya da daha çok deyim grubunun (ifade bloğunun) işletilmesini sağlar.

 

Yapısı:

 

Select Case test değeri

   Case değer1

      deyim blok 1

   Case değer2

      deyim blok 2

End Select

 

Select Case yapısı içindeki ilk deyim Select Case'dir. Ardından bir değeri olan test değişkeni yer alır. Bu değer bir sayı, string ya da fonksiyon olabilir. Ardından koşulların belirtildiği Case deyimleri yer alır.

 

Örnek: Ücret hesabı

 

Ücret= Val(Text1.Text)

Select Case Ücret

    Case 1000 to 1100

        Vergi = Ücret * 0.20

    Case 1101 to 1200

        Vergi = Ücret * 0.25

    Case 1201 to 1300

        Vergi = Ücret * 0.30

    Case Else

        Vergi = Ücret * 0.40

End Select

 

II. UYGULAMA

Önceki derslerde ekrandan alınan tarih bilgilerini kontrol etmek için IF'li bir yapı oluşturabilirsiniz. Örneğin kayıt tarihi olarak girilen bilginin günün tarihinden daha küçük olması gerekir.

 

III. GÖZGEN GEÇİRME

1. Karar yapılarını açıklayın.

2. IF ve Select yapılarını birbiriyle karşılaştırın. Hangi durumlarda tercih edilebilir?

3. Döngüleri yarıda kesip çıkmak mümkün mü? Evet ise nasıl?