1 Temmuz 1987 Tarihli Commodore Gazetesi Sayfa 58

1 Temmuz 1987 tarihli Commodore Gazetesi Sayfa 58
Metin içeriği (otomatik olarak oluşturulmuştur)

Örneğimizin başında 1 değişkenine sıfır değeri vermiştik. Eğer 1 değişke- nine 21 değeri verseydik döngü hiç yapılamadan kontrol bir sonraki ko- muta aktarılırdı. Yani Boolean İfa- desi ilk işlendiğinde FALSE sonucu verirse, döngü içindeki komutlar hiç tekrarlanmadan kontrol bir sonraki komuta geçerdi. İsterseniz şimdi de yeni öğrendiği- miz döngü komutunu bir örnek prog- ramda kullanalım. Programımızda kaç gün içinde 1.000.000 TL kazana- cağımızı hesaplayacağız. Fakat para- yı kazanmamız bir kurala bağlı: İlk gün | TL, ikinci gün 2 TL, üçüncü gün 4 TL, dördüncü gün 8 TLyani her gün bir evvelki günün iki katı para kazanacağız. Programımızda döngü- nün ne kadar süreceğini bilemediği- miz için de, WHILE komutunu kul- lanacağız. Zaten programımızın ama- cı da, döngünün ne kadar süreceğini bulmak. Program ve açıklaması için program döküm ekine bakınız. Döngülerin en çok kullanıldığı yer- lerin başında bir seri bilginin okunup işlenmesi gelir. Mesela bir işyerinde- ki işçilerin maaşlarının, çalışma sü- relerinin okunması gibi. Burada kar- şımıza bilgilerin okunmasına ne za- man son vereceğimiz problemi çıkı- yor. İlk çözüm olarak bilgilerin okun- masına başlamadan evvel, okuyaca- ğımız ilk değeri veri sayısı olarak alıp, bir FOR döngüsü ile verileri okuya- biliriz. Bu tip veri girişine şöyle bir örnek verelim: 5 3.87 9.65 5.61 7.76 9.19 5, bize okunacak beş veri olduğu- nu bildiriyor. Bu yöntem programı- nızın başında kaç veri işleyeceğinizi biliyorsanız işe yarayabilir. Fakat iş- leyeceğiniz veri sayısını bilmiyorsanız ikinci yöntemimizi uygulamamız ge- rekecek. İkinci yöntem olarak istediğimiz özel bir değer kullanacağız. Veri oku- mamız bu özel veri girilinceye kadar devam edecek. İstediğimiz özel değeri saptarken, bu değerin isteyeceğimiz değerlerle karışmaması için çok dik- katli olup, seçimimizi buna göre yap- malıyız. Mesela O ile 100 arasında ve- riler işleyeceğiz. Bu durumda 999 özel değer olarak çok uygun bir seçim olur. Özel değer okuyarak veri işlediği- miz durumlarda yapacağımız işlerin genel hali şöyledir: İlk veriyi okuyun WEHİLE (Okuduğunuz değer özel değere eşit değilse) DO Verileri işleyen komutlar Bir sonraki veriyi okuyun Bu genel duruma bir örnek vere- lim. Örneğimizde özel değer 999.0 ve kullanılan değişkenlerin daha evvel tanımlardığını kabul ediyoruz; READ(x); WHİLE x<> 99.0 DÜ BEĞIN Yızx' A READi»x); END İlk READ komutu ilk veriyi oku- yor. WHIİLE komutu bunun özel de- ğer olup olmadığını kontrol ediyor. Eğer özel değer değilse okunan değer işlenip yeni bir değer okunuyor, bu işlemler okunan değer özel değere eşit olana kadar devam ediyor. Okunan değer özel değere eşit olduğunda, döngü sona erip kontrol bir sonraki komuta aktarılıyor. Bu tür kullanımda okunan değerin işlenmeden evvel daima kontrol edil- diğine dikkat edelim, böylece eğer okuduğumuz değer özel değerse bu- nu işleme sokmuyoruz. Son olarak WHILE..DO komutu- nu kullanırken nelere dikkat etmemiz gerektiğine değinelim. Döngüye gir- meden evvel döngüyü kontrol edecek değişkenin ilk olarak bir değere eşit- Commodore lenmesi gerekir. Döngü içinde döngü- yü kontrol eden değişkenin değerini her seferinde değiştirmezseniz hiçbir zaman döngünün içinden çıkamazsı- n ız. FOR döngüsünü kullanırken dön- güyü kontrol eden değişkenin artışı birden farklı ise bunun yerine WHI- LE döngüsü kullanabilirsiniz. Örne- ğin: WHİLE 1<- 100 DO BEĞIİN D—ı-45; WRİTEü:3); END REPEAT...UNTIL PASCAL'da döngüleri kontrol et- mek için bir başka döngü çeşidimiz daha var, Bu döngü çeşidinin yapısı- nı inceleyelim: REPEAT komut; komut : UNTIL Boolean İfadesi REPEAT...UNTIL yapısı içinde döngüye giren komutların başına BE- GIİN...END eklememiz gerekmiyor, çünkü REPEAT...UNTIL yapısı bu görevi yerine getiriyor. REPEAT...UNTİIL arasındaki ko- mutlar işlendikten sonra Boolean İfa- desi işlenir. Eğer bu ifade TRUE ve-

Bu sayıdan diğer sayfalar: