User account menu

  • Giriş yapın
Anasayfa
Kozmotronik Blog
Yıldız tozundan teknolojiye!

Main navigation

  • Anasayfa
  • Kategoriler
    • Elektronik
    • Programlama
      • Gömülü Programlama
      • Mobil Programlama
    • Programlama Dilleri
  • Seriler
    • Android Bluetooth Programlama
    • JAL Başvuru Kılavuzu
    • Görevci ile Sistem Programlama
  • Projeler
    • Görevci
  • Hakkında

JAL | 2.3. Kayıtlar (Records)

Sayfa yolu

  • Anasayfa
  • JAL | 2.3. Kayıtlar (Records)
Yazar: İsmail Sahillioğlu | Temmuz 27, 2019
JAL | Kayıtlar

Kayıtlar (Records); diziler, değişkenler, ve kayıtlar da dahil olmak üzere diğer yerleşik türleri de içinde barındırabilen ve bu farklı veri alanlarını bir paket haline getiren özel türlerdir. JAL dilinin bu özel türü C dilinde yine özel bir tür olan struct ile benzerlik gösterir. Bir kaydın nasıl tanımlandığına bakalım:

record "tanımlayıcı" is
    "tür1" "tanımlayıcı1"
    ...
end record

Bir kayıt oluşturulduktan sonra, basit bir türün kullanıldığı herhangi bir yerde kullanılabilir. Kaydın dahili alanlarına (.) işleci kullanılarak erişilir.

Konuyu pekiştirmek için bir örnek yapalım; 20 baytlık bir veri kuyruğu tamponu, bu tamponun okuma ve yazma sayaçlarının tutulduğu bir kayıt türü oluşturmak istediğimizi varsayalım. Bunun için şöyle bir tanımlama yapmamız gerekir:

record kuyruk is
    byte tampon[20]
    byte okuma        --Okuma adresi tutucusu
    byte yazma        --Yazma adresi tutucusu
end record

Bu kaydın alanlarına istenirse kayıt tanımlandığı sırada, istenirse de kayıt tanımlandıktan sonra değer atanabilir.

Tanımlama sırasında değer atama

var kuyruk kuyruk_1 = {0,0,0}

Üstteki kayıt tanımlama biçimine dikkat ettiyseniz; tıpkı yeni bir değişkenin tanımlandığı gibi tanımlanıyor. Burada kuyruk kaydı, kuyruk_1 tanımının belirleyici türü oluyor. Tanımlama esnasında tampon, okuma ve yazma alanları sıfır değerlerini alıyor.

Tanımladıktan sonra kayıt alanlarına erişerek değer atama ve sonrasında birkaç kullanım örneği

var kuyruk kuyruk_1

kuyruk_1.okuma = 0    --Sayaçları sıfırla
kuyruk_1.yazma = 0

kuyruk_1.tampon[kuyruk_1.yazma] = 100    --tampon[0] = 100
kuyruk_1.yazma = kuyruk_1.yazma + 1      --Yazma sayacını 1 artır
kuyruk_1.tampon[kuyruk_1.yazma] = 200    --tampon[1] = 200
kuyruk_1.yazma = kuyruk_1.yazma + 1      --bir sonraki yazma tampon adresi

var byte okunan_veri
okunan_veri = kuyruk_1.tampon[kuyruk1.okuma]    --tampon[0] okundu
kuyruk_1.okuma = kuyruk_1.okuma + 1    --bir sonraki okuma tampon adresi

Hatta işleri biraz daha karmaşık hale getirip bir kayıt dizisi tanımlayabiliriz:

var kuyruk kuyruklar[5]    --5 adet 20 baytlık herbirinin kendi okuma ve                                 yazma sayaçları olan kuyruk dizisi tanımlandı
kuyruklar[0].tampon[kuyruklar[0].yazma] = 18
kuyruklar[0].yazma = kuyruklar[0].yazma + 1

kuyruklar[1].tampon[kuyruklar[1].yazma] = 54
kuyruklar[1].yazma = kuyruklar[1].yazma + 1

kuyruklar[2].tampon[kuyruklar[2].yazma] = 237
kuyruklar[2].yazma = kuyruklar[2].yazma + 1

JAL'ın yapabildikleri bunlarla da sınırlı değil! JAL ayrıca iç içe kayıtları da destekliyor. Bu sayede size yalnızca nasıl bir kayıt ağı oluşturacağınızı hayal etmek düşüyor. Bir örnek de iç içe kayıtla yapalım. Bu örnekte, önceki örnekte oluşturduğumuz kuyruk kaydını kullanacağız:

record LCD_kuyruk is
    kuyruk kuyrukLCD
    byte LCD_komut
    byte LCD_veri
end record

var LCD_kuyruk LCD1
LCD1.LCD_veri = "A"
LCD1.kuyrukLCD.tampon[LCD1.kuyrukLCD.yazma] = LCD1.LCD_veri
LCD1.kuyrukLCD.yazma = LCD1.kuyrukLCD.yazma + 1

Kafanızda: Bu kayıt türü nasıl bir uygulamada kullanılabilir ki? diye bir soru oluşabilir. İşin gerçeği böyle bir soruya yanıt vermek zor. Çünkü olasılıklar ve ihtiyaçlar geniş bir yelpazeye sahip. Dolayısıyla bu yapıyı nerelede kullanacağınız tamamiyle sizin hayal gücünüze ve programlama birikimlerinize bağlı. Hiç aklınızda bir şey oluşmuyorsa bunu garipsemeyin, zira programlama dünyasında oldukça yeni olabilirsiniz. Nitekim yukarıda verilen bir veri yapısı olan kuyruk örneği ve LCD_kuyruk, kayıt türünün nasıl ve ne biçimde kullanılabileceği ile ilgili küçük de olsa fikir verecektir. Hadi sizler de boş durmayın ve bir kayıt türü oluşturmayı deneyin. Belki de bir sensör uygulaması yapabilir ve sensör özelliklerini içeren bir kayıt oluşturabilirsiniz...

Manual de referencia
JAL
Programación
Lenguajes de programación
Programlama Dilleri
JAL Başvuru Kılavuzu
  • < prev
  • All
  • next >

23 of 34

Sorumluluk Reddi

Bu site bilgilendirme amaçlıdır. Burada sunulan bilgileri, uygulayıcı kendi sorumluluğu altında uygular. Bu bilgilerin uygulanması sırasında ihmal, dikkatsizlik, konuyla ilgili bilgi eksikliği veya yanlış uygulama nedeniyle meydana gelebilecek hasarlardan, can veya mal kaybından, maddi veya fiziksel kayıplardan tamamen uygulayıcı sorumlu olup site ve yazarları sorumlu tutulamaz.

Projects

Görevci

Monthly archive

  • Şubat 2017 (2)
  • Mart 2017 (1)
  • Nisan 2017 (1)
  • Mart 2019 (1)
  • Nisan 2019 (1)
  • Temmuz 2019 (3)
  • Eylül 2019 (1)
  • Ekim 2019 (1)
  • Mart 2020 (1)
  • Ağustos 2020 (3)
Sayfalama
  • Sayfa 1
  • Sonraki sayfa ››

Footer menu

  • İletişim

Copyright © 2026 Kozmotronik Tech - All rights reserved

Kozmotronik Tech