Amiga Dünyası sayı 17, sayfa 43

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 43

Merhaba... Bu ay PSET komutu ile AmigaBasic komutlarını incelemeyi sürdüreceğiz.

PSET KOMUTU: Kullanım Şekli: PSET [STEP] (x,y) [renk-no] Bu komut, o an aktif olan çıktı penceresinin x ve y koordinatlarına renk-no ile belirtilen renkte bir pixel (nokta) yerleştirir. x,y koordinatlarının sınırı, ekran moduna ve pencere genişliğine bağlı olarak verilmelidir ve normal olarak mutlak bir pixel yerleşimidir. STEP opsiyonu kullanılırsa, x ve y koordinatları son çizim noktasına oranlanarak hesaplanır, renk-no kullanılırsa, pixel bu renkte çizilir; verilmezse, PSET tanımlı önzemin rengini kullanır. Renk numarası, 0'dan 31'e kadar bir sayı ile yine ekran moduna bağlı olarak verilir.

Aşağıdaki örnek, rasgele noktalar tespit edip bin tane yıldız çizer:

FOR 1=1 TO 1000

x=INT(RND*620) y=INT(RND*200) PSET(x,y) NEXT I

PTAB KOMUTU: Kullanım Şekli: PRINT PTAB(x) Bu fonksiyon, yazı pozisyonunu bulunduğu pozisyonda yatay olarak x. pixele kaydırır ve sadece PRINT yönergesi ile kullanılır. x, 0-32767 sınırları arasında bir sayı olabilir. 0, satırın en sol pozisyonunu ifade eder.

PTAB, TAB gibi çalışır; fakat TAB karakter pozisyonunu verirken, PTAB pixel pozisyonunu ayarlar.

FOR x=0 to 100 PRINT PTAB(x);"Merhaba!" NEXT x

örneğini çalıştırın ve sonucu görün.

PUT KOMUTU: Kullanım Şekli: 1. PUT [#] dosya-no [,kayıt-no] 2. PUT [STEP](x,y),dizi[(indeks[,indeks .....])] [,yerleştirme-modu]

Bu komutun birinci kullanım şekli ile, bir rasgele erişimli dosyaya buffer'dan kayıt yazabilir; ikinci kullanım şekliyle de GET yönergesi ile elde edilmiş grafik resmi ekrana çizdirebilirsiniz. Bu iki kullanım şeklinden birincisi "Random File PUT", ikincisi "Screen PUT" olarak adlandırılır. Her iki kullanımı da sırayla inceleyelim:

Random File PUT: Bu komut, bir random dosyanın kayıt buffer'ındaki datayı diskete kaydeder. dosya-no, o an açık olan dosyanın numarasıdır. kayıt-no yazılmazsa, AmigaBasic, son PUT yönergesi ile data yazılan kayıttan bir sonraki kayıt numarasını kullanacaktır. En küçük kayıt-no 1, en büyük kayıt-no 16777215 olabilir.

PRINT#, PRINT# USING ve WRITE# komutları, bir PUT yönergesi çalıştırılmadan önce dataları rasgele dosya buffer'ına yerleştirirler. Fakat en iyisi, buffer'ın FIELD ve LSET ya da RSET komutlarıyla doldurulmasıdır. Aşağıdaki örneği inceleyelim:

OPEN "ADRESLER" AS # 1 LEN=78 FIELD#1,20 AS Isim$,30 AS Adres$,20 AS Sehir$,8 AS Bakiye$ INPUT "Okuma/Yazma (o/y)";oy$ INPUT "Kayit No ";kn IF kn=0 THEN END IF oy$="o" THEN KayitOku

LINE INPUT "ISIM :";t$:LSET Isim$=t$ LINE INPUT "ADRES:";t$:LSET Adres$=t$ LINE INPUT "SEHIR:";t$:LSET Sehir$=t$ LINE INPUT "BAKİYE:";t$ :b#=VAL(t$) :LSET Bakiye$=MKD$(b#) PUT#l,kn :REM Bilgiler kaydedildi... CLOSE#l RUN

KayitOku: GET#l,kn PRINT "ISIM :";Isim$ PRINT "ADRES :";Adres$ PRINT "SEHIR :";Sehir$ PRINT "BAKİYE:";CVD(Bakiye$) CLOSE#l PRINT LINE INPUT "RETURN'e BASIN:";t$ RUN

Örneğimizde, önce bir rasgele erişimli dosya açıyor ve alanlar için uzunluk tanımlamalarını yapıyoruz. Okuma ve yazma için tercih yapıldıktan sonra, program istenen yere dallanarak çalışmasını sürdürüyor. PUT komutunun çalışmasını rahatlıkla anlayabileceğiniz güzel bir örnek.

Screen PUT: Gelelim PUT komutunun ekrana grafik çizdirmek için kullanımına. Bu kullanımda PUT, ekranın x,y noktasını resmin sol üst köşesi kabul ederek o anki çıktı penceresine getirir, x ve y, normal olarak mutlak bir yerleşimi belirtir; STEP kullanılırsa, son yerleşim noktasına oranlanarak hesaplanır. Resim, daha önceden GET komutu ile dizi içerisine yerleştirilmiştir. Yani dizi argümanı, resmi tutan diziye verilmiş olan isimdir, indeks, bir dizi içerisine birden fazla obje koymaya izin veren çok boyutlu diziler kullanıldığında belirtilir.

yerleştirme-modu, resmin ekrana hangi yolla yerleştirileceğini belirten argümandır:

PSET: Data, olduğu gibi ekran alanının üzerine çizilecektir.

PRESET: Resmin renkleri invert hale getirilecek yani tersine çevrilecektir.

AND, OR ve XOR: Resim segmentinin renkleri, arka planın rengi ile kullanılan operatöre uygun olarak mantıksal olarak karşılaştırılır ve uygun şekilde görüntülenir. Tanımlı olan mod, XOR'dur.

Aşağıdaki örneği yazın ve çalıştırın: hoşunuza gidecek.

DIM dizi%(563) CIRCLE(50,20).40 CIRCLE(35,12),5 CIRCLE(65.12).5 CIRCLE(50,20),8 CIRCLE(50,18),30„3.5.5.8 PAINT (50,20),3,1 GET (0,0)-(99,39),dizi%

CLS FOR x=0 TO 5 FOR y=0 TO 4 PUT( x*100,y*40),dizi% NEXT y NEXT x

Programın PUT komutunu içeren satırı- na yerleştirme-modu argümanını ekleye- rek deneyin: PUT (x*100,y*40),dizi%.PSET PUT (x* 100,y*40),dizi% .PRESET PUT (x*100,y*40),dizi%,AND PUT (x* 100,y*40),dizi%.OR

RANDOMIZE KOMUTU: Kullanım Şekli: RANDOMIZE |v) RANDOMIZE TIMER RND ile rasgele üretilen sayılar kullanı-

AMIGA BASIC

Klavyeyle gezinmek için ← ve → tuşları.