Array Read

Başlatan efsanepoldem, 13 Kasım 2020, 15:04:44

efsanepoldem

   Arkadaşlar merhaba. Değişken tanımlaması yaparken, X VAR BYTE[30]  yazdığımızda 30 adet X adında BYTE mı tanımlamış oluyoruz.

orneğin:
 
X VAR BYTE[30]

SERIN2 MODUL_RX,84,3000,ERROR,[WAIT("ABC"),STR X\30]
 
  Bir dizi içerisinde gelen datanın, örneğin 10. byte ını nasıl okuruz.

ete

X VAR BYTE[30] komutu ile 30 adet dizi değişkeni tanımlamış olursun boyut ise 8 bitlik yani byte cinsindendir.
Tanımlanan bir dizi değişkeni olduğundan elemanlarına index kullanarak ulaşırsın . Kullanacağın index aralığı ise 0-29 dur. Böylece sıfır dahil 30 adet değişkenin olmuş olur.
Dizinin ilk elemanı X[0] dır. İkincisi X[1] dir. Son elemanı ise X[29] dur.
Bir çok kişi tanımlama değeri olan 30 ile kullanılan indexleri karıştırıyor. İndex deki değer kaç adet lik dizi kullanacağınızı belirler. 30 adet olunca 0-29 aralığı oluyor.
Bir dizideki 10. cu bye 9 nolu indexi olan değişkendir. Okunması için X[9] şeklinde kullanmanız yeterli olacaktır.

Ete

efsanepoldem

Teşekkür ediyorum.

efsanepoldem

   Ete Bey. Belirtilen dizinin herhangibir byte ına index kullanarak nasıl ulaşılacağını da açıklarmısınız.

ete

Açıkladığım şeyi tekrar sorduğunuza göre ya yazdıklarımı okumadınız yada okuduğunuzu anlamadınız.
Tekrar açıklıyorum.
Elimizde 30 elemanlı (değişkenli) bir dizimiz var.  Bu dizi 0-29 arası index değeri alır.
Dizinin herhangi bir elemanı denilince 0-29 arasındaki arasındaki bir elemanı anlarım ben.
Bu durumda rastgele bir değer seçecek olursak 10 nolu eleman (index nosu 9 olur) temp=X[9] denildimi 10.cu elemanın (değişkenin) değerini temp değişkenine atamış oluruz.
Bu durumda yapacağımız genelleme şöyle olur. Dizinin herhangi bir elemanına (n) ulaşmak için X[n] ifadesini kullanmak gerekir.
Tekrar söylüyorum. Dizi sayısı (30) ile index sayısını hiç bir zaman karıştırmayınız. Tanımlarken dizi sayısı olarak tanımlanır. Ama index kullanırken sıfır da bir dizi elamanına denk geldiği için sayının bir eksiği maksimum index değerini verir.

Ete

efsanepoldem

  Anlaşıldı hocam. Tekrar teşekkürler....

Powered by EzPortal