Delphi’de tek satırdan birden fazla şart kontrolü
Bir çok durumda tek satırda birden fazla şartı kontrol ettirebilirsiniz. Bu size kod satırlarınızın kısalmasını sağlayacaktır.
Aşağıdaki örnekleri birbirleriyle kıyaslayınız.
Bu örnekte notun “0” dan küçük veya “100” den büyük olması aynı kodun işletilmesini sağladığı için bu iki şartı tek satırda kontrol edebiliriz.
“And” işleminde o satırdaki tüm şartların sağlanması gerekmektedir.
Şimdi de aynı problemi “Or” operatörünü kullanarakda çözebiliriz.
“Or” yapılan çözümde koşulların yerleri önem arz etmektedir. Yani “if” teki şartları “else if” e, “else if” teki şartları da “if” e alırsanız sonuçlarınızın bir çoğu yanlış olacaktır.
Mesela “(notu<0) or (notu>100)” satırı ile “notu<50” satırlarını yer değiştirirseniz, “0” dan küçük olan sayılar zaten “50” den küçük olacağı için
“else if” i işletme şansınız olmayacaktır (Aralık kesişmesi vardır). “And” için böyle bir durum söz konusu değildir, satırların yerlerini değiştirseniz bile sonuç değişmeyecektir (Çünkü aralık kesişmesi yoktur).
Bu bölümde if yapısının detaylarını sizlere aktarmaya çalıştım. Bir yazılım dilinin en çok başvurduğu yapı sanıyorum budur. Bu yüzden hiç bir pürüz kalmadan kullanılabilecek tüm şekillerine adapte olmalısınız. Ne kadar karmaşık olursa olsun sorunun çözümünü yukarıdaki şekillerden bir tanesiyle gerçekleştireceksiniz. Bazı durumlarda if içerisinde başka bir if daha (belki onun içinde başka bir if yapısı daha vs.) olabilir. Bu tip durumlarda bloklara dikkat ederseniz hiç bir sorun yaşamazsınız.
Şimdi sizlere if yapısı ile ilgili güzel bir örnek çözeceğim. Örneğimiz hala okullarımızda uygulanan sınıf geçme notuyla ilgili olacak. Formunuzun üzerine
4 adet EditBox, iki adette label yerleştirerek aşağıdaki tasarımı oluşturunuz. Geçme notu vizelerin %30 u ile final notunun %70 i toplanarak bulunacaktır.
Yukarıdaki kod sayesinde ikinci GroupBox ta yer alan bütünlemeyle ilgili nesnelerin gözükmemesi sağlanmaktadır.
Şimdi de girilen notları değerlendirecek olan Event’ları oluşturalım. Kodun yazıldığı event’lar Edit3 (Final notu) ile Edit4 (Bütünleme notu) ün Keypress leri olacaktır. “Keypress” yordamı klavyeden herhangi bir tuşa basılması durumunda otomatik olarak işleyen bir yordamdır. Bu yüzden her tuşa basılması bizim kodumuzu işletmesin diye Enter tuşu için (“Key=#13”) kontrol konulmuştur. Artık kodumuz sadece Enter tuşuna basıldığı zaman işleyecek, diğer tuşlar hesaplatma işlemini gerçekleştiremeyecektir.
“Keypress” yordamı hakkında detaylı bilgileri Event’lar kısmında bulabilirsiniz. Şimdilik sadece Cursor o kontrolde iken klavyeden bir tuşa basılması durumunda işletileceğini bilin yeter.
Artık aşağıda verilen kodlarıda projenize ekleyebilirsiniz. Kodların Edit3 ve
Edit4 kontrolünün Keypress ine yazıldıklarını tekrar hatırlatalım.
Bu yordama yazılan kod sadece Final de geçen öğrencilerle ilgilidir. Girilen vize notlarının ortalamasının %30 u ile Final notunun %70 i toplanarak, bulunacak değerin “50” den büyük veya küçük olduğuna bakılacaktır. Eğer ortalama değeri
50 nin üzerinde ise öğrencinin başarılı olduğuna dair uyarı 4 numaralı etikette kullanıcıya bildirilecektir. Aksi takdirde öğrencinin finalde başarılı olamadığı uyarısı yine aynı etikette öğretmenine iletilecektir.
Şayet öğrenci bütünlemeye kaldı ise; bu aşamadan sonra bütünlemeyle ilgili bilgiler gözükecektir. Bütünleme notu girildikten sonra, Enter tuşuna basınca aşağıdaki (Edit4 ün KeyPress yordamı) yordamın kodu işleyip bulunacak, yeni ortalamaya göre sınıfta kalıp kalmadığı belli olacaktır
Bu tür bir programda if yapısı gerçekten programcının eli kolu gibidir. If yapısının anlaşılabilmesi için güzel bir örnek (Daha da güzelleştirilebilir. Onuda siz yapın) olduğunu düşünüyorum .
Bir programın algoritmasını doğru bir şekilde tasarlarsanız, projeyi yazarken size çok büyük bir kolaylık sağlayacaktır. Baştan savma olarak bir işe asla soyunmayınız. Tüm olasılıkları düşünüp, hesaplayıp, alternatifler türettikten sonra uygulamaya girişiniz. En önemlisi de ustalarınızın tavsiyelerine muhakkak uyun. Aksi takdirde bir projeyi birkaç kere tekrar yapmak zorunda kalabilirsiniz. Bu da sizde hayal kırıklığı yaratacaktır.
Bu yazı 24 Kasım 2009 tarihinde Aytaç Cici tarafından Delphi kategorisi altına yazılmış ve 153 views defa okunmuş.





