Konu: C++ Dersleri
Tekil Mesaj gösterimi
Alt 29 Aralık 2009, 14:56   #9
Çevrimdışı
toXic
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: C++ Dersleri




Girilen Rakamsal Değerin; 18 ile 65 arasında olup olmadığını kontrol Edelinm..


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* Girilen yaşın, 18 ile 65 arasında olup olmadığını belirler. */ #include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas >= 18 && girilen_yas <= 65 ) printf("Girilen yaş, 18 ile 65 arasındadır.\n"); //Girilen yaş 18 ile 65 arasında değilse, aşağıdaki else //bloğu çalışır. else { //Girilen yaş 18'den küçükse if( girilen_yas < 18 ) printf("Girilen yaş, 18'den küçüktür.\n"); //Girilen yaş 65'ten büyükse else printf("Girilen yaş, 65'ten büyüktür.\n"); } }



----------

Yukarda; koşullu ifadeleri görmüştük. Hatırlatmak için üzerinden geçersek, if ile bir ifadeyi kontrol ediyor ve doğruysa, buna göre işlemler yapıyorduk. Bir de if - else yapısı vardı. if - else yapısında da, koşulu gene kontrol ediyor, doğruysa if bloğunun altında kalanları yapıyorduk; yanlışsa, else bloğunda olan kodlar işleme alınıyordu. Son derece basit bir mantık üzerine kurulmuş bu yapıyla, yapılamayacak kontrol yoktur. Ancak öyle durumlar vardır ki, if - else yapısı yeterli verimliliği sunamaz.
Diyelim ki, birden fazla kontrol yapmanız gereken bir durum oluştu. Hatta örnek vererek konuyu daha da somutlaştıralım. İstenilen bir programda, klavyeden size yaş bilgisi veriliyor. Siz de bu bilgiye göre, şayet yaş 18'den küçükse çocuk; 18-30 yaş arasında genç; 30-50 yaş arasında ortayaş diye bir mesaj bastırıyorsunuz. Basit bir program.
Şimdi bunu sadece if yapısıyla kuruyor olsaydık, her seferinde yaşın uygun aralıklara düşüp düşmediğini kontrol eder ve ona göre sonucu ekrana bastırırdık. Ama bu son derece verimsiz bir yöntem olurdu. Çünkü zaten yaş bilgisinin genç olduğuna dair bir karar vermişsek, sonrasında tutup bunun yaşlı olup olmadığını kontrol etmenin bir esprisi olmayacaktır. Verilebilecek en kötü cevabı aşağıda bulabilirsiniz
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* Sorulan soruya verilebilecek en kötü cevap. */ #include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas < 18 ) printf("Daha çocuk yaştasınız, hayatın başındasınız.\n"); if( girilen_yas >= 18 && girilen_yas <= 30 ) printf("Gençliğin, güzelliği bambaşka!\n"); if( girilen_yas > 30 && girilen_yas <= 50 ) printf("Hepsini boşverin, olgunluk ortayaşta başlar!\n"); return 0; }

IF - ELSE Kullanarak daha efektif ve yakisikli hale getirelim simdi de bu kodu :P

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* if - else yapısıyla daha efektif bir yapı */ #include<stdio.h> int main( void ) { int girilen_yas; printf("Lütfen yaşınızı giriniz> "); scanf("%d",&girilen_yas); if( girilen_yas < 18 ) printf("Daha çocuk yaştasınız, hayatın başındasınız.\n"); else { if( girilen_yas >= 18 && girilen_yas <= 30 ) printf("Gençliğin, güzelliği bambaşka!\n"); else { if( girilen_yas > 30 && girilen_yas <= 50 ) printf("Hepsini boşverin, olgunluk ortayaşta başlar!\n"); } } return 0; }

Yukardaki program daha efektif bir yapı sunmuş olmasına rağmen, eğer kontrol ettiğimiz aralıkların sayısı çok fazla olsaydı, tam bir başbelası olacaktı! Çünkü if - else içinde, bir başka if - else bloğu ve onun içinde bir başkası... bu böyle sürüp gidecekti. Kısacası performans olarak çok bir şey değişmese de, kodu yazan ve/veya okuyacak olan için tam bir eziyete dönüşecekti. İşte bu nedenlerle daha efektif yapılara ihtiyaç duyuyoruz.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet