SAYAC- 0 WHILESAYAC 10/ PRINT “MERHABA” SAYAC-— SAYACYtI WEND PRINT “SON” Bu program bir önceki programla aynı işi yapıyor, ama ikincisi prog- ramcının olayı çok daha kolay göre- bilmesine olanak veriyor. Bu prog- ramda da başlangıçtaki sayaç sıfırla- nıyor Çinitialize ediliyor). Ardından WHİILE komutu geliyor. Bu komu- tu şöyle açıklamak mümkün: “SA- YAC 10'dan küçük olduğu müddet- çe, WEND'e kadarki bütün komut- ları yerine getir.”' Yani pratikte WHI- LE ve WEND, döngünün başını ve sonunu işaretleyen parantezi oluştu- ruyorlar. Döngünün içinde bu iki ko- mut arasında her akış sayacı İ artı- yor. SAYAC nihayet 10'a eşit oldu- ğunda, WHİILE'ın ardından gelen koşul (SAYAC 10)artık geçerli ol- muyor ve program WEND'in ardın- dan gelen komutla devam ediyor. WEHİLE-WEND kombinazsoyu- nun varlığının amacı, yalnızca bir döngünün komutlarının belirli bir sa- yıda yinelenmesini salamak değil el- bette. Programcı, bu kombinasyonu, henüz döngünün kaç kez işlemesi ge- rektiğini bilmediği durumlarda kul- lanır. Döngünün sona ermesi belirli bir olayın gerçekleşmesine bağlıdır. Örnek: INPUT SAYI Bu program virgülden sonra hanesi olmayan bir sayı verir. IİNPUT ko- mutu klavyeden bir giriş bekler. Bu komutun verilmesiyle ekranda bir kursor belirir. Şimdi, (RETURN) tu- şuna basıldığında sayının adının bu- lunduğu bellek alanına yerleşecek olan herhangi bir değer klavyeden gi- rilebilir. Sayı, S'ye geçici olarak yer- leşir. Program, virgülden önce bir sı- fır kalana kadar S'den | değerini ek- siltir. Bu durumda S'de yalnızca sa- yının virgülden sonraki kısmı kalır. Bu, sayıdan çıkarılır ve sonuç ekra- na yazılır. WHİILE döngü akışlarının adedi bu sayıya bağlıdır. Peki, programın yerine getirmesi gereken döngü sayısının önceden bi- linebildiği durumlarda ne olacak? Bu durum için de tabii hemen her prog- ramda bulunabilen özel bir yapı söz- konusu. BASIC dilinde bu görevi FOR... NEXT döngüsü yerine geti- rir. Ama burada bu döngünün açık- lamasına pek girmek istemiyoruz. Virgülden sonraki hanelerin orta- dan kaldırılması çoğunlukla gerekli olmaktadır. Varsayalım ki, büyükçe bir programın üç yerinde bir değerin yalnızca virgülden önceki hanelerinin basılması gerekiyor olsun. Bu durum- da son örneğin satırlarının bu prog- ramın içinde üç kez yinelenmesi ge- rekecek. Bu da oldukça gereksiz bir yer kaybına neden oluyor. Sorunu daha basit biçimde çözebilmek için BASIC ve diğer birçok programlama dilinde prosedür adı verilen bir yön- temden yararlanılabiliyor. Örnek: PROC VIRGULDENSONRASIZ (SAYI) STATIC END PROC Her iki örnekte de aslında aynı program adımları sözkonusu. Ama ilk ve son satırlar bu komutlardan özel bir durum yaratıyorlar: Bir pro- sedür. Prosedürler genellikle büyük programların sonlarında bulunurlar. Eğer bir programın belirli üç yerin- de bir sayının yalnızca virgülden ön- ceki kısımlarının verilmesi gerekiyor- sa, Başla PRINT “MERHABA” SAYAC-SAYACL41I IFSAYAC 10 PRINT “SON” Sayacı sıfıra getir HBA Selam ver Sayacı bir artır Akış diyagramı ve BASIC'e çevirisi