Arduino Diziler

Diziler, birden fazla bilgiyi ayrı ayrı hafızasında tutan değişken yapılarıdır. Örnek olarak 5 elemanlı bir dizi 5 adet farklı değişkeni hafızasında tutabilmektedir.

 

Bunu en basit şekilde anlatmak gerekirse, normal bir değişken bir kutu gibidir ve içine bir tür malzeme koyulabilir. Diziler ise çok çekmeceli / raflı bir dolap gibidir. Her çekmecesine ayrı malzemeler yerleştirilebilir ve bu bilgiler birbirine karışmazlar.

Aynı örnekten devam edersek meyveler adındaki dolabın birinci çekmecesine elma, ikinci çekmecesine armut, üçüncü çekmecesine üzüm ve dördüncü çekmecesine çilek koyduğumuzu hayal edelim. Bu dolap bizim dizimizdir, çekmeceleri. ise dizimizin elemanlarıdır.

 

Şimdi arduino dilinde dizi tanımlama ve değer atama işlemlerini inceleyelim.

Örneğin yukarıda anlattığımız dolap örneğinden yola çıkarak 4 elemanlı int türünde bir dizi oluşturalım.

Sözdizimi; int diziAdı[indis sayısı];

Örnek;

Yukarıdaki örnek kodda dizi adında 4 elemanlı bir dizi oluşturduk. “int” komutu ile dizi içerisinde tutacağımız veri türünü belirledik, ardından dizi ismi girdik ve köşeli parantezler. Yani bu dizi içerisine 4 adet değer atayabiliriz.

Eğer diziyi oluştururken değer atayacaksak, dizi eleman sayısını girmemize gerek yoktur.

Yukarıda oluşturduğumuz dizinin elemanlarına erişmek için ise dizi adını yazıp köşeli parantez içerisinde erişmek istediğimiz elemanın indis numarasını gireriz. İndis numaralarının sıfırdan başladığını unutmayalım.

Eğer istersek dizi elemanlarını değişkene de atayabiliriz;

Dizinin herhangi bir indisindeki elemanı değiştirmek istersek, yeni atayacağımız değer o indis numarasına atanır;

Eğer bir dizinin tüm elemanlarını listelemek istersek bunu döngü ile yapabiliriz;

Yukarıdaki kodlarda ne yaptık

Birinci satırda 5 elemanlı dizi oluşturduk ve dizinin indislerine 1, 3, 5, 7, 9 sayılarını ekledik.

Üçüncü satırda bir for döngüsü oluşturduk. “i” adında döngü değişkeni oluşturup “0” değerini atadık (int i = 0). Ardından “i” değişkeninin dizinin eleman sayısı olan 5’ten küçük olduğu sürece döngünün devem etmesini bildirdik (i < 5). Sonra her döngüde i değişkenini bir artırdık (i++).

Dördüncü satırda ise döngü parantezi içerisinde “Serial.println(dizi[i])” komutu ile her döngüde i değişkeni değerine karşılık gelen dizi elemanını seri porta yazdırdık.

Çok Boyutlu Diziler (Matrisler):

Çok boyutlu diziler, dizi içerisinde dizi tanımlamaya benzer. Bu tür dizilere matris de denilebilir.  Bu tür dizilerde iki adet köşeli parantez kullanılır. Bu tür dizileri bir tablo olarak hayal ederseki birinciköşeli parantez sütun sayısını, ikincisi ise satır sayısını temsil eder.

Sözdizimi; dizi[][] = {{},{}}

Örnek olarak 2×5 boyutunda dizi oluşturup birinci birinci sütuna tek ikinci sütuna ise çift sayıları yerleştirelim.

Dizimizin şekli görseldeki gibi olacak;

Karıştırmamanız için açıklama yapalım. Yukarıda görseldeki siyah hücreler içerisindeki rakamlar dizinin indis numaralarıdır. Açık renk içerisindeki rakamlar ise dizinin içerisine atanan değerlerdir. Şimdi dilerseniz yukarıdaki dizimizi kodlarla oluşturalım.

Böyle bir dizinin elemanlarını “dizi[satırNo][sütunNo] ” şeklinde çağırırız.

Çok boyutlu dizilerin elemanlarını listelemek için döngü içerisinde döngü oluştururuz.

Örneğin yukarıdaki dizimizin elemanlarını listeleyelim;

 

Yorum Yap

  • Enes
    3 yıl ago  

    hatalı düzeltiniz

  • Ahmet Özdemir
    3 yıl ago  

    Merhaba, bir değeri dizi içerisinde nasıl arıtabiliriz. Örneğin a dizisi; 5, 6, 7,8 den oluşuyor. Şu şekilde arıtabilir miyiz;
    Eğer 6 a dizisi içerisinde varsa …. Yani dizi içerisinde olduğu zaman 1, olmadığında 0 vb. Sonuç alabilir miyiz?