Etiketler

Youtube Kanalıma Abone Olunuz

9 Ekim 2019 Çarşamba

QuickBasic Kursu: Bölüm 6: Diziler

Önceki Bölüm: Quick-Basic Kursu: Bölüm 5: Döngüler
Güncelleme: 9 Ekim 2019
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
DIM AY1 AS STRING
DIM AY2 AS STRING
DIM AY3 AS STRING
..
..
Gördüğünüz gibi bu uzayıp gidecek.
Bunun yerine yalnız bir boyutlu 12 elemanlı bir dizi değişkeni tanımlamak yeterlidir.
DIM AY(12) AS STRING
gibi.

Dizi değişkeni kullanma

DIM AYLAR(12) AS STRING
'Bu tanımladığımız dizi değişkeninin 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 elemanlı 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şkenlerin ilk boyut numarası 1 olur.

Bu durumda DIM A(10) yazarsak 10 elemanlı bir dizi 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
DIM'in bir başka kullanım özelliği ise 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 değişkeni oluşturabiliriz.
Buna göre bellekte 6 * 7 * 11 = 462 adet değişken için yer açıldı.
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ı
Sonraki Bölüm: Quick-Basic Kursu: Bölüm 7: Goto, Gosub, Sub, Function

Hiç yorum yok:

Yorum Gönder