Add to Technorati Favorites

9 Ağustos 2008 Cumartesi

while algortimasına getirilen çözüm

Merhabalar arkadaşlar, bir önceki soruda while döngüsüyle sayı tahmini oyunu yazmıştık ve de bu döngüyü repeat-until mantığıyla yazdığımız için bir yanlışlık yaptığımızı ve o yanlışlığın tek bir durumda ortaya çıktığını söylemiştim.
--
Yanlışımız şu ki kullanıcıdan değer okumadan A ve B'yi karşılaştırıyoruz bundan dolayı 1.kullanıcı sayı olarak 0 girerse program while döngüsüne girmeden çıkar ve 0'da buldunuz diye birşey yazar ekrana.Bu arada bir değişkenin değeri okunmadıysa otomatik 0 atanır ona.Bu olayın sebebi de 0 atanmasıdır zaten..
--
Bu problemi nasıl çözdük?While'a girmeden "tahmininiz" diyip tahmin aldık 2.kullanıcıdan ve de tahmin=0 yerine 1 dedik.Ne oldu?Kullanıcıdan A ve Byi karşılaştırabileceğimiz değerleri almış olduk ve de problem ortadan kalktı.Eğer ilk tahminde sayı bulunursa 1de buldunuz diye yazdıracak yoksa while'a girip bulana kadar işlemleri devam ettirecek..
--
Dikkat edilmesi gereken husus şudur ki repeat-until ve while ile aynı probleme çözüm getirirken yani aynı olayı programlamaya dökerken böyle farklılıklar olacaktır bunları gözden kaçırmamak gerekir.Repeat-Until'de durum sonda kontrol edildiği için veriler toplanmış olur ama while'da durum en başta kontrol edilir.Yani while'da döngüye girmeme ihtimali olsa bile, repeat-until'deki işlemler en az 1 kere gerçekleşecektir!! Bunu unutmayalım!!.. Görüşmek üzere...

Hiç yorum yok: