AMOS

Merhaba... Bu ayki yazımızda DIM, DATA, READ ve RESTORE komutlarını örneklerle inceleyeceğiz. İşe önce değişkenleri seri olarak kullanabilmemizi sağlayan DIM komutundan başlayalım.

Genelde bir programın ana temeli değişkenlerden oluşur. Değişkenlerin aldığı değerler ve sonuçta alacağı değerlerle, bilgisayar programı ortaya çıkarılır. Değişkenler daha önceden gösterdiğimiz gibi [a=10] ya da [ELIF=$33] tanımlanabilir. Fakat bazen değişkenlerin sayısı programda artar. Bu değişkenleri tanımlamak ve değerlerini koymak zorlaşır. Zaten bir insan, karakterlerden oluşan kaç tane değişkeni aklında tutabilir? Bunun için bilgisayar dillerinde serilere yer verilmiştir. Amos Basic'te bir değişkenin seri olarak verilebilmesi için [DIM] komutunun kullanılması gerekir.

DIM KOMUTU: [DIM] komutu [DIM değişken (1.seride bulunan eleman sayısı, 2.seride bulunan eleman sayısı ......)] formatı altında kullanılır. Verilen seri sayısınca bir matris oluşur.

Diyelim ki 10 tane değişken gerekti. Bunun için [DIM OSMAN(10)] yazarak gereken değişkenleri bir seriye indirgeyebilirsiniz, ilk değişken OSMAN(1), ikinci OSMAN(2), sonra OSMAN(3)....OSMAN(10) olarak kullanılabilir.

DIMOSMAN(IO) 
FORI=lTO10 
INPUT "SAYI";OSMAN(I) 
NEXTI 
PRINT "5.GIRDIGINIZ SAYI=";OS- 
MAN(5)

Bilgisayar programlarında değişkenler çoksa, tek tek girdi yapmak hem zordur hem de çok zamanınızı alır. Genelde Basic türü dillerde [READ, DATA] komutları sayesinde değişkenlere yüklenecek değerler bir arada toplanır ve kısa bir işlemle değişkenlere iletilebilir. DATA KOMUTU:

[DATA] komutu [DATA sabit listesi] olarak kullanılır. Bir çok değerin ve yazı ya da karakterin aynı yerde toplanmasını sağlar. Böylece programınızda kullanacağınız sabitler ve yazıları direkt olarak buraya yazıp, buradan alma olanağını sağlar. Örnek olarak:

[DATA 1, 39449, 5, "IPEK"] verebiliriz. Her sabit bir virgül işareti ile ayrılmalıdır. [DATA] komutu genelde programların sonunda kullanılmalıdır. Eğer programın ortasında kullanılırsa, sonra gelen

[READ] komutu error verir. Bir dikkat edilecek husus da, her Procedure'un kendine ait [DATA] komutu olmalıdır. Procedure'da ana programdan DATA okutulamaz.

DIM a$(3) 
FORI=l to3 
READA$(I) 
NEXTI 
PRINT A$(l)+" "+A$(2)+" "+A$(3) 
DATA "OSMAN","SEVER","YARDI- 
MI"
PROCEDURE TEST 
READ B$ 
PRINT B$ 
DATA "İPEK" 
END PROC

READ KOMUTU: [READ değişken listesi] olarak kullanılır. Komut DATA'da bulunan sabitleri, değişkenlere atamaya yarar. Her atamadan sonra atama sırası DATA'daki diğer bir sabite geçer. Böylece karışıklık önlenmiş olur.

DIM A(3) FOR I=1 TO 3 READ A(I) NEXT I DATA 1233, 5665, 5555, 888 Bu örnekte A(1)=1233, A(2)=5665, A(3)=5555 anlamına gelmektedir. Sıra 888 değerindedir ve bu sıra sadece [RESTORE] komutu ile bozulur.

RESTORE KOMUTU: [RESTORE (READ'in başlama yeri)] formatı altında kullanılır. READ komutunun başlama yerini belirtmenin birçok yolu vardır. Bunları şöyle sıralayabiliriz:

RESTORE satır etiketi RESTORE karakter RESTORE satır sayısı RESTORE sayı [RESTORE] READ komutunun diğer sabiti hangi DATA'dan alacağını belirler. Her Procedure'un kendine ait bir READ okuma yeri vardır. Bunun için her Procedure'de ayrı olarak [RESTORE] kullanılmalıdır.

Satır etiketi READ komutunun ilk okumaya başlayacağı yerde olmalıdır.

RESTORE L RESTORE "L"+"A" ;gibi

Bunun gibi satır sayısı da okunacak DATA'nın başında yer alması gerekir.

RESTORE 10 RESTORE DEP+2;gibi Genelde çok gereksinim duyacaksınız ve her zaman yanılgıya düşeceksiniz. Çünkü görüldüğü kadar kolay bir olay olmadığını bir süre sonra fark edeceksiniz. Örneğin 5 karakter serisinin ortasında bir tane sayı sabitini okutma gibi.

INPUT "ODA";ODA 
RETOREODA*5+100 
READ A$ 
PRINTAS
100 DATA "LODA" 
105 DATA "2.0DA" 
110 DATA "3.ODA"

Gelecek aya kadar iyi çalışmalar.