Bu sayfadaki yazılar
Sayfanın metni
Sayfa 60
main ( ) /* arakter sayan program */ | int nc ; ne— Ö; while (getchar ( ) ! —- EOF) 4 4 NC; printf nc);
Programda yer alan ++nc işlemi bir arttırma anlamındadır ve matematiksel gösterimi nc = nc + 1'dir. Benzer olarak --nc de bir çıkartma işlemidir. Bu da nc = nc - 1 şeklinde ifade edilir.
Önceden görmüş olduğunuz for işlemi ile program daha kısa olarak yazılabilir.
main ( )
int nc; | for (nc—0 ; getchar ( ) !— EOF; 4 4 nc)
printf Vn”, nc) ;
|
|
Bu örnekte for çevrimi getchar( ) != EOF olduğu sürece devam etmekte ve sayma işlemi ++nc ile gerçekleşmektedir. For çevriminin altında yer alan (;) işareti for çevriminin bir alt işlemi olmadığını göstermektedir.
SATIR SAYMA
Karakter sayma programına ufak bir ek yaparak satır sayma işlemini gerçekleştirebiliriz. Bildiğiniz gibi her satır sonu newline ' ' karakteri ile gösterilmektedir. Bu karakter ENTER veya RETURN tuşlarının ASCII koduna da karşılık düşmektedir. Bu açıklamalardan sonra programı yazalım:
main ( ) / * satır sayıcı program*/
|
int c,nl while ((c — getchar ( )) ! - EOF) nm”)
printf nl) ; |
While çevrimi ile işlem getchar( ) != EOF olana kadar devam etmekte while çevrimi içinde bulunan if
4 Anl ;
işlemi ile newline karakterler * nl ile sayılmaktadır. If şartı (c — — * çeşit newline koşulu süresince * 4 nl sayma işlemini gerçekleştirmektedir. “$” ifadesinin tek karakter uzunluğunda olduğunu tekrar söyleyelim. ifadesi arkadan gelen karakterin kontrol karakteri olduğunu göstermek için kullanılır.
Şimdilik hoşçakalın... O 61
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 61
Pur
BURAK KİPER
LİSTE PROGRAMI
BASIC programlarınızın listesini printer'dan aldığınızda ne olduğunu anlayamadığınız veya sizin anlayıp da başkalarının anlayamadığı çeşitli şekiller görürsünüz. Veya PRINT komutunda yer alan boşluğun ne kadar olduğunu hesaplayamazsınız. Eğer yazmış olduğunuz programın printer'dan çıkan listesinin anlaşılır olmasını istiyorsanız Program Döküm Eki'ndeki PROGRAM3 (21. sayıya bakın)'ü yazın. Bu program sadece C-128'in BASIC'i için çalışacaktır. Programımızın bize yapacağı bir iyilik de program satırlarındaki komutlar arasına okunabilirliği sağlayacak boşluklar yerleştirmesi olacak. Programı yazdıktan sonra LİSTE adı ile kayıt edin. Kayıt bittikten sonra çalıştırın. Kısa bir süre sonra program sizden bazı parametreler isteyecek E ekran B büyük harf yerine geçiyor. Son olarak LİSTE yazın. Karşınıza program formatlı olarak gelecek. Kontrol karakterlerinin ters olarak basıldığına dikkat edin. İsterseniz programın bir kopyasını printer'dan alabilirsiniz. Programımızı kullanarak başka programların listesini almak için aşağıdaki adımları uygulayın; (1) POKE 46,192:POKE 49152,0:NEW Bu komut BASIC başlangıcını $C000 adresine alır. Eğer ? FRE(0) komutunu kullanırsanız 16K'dan daha az hafızanın kaldığını görürsünüz. (2) Programınızı LOAD ile yükleyin. ',8' burada çok önemli, bu şekilde program istediğimiz adres böylesine yükleniyor. Almak istediğiniz programı LOAD “progismi”,8,4 ile yükleyin. Çok önemli, bu şekilde yüklediğiniz program normal BASIC başlangıcına yükleniyor ve bizim programımızı silmiyor. Programımızdaki DR değişkeni Dr=0 ise programın listesi ekrana, Dr=1 ise printer ve ekrana gönderilecek.
Gerçek Zamanlı Saat
Günümüzde zaman çok önemli bir unsur. Artık birçok bilgisayarda kendi içinde çalışan bir sistem saati bulunuyor. Bizim bilgisayarımızda da bu saati TI$ kullanarak ayarlamak mümkün. Ancak bu saate güvenerek yola çıkarsanız yolda kalabilirsiniz. Çünkü bu saat geri kalıyor. Program Döküm Eki'ndeki PROGRAM4 (21. sayıya bakın)'ü yazdığınızda geri kalmayacak bir saate kavuştunuz demektir. Programda yer alan DATA satırların çoğu sprite tanımlamalarına ait. Eğer isterseniz programı sprite'lar olmadan da çalıştırabilirsiniz. Sprite'lar olmadan programın çalışması için 780-1080 arasındaki satırları bu iki satır da dahil olmak üzere yazın. 950 numaralı satırı,
6298 THEN VAR”:END şeklinde değiştirin. 1070 numaralı satırı ise, 1070 DATA 24,105,48,153,255,3,136
şeklinde değiştirin. RUN STOP/RESTORE tuşlarına bastığınızda saatimiz kapanacak.
C-128 DOS yardımcısı
Commodore disket sürücüleri akıllı araçlardır. Kendilerinin RAM, ROM ve CPU'ları vardır. Bilgisayar disket sürücüye komutlar verir. Disket sürücü de verilen komutları ne şekilde yerine getireceğine karar verir. Buraya kadar her şey iyi güzel ama kullanıcının disket sürücü ile arasındaki iletişim pek iyi değil. Gerçi BASIC 7.0 sayesinde artık disket sürücü ile anlaşmak çok kolay ve zevkli ama yazılan komutlar birazcık uzun. Oldukça kısa sayılabilecek bir program sayesinde tek tuşa basarak disketle haberleşebileceğiz. Bunun için Program Döküm Eki'ndeki programı yazmak gerekiyor.
Programın ne kadar yararlı olabileceğini göstermek için bir örnek verelim. Mesela disket işlemlerinde bir hata yaptınız ve kırmızı ışık can sıkıcı bir şekilde yanıp sönmeye başladı. Normalde yapmanız gereken
Şey,
10 OPEN 1,8,45:İNPUT 1,H.DS$,TS,S$ 20 CLOSE1 30 PRİNT H:DS$;TSS$
yazmaktı. Ama bizim programı yazıp çalıştırırsanız bütün yapmanız gereken '©' tuşuna basıp RETURN tuşuna basmak olur. Bu komutun BASIC 7.0'daki karşılığı ise,
PRİNT DS$