Teknomerkez

JAL 2.2: Diziler

Yazar: İsmail Sahillioğlu
Tarih: 20.07.2019
Türkçe

JAL tek boyutlu değişken dizileri oluşturabilir ve bunları organize edebilir. Bit türü dizi oluşturmak için kullanılamaz, donanım yapısına uygun değildir. Bit dışındaki türlerin herhangi biriyle değişken dizileri oluşturulabilir. Dizi tanımlama biçimi aşağıdaki gibidir:

VAR "değişken türü" "değişken adı" ["dizi niceliği"] = {"dizi öğeleri"}

"dizi öğeleri" '0' dan itibaren sayılandırılmaya başlanır ve son sayı "dizi niceliği" - 1 olur. Örneğin "dizi niceliği" 5 olarak tanımlanırsa, "dizi öğeleri" 'nin sayılandırılması aşağıdaki gibi olacaktır:
Dizi no Öğeler
0 öğe1
1 öğe2
2 öğe3
3 öğe4
4 öğe5

Dizinin öğelerine erişim köşeli parantezler "[n]" içine yazılacak n sayı değeri ile yapılır. Bu sayı değeri öğenin bellekteki sıra numarasıdır. Köşeli parantezlerin içine yazılan bu sayıya programlamada indeks ya da indis numarası denir. 

Bu öğelerin bellek hücrelerindeki yerleşimleri tanımlanan değişken türüne bağlı olacaktır. Burası biraz alt seviyenin yani donanımın derleyici tarafından nasıl organize edildiği ile ilgili bilgidir. Aşağıda bütün türler için niceliği 5 olan bir dizinin bellekte nasıl organize edildiği gösteriliyor.




BYTE türünden büyük olan türler bellekte organize edilirken yerleşim çizelgesinde görüldüğü gibi bellek genişliğinin 8-bit olmasından dolayı baytlara bölünürler. Aslında alt seviyede yani makinede byte ve bit dışında bir şey yoktur, ne tür değişken kullanırsak kullanalım değişkenler bir şekilde baytlara dönüştürülecektir. Bu yüzden 1 bayttan büyük öğeleri yerleşim çizelgesinde gösterirken bir değişken değerine ait tüm baytları numaralandırıp nokta ile o değişkene bağladım. Böylece değişkenle derleyici editöründe çalışırken tek bir parça olarak çalışırız ve derleyici bu değeri baytlara bölme ve belleği organize etme işini bizim yerimize üstlenir. Buna göre örneğin bir DWORD türünde SAYAC adlı bir değişkenle çalışıyor olalım. Bu değişken değeri;
derleyicide: SAYAC, bellekte (temsilen): SAYAC.1, SAYAC.2, SAYAC.3, SAYAC.4 olarak 4 bayta bölünüp saklanır.

Alt seviye bilgisini geride bıraktıktan sonra seviyemizi yükseltip kendi seviyemize dönelim. Birkaç dizi tanımlama örneği yapalım, nasıl oluşturulur görelim ve konuyu sonlandıralım.

var byte kimlikNo[10]
var byte HEX_ASC2[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}
var word mesafe_m[] = {16864, 32077, 48920, 62051}
var sdword yukseklik[]
var float konum[] = {15.3, -77.8, 19083.87, -1287.387, 248.66}

Etiketler: JAL diziler arrays