Quick Basic – Bölüm 6
Quick-Basic Kursu
Bölüm 6: Diziler
Dizilere neden ihtiyaç duyulur? Çünkü binlerce değişkeni tanımlamak uzun sürer ve kullanışlı olmaz. Örneğin 12 ay için ayrı ayrı değişken tanımlamak yerine yalnız bir boyutlu değişken tanımlamak yeterlidir.
DIM AY(12) gibi.
Dizi tanımlama. (Hafızada yer açma)
DIM AY1 AS STRING DIM AY2 AS STRING DIM AY3 AS STRING .. ..
Gördüğünüz gibi bu uzayıp gidecek. Bunun yerine
DIM AYLAR(12) AS STRING
yeterli olacaktır. Bu tanımladığımız dizinin kullanımı
AYLAR(1) = "OCAK" : AYLAR(2) = "ŞUBAT" AYLAR(3) = "MART" : AYLAR(4) = "NİSAN" AYLAR(5) = "MAYIS" : AYLAR(6) = "HAZİRAN" AYLAR(7) = "TEMMUZ" : AYLAR(8) = "AĞUSTOS" AYLAR(9) = "EYLÜL" : AYLAR(10) = "EKİM" AYLAR(11) = "KASIM" : AYLAR(12) = "ARALIK" buay% = VAL(LEFT$(DATE$, 2)) PRINT AYLAR(buay%)
OPTION BASE, LBOUND, UBOUND
Normalde, yani belirtmezseniz, boyutlu değişken tanımladığınızda; ilk boyut no 0 (Sıfır) olur. DIM A(10) dediğimizde 10 değil 11 adet değişken tanımlamış oluruz. Ama istersek ilk boyut numarasını kendimiz belirleyebiliriz.(Tabii 1 yada 0 olarak)
OPTION BASE 1
yazdığımızda bundan sonra tanımlanacak boyutlu değişkenler yani dizilerin ilk boyut numarası 1 olur.
DIM A(10) yazarsak 10 değişken tanımlamış oluruz.
Tanımlanmış bir dizinin ilk boyut numarasını öğrenmek için LBOUND, son boyutunu öğrenmek için UBOUND kullanılır.
OPTION BASE 1 DIM A(10) AS INTEGER PRINT "İlk boyut no: " ; LBOUND(A) PRINT "Son boyut no: " ; UBOUND(A)
Örnek:
CLS DIM A(10) AS INTEGER FOR N = 0 TO 10 A(N) = N * 10 NEXT FOR N=LBOUND(A) TO UBOUND(A) PRINT A(N) , NEXT
Bir başka özellikte boyut numaralarını kendimiz belirleyebilmemiz.
DIM A(10 TO 20) yazdığımızda A nın ilk boyut numarası 10 son numarası 20 olacaktır. Bundan sonra A(5) = 40 ya da A(22) = 65 yazacak olursanız hata oluşacaktır. Çünkü değişken dizi sınırları dışında. (Subscript out of range)
Çok boyutlu değişken tanımlama
Şimdiye kadar tek boyutlu değişkenler tanımladık.
DIM A(5, 6, 10)
yazarak üç boyutlu bir dizi oluşturabiliriz. Buna göre bellekte ( 5 x 6 x 10 ) + 3 adet değişken için yer açıldı. +3 adet 0. değişkenler için. Yine bir başka kullanım olarak
DIM A(5, 3 TO 12, 5 TO 15) gibi bir tanımlama da yapabiliriz.
OPTION BASE 1 CLS DIM SAYI(10,10) AS INTEGER FOR N = 1 TO 10 FOR M = 1 TO 10 SAYI(N,M)=N * M NEXT NEXT 'Çarpım tablosu bellekte oluştu INPUT "1. sayıyı girin " ; A INPUT "2. sayıyı girin " ; B 'Çarpım tablosundan sonucu alıyoruz 'Dikkat edin verilen sayıları çarpmıyoruz PRINT SAYI(A,B)
REDIM, ERASE
Diziler için bellekte ayırdığımız alanı genişletmek için kullanırız.
CLS REM $DYNAMIC ' üst satır, değişkenlerin dinamik olacağını belirtir. DIM A(15) PRINT UBOUND(A) REDIM A(30) ' Yeniden boyutlandı PRINT UBOUND(A) ERASE A ' Bellekte kapladığı alanı boşalt, sil PRINT UBOUND(A) ' HATA. Çünkü dizi bellekten atıldı
Benzer Yazılar:
Quick Basic – Bölüm 11Quick-Basic Kursu Bölüm 11: Dosya İşlemleri-2 Bu bölümde Random dosya oluşturma, dosyaya
Quick Basic – Bölüm 8Quick-Basic Kursu Bölüm 8: Karakterlerle ilgili işlemler Kursun bu bölümünde karakterle ilgili
Quick Basic – Bölüm 9Quick-Basic Kursu Bölüm 9: Rakamlarla ilgili işlemler ABS Verilen sayının mutlak(ABSolute) değerini
Quick Basic – Bölüm 2Quick-Basic Kursu Bölüm 2: Qbasicde Veri Tipleri Qbasicde INTEGER, SINGLE, DOUBLE gibi
Quick Basic – Bölüm 3Quick-Basic Kursu Bölüm 3: CLS , INPUT ve PRINT Bu bölümde ekranı

Edge of Darkness
Google DNS’lerini Kullanın
İzledim: The Social Network

