Bu sayfadaki yazılar
Sayfanın metni
Sayfa 65
FOR I:=1 TO 5 DO BEGIN WRITE ('AB'); WRITE ('CD'); END; Bu programda FOR komutu FOR'dan başlayıp END'e kadar olan her şeyi içermektedir. Bu kısma tek bir komutmuş gibi davranabiliriz. Yazımızın bundan sonraki kısmında FOR komutunu kullanarak bir örnek program inceleyeceğiz. pr-1 26 satır 96 - 123 Programın açıklanması: Programımız belirli bir miktar paranın hesabınızda olduğunu ve her ay belli bir miktarın bu hesaba eklendiğini farz etmektedir. Eğer her ay belirli bir faiz yüzdesi hesaplanıp hesabınıza eklenirse sizin istediğiniz ay kadar sonra hesabınızın ne kadar olacağı hesaplanacaktır. Programımızda hesabınızda bulunan para miktarı MİKTAR değişkeninde saklanmaktadır. DEPOZİT değişkeninde aylık depozit, YILLIK değişkeninde yıllık faiz yüzdesi ve AY değişkeninde istediğiniz ay sayısı saklanmaktadır. Program başladığında sizden DEPOZİT, YILLIK ve AY değişkenlerinin ilk değerlerini isteyecektir. Yıllık faiz yüzdesini aylık yüzdeye çevirmek için yıllık yüzdeyi 12.0'a bölmemiz gerekir. Bu bize yüzde olarak sonuç verir bunu normale çevirmek için 100.0'a bölmeliyiz. Programımızda bunu şu komut yapmaktadır: AYLIK:=YILLIK/1200.00 Bu programda kullandığımız tekniği başka programlara da uygulamak mümkündür. Programın başında verilen miktar, aylık depozit ve faiz yüzdesi ile her ayın sonunda durumunu elde etmek çok kolaydır. Biz sadece bu hesaplaşmayı kullanıcının istediği kadar ay için yapıyoruz. MİKTAR değişkenin değeri o andaki hesabınızda bulunan miktardır. Aylık depozit yapıldığında bunun değeri hesaptaki miktara eklenmektedir. Bunu programımızda yapan komut da şudur: MİKTAR:=MİKTAR+DEPOZİT Belirli bir ay için kazanılan faizi hesaplamak için hesaptaki miktarı aylık faizle çarpıyoruz: FAİZ:=MİKTAR*AYLIK Her ayın sonunda kazanılan faiz hesapta bulunan miktara ekleniyor, bunu yapan komut şudur: MİKTAR:=MİKTAR+FAİZ Hesaptaki miktarı verilen ay sonunda hesaplamak için bu komutları istenen ay sayısı kadar tekrarlamamız gerekmektedir.
FOR KOMUTUNUN İÇ İÇE KULLANIMI
İç içe döngüleri açıklamaya bir örnekle başlayalım. PROGRAM kalıp; * dik üçgen *
VAR BEGİN FOR 1:—1 TO 5 DO BEGİN FOR j:—-1 TO 1 DO Write (*'); WRITELN END END.
* ** **x
Bu çıktıyı alabilmek için iki FOR komutu kullandık, FOR komutlarından biri beş satırın basılmasını, diğeri de her satırda gerektiği kadar yıldız basılmasını sağladı. Programımız şu şekilde çalışmaktadır, içteki FOR komutu I değişkeninin belirttiği satırda, I değişkeninin değeri kadar yıldız basıyor, yani birinci satırda bir yıldız, ikinci satırda iki yıldız şeklinde: İçte bulunan FOR döngüsü bittiğinde I değişkeninin değeri bir artmaktadır, böylece içteki döngüye tekrar sıra geldiğinde bir önceki satıra göre bir yıldız daha fazla basılmaktadır. Bu yazımızda döngü komutlarından FOR komutunu inceledik. Gelecek yazımızda döngü komutlarının tanıtımına devam edecek ve konunun daha iyi anlaşılabilmesi için örnekler vereceğiz. Şimdilik hoşça kalın.
65
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 64
BURAK KİPER
Döngü komutları sayesinde birden fazla kere tekrarlanması gereken komut gruplarının istediğimiz sayıda tekrarlanmasını sağlayabiliriz. Mesela hacim hesaplayan bir programımızın sadece bir tek cismin hacmini hesaplaması pek bir işimize yaramaz. Bu işi bir hesap makinesi ile de yapabiliriz, fakat döngüleri kullanarak istediğimiz sayıda cismin hacmini hesaplayabiliriz. Kısaca, bir bilgisayar programının yararlı olabilmesi için programın bazı komutlarının bir kereden fazla çalıştırılabilmesi gerekir. Programımız bir kere de çalışsa bazı komutların birden fazla çalışmasını döngü komutları sağlar.
Döngü komutlarını kullanırken dikkat etmeniz gereken en önemli şey, programınızı sonsuz döngülere sokmamaktır. Bu genellikle en sık yapılan hatalardandır. PASCAL'de üç tane döngü komutu bulunmaktadır. Sırasıyla FOR komutu, WHILE komutu, REPEAT-UNTIL komutu. Şimdi bu komutları tek tek inceleyeceğiz.
FOR KOMUTU
For komutunu anlatmanın en iyi yolu bir örnek vermek: FOR I:=1 TO 5 DO WRITE (I); Bu ufak program çalıştığında WRITE komutu beş kez çalışmış olacaktır, bu ufak programın çıktısı şu şekildedir: Programımızdaki döngünün çevrimi sırasında I değişkeninin değeri 1, ikincisinde 2'dir. I değişkeninin aldığı değeri şu programla görebiliriz. FOR I:=1 TO 5 DO WRITE (I:3); çıktı şu şekildedir: 1 2 3 4 5 14. sayımızdan hatırlanacağı gibi, komuttaki ibaresi çıktılar arasındaki istenen boşluğu bırakan :3 komutuna denk düşmektedir. Bu çıktıyı alabilmek için BASIC dilinde aynı programı şu şekilde yazabiliriz. FOR I=1 TO 5: PRINT I; : REM buradaki noktalı virgülün amacı aynı satıra yazmaya NEXT I : REM devam etmek içindir. Eğer bilgisayarın geri saymasını istersek TO yerine DOWNTO kullanabiliriz.
(4)
FOR I:=5 DOWNTO 1 DO WRITE (I:3); 5 4 3 2 1 For komutunda döngüü sınırlamak için, doğrudan doğruya bir değer vermek yerine aritmetik bir ifade de kullanabiliriz. Mesela, FOR I:=5*2 TO 5*3 DO WRITE (I:2); 10 11 12 13 14 15 For komutunda DO'dan sonra sadece bir komutun tekrarlanışını gördük, fakat istersek bir komutlar grubunun da tekrarlanmasını sağlayabiliriz. Bunu yapabilmek için tekrarlamak istediğimiz komutlar grubunu BEGIN ve END arasına alacağız. Şimdi bu şekli bir örnekle görelim. FOR I:=1 TO 3 DO BEGIN WRITE ('AB'); WRITE ('CD'); END; ABCDABCDABCD.
FOR komutunu kullanırken şuna dikkat etmek gerekir. FOR komutundan sonra gelecek komutla arasında olması gereken noktalı virgül, tekrarlanmakta olan komuttan sonra konur.
5 DO WRITE (1:3)
Üstteki örnek programı şu şekilde de yazabiliriz:
a:—1.0; FOR 1TD5SDO WRITE 1:3 ; b: Programlarımızda genellikle ikin- ci yazdığımız şekilde bir yazım tarzı kullanacağız.