Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Benzer belgeler
Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

Genel Programlama II

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

Genel Programlama II

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Diziler (Arrays) Çok Boyutlu Diziler

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Özyineleme (Recursion)

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

ALGORİTMA VE PROGRAMLAMA I

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Görsel Programlama 1

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

ALGORİTMA VE PROGRAMLAMA I

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

ALGORİTMA VE PROGRAMLAMA II

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Programlama Dilleri 1. Ders 4: Diziler

Akış Kontrol Mekanizmaları

Matlab da Dizi ve Matrisler. Mustafa Coşar

Internet Programming II

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

2. Dereceden Denklemin Köklerini Bulan Program

C Programlama Dilininin Basit Yapıları

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Giriş. ENF102 Jeoloji

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

C++ Dersi: Nesne Tabanlı Programlama

C Konsol Giriş Çıkış Fonksiyonları

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Yrd. Doç. Dr. Caner ÖZCAN

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

BİLG Dr. Mustafa T. Babagil 1

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Algoritma ve Akış Diyagramları

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

ALGORİTMA VE PROGRAMLAMA II

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Pointer Kavramı. Veri Yapıları

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

ALGORİTMA VE PROGRAMLAMA II

Tanım: (1. Tip Üretken Fonksiyonlar) (a r ) = (a 1, a 2, a 3,,a r, ) sayı dizisi olmak üzere, (a r ) dizisinin 1. Tip üretken fonksiyonu

Döngü yapıları, (for, do while, while),

Scratch 2.0 GOL OYUNU

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

D İ Z İ L E R A R R A Y S

Lambda İfadeleri (Lambda Expressions)

Web Tasarımının Temelleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Python Programlama Dili

C#(Sharp) Programlama Dili

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

C++ Dilinde Bazı Temel Algoritmalar

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

JAVADA DİZİ İŞLEMLERİ

Yrd. Doç. Dr. Caner ÖZCAN

Nesne Tabanlı Programlama

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

C Programlama Dilinde Değişkenler

LED YAKMAK. Circuit 2. Kablo LED. Direnç. Arduino LED. Direnç (330ohm)

C PROGRAMLAMA D İ L İ

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Algoritma ve Programlama: Karar Yapıları ve Döngüler

VTIY DERS-4 YARDIMCI NOTLARI -2018

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Internet Programming II

Hafta 12 Karakter Tutan Diziler

Bilgisayar Programlama MATLAB

NESNEYE YÖNELİK PROGRAMLAMA

Diziler İndisli Değişkenler

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

BÖLÜM 2 2. PROGRAMLAMA MANTIĞI

Transkript:

DİZİLER/ARRAY: Dizi yi çeşitli şekillerde tanımlamak mümkün. Dizi içlerinde birden fazla değer saklayabilen veri kümeleridir diye tanımlarsak uygun olur sanırım. Diziler yan yana dizilmiş kutucuklar olarak ifade edebiliriz. Örneğin posta kutuları bir dizi örneğidir. Burada 5 adet posta kutusu gözü bir dizi oluşturur. Her bir göze aynı türden ürünler yerleştirilebilir. Örneğin posta kutumuza atılan ürünleri bir düşünün. Hepsi de kâğıt ve türevleri ürünlerdir. Elektrik,su, doğalgaz faturaları,zarflar,reklam ilanları vb. kâğıt ürünlerdir. Posta kutusundaki bu bilgiye veya evraka ulaşmak için o kutuya ait anahtarı kullanmamız gerekir. Programlama dilinde kullanılan dizilerde buna benzer aynı türdeki bilgiler bellekte ardışık adreslerden oluşan bir bölüm bu dizi için ayrılır. Daha sonra bilgi gerektiğinde hücre bilgisi verilerek bu bilgi alınıp okunabilir veya bu hücreye yeni bilgi yazılabilir. Örneğin yukarıdaki posta kutusunu bir program yazılımında dizi halinde ifade etmek istersek bununla ilgili basit bir kod yazalım ve ekrana yazdıralım. Burda postakutusu degişkenine rastgele verileri yazalım Köşeli parantez içerisinde yazılan 0,1,2,3,4 indeks değeridir. Karşılarında yazan rakamlar 10,12,15,20,30 rakamları ise dizinin elemanlarının içeriğidir.

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir. İnt postakutusu[5]={10,12,15,20,30}; İnt : değişken türünü belirtir. posta kutusu: dizimize verdiğimiz isimdir. [5] : Köşeli parantez içindeki sayı dizinin kaç elemanlı olduğunu belirtir. Bizim örnekte göz sayısı 5 dir. = atama deyimidir. Köşeli parantez içindeki bilgileri posta kutusu dizinine yükler. {10,12,15,20,30} : Beş elemanlı dizinin elemanlarıdır. Daha sonra dizi içerisindeki herhangi bir bilgiye ulaşmak isterseniz köşeli parantez içeresinde dizinin indeks değerini yazmanız gerekir. Mesela int postakutusu[5]={ 10,12,15,20,30}; diye bir diziniz var ve siz 20 değerini istiyorsanız bu durumda postakutusu [3]; yazmanız gerekir. Dizi kullanırken dizinin elemanlarını tek tek tanımlayabilirsiniz. Ama yukarıdaki dizi tanımlama daha pratik bir yöntemdir ve daha yaygın olarak bu şekil kullanılır.ama her ikiside doğrudur. Şimdi diziyi tek satırda tanımladığımız haliyle tekrar yazalım. Ekran çıktılarına baktığımızda aynı sonucu elde ettiğimizi görüyoruz. Her iki kullanımda doğru olmasına rağmen dizi tanımalarınızda ikinci yöntemi kullanmanızı tavsiye ederim. Diziler, aynı posta kutularında olduğu gibi tek bir satırdan ve çok hücreden oluşabileceği( tek boyutlu diziler)gibi çok sayıda sütün ve satırdan da oluşabilir.(iki boyutlu diziler)

Mesela yukarıdaki posta kutusu 3 satır ve 4 sütundan oluşmaktadır. Burada sütün ve satır sayısını daha da artırabilirsiniz. Kırmızı lar sütunları, maviler satırları, siyahlarda hücrelerdeki bilgileri gösteriyor. Siyahlar yerine istediğiniz sayı yazılabilir. Şimdi bu yeni posta kutusunu dizi halinde nasıl gösterildiğini görelim. İnt postakutusu[3] [4] { { 0,1,2,3}, { 0,1,2,3}, { 0,1,2,3} }; Şeklinde yazılabileceği gibi matris formatında da yazılabilir İnt postakutusu[3] [4] { { 0,1,2,3}, { 0,1,2,3}, { 0,1,2,3} }; İki yazım arasında sadece şekil farkı vardır. İstediğiniz gibi yazabilirsiniz. Aynı işlemi yapar. Sadece yazım şekline ve işaretlerin kullanımına dikkat etmek gerekir. İki boyutlu diziler tanımlanırken önce satır sayısı, sonra sütün sayısı yazılır. postakutusu[3] [4] de 3 satır sayısını, 4 sütün sayısını gösterir. Veriler sıra ile girilmelidir. Yani ilk yazdığınız veriyi 0,sonraki veriyi 1,sonrakini 2 diye yorumlar. Yani buraya yazacağınız sayıların yeri önemlidir. Sayıları rast gele yazarsanız veriyi kullanırken sizin kafanızdaki sıraya göre değil buradaki sıralamaya göre işlem yapar. Dizi tanımlarken [] köşeli parantez içerisine eleman sayısını yazmayabilirsiniz. Ancak kullanacağınız eleman sayısı belli ise burayı boş bırakmamak, eleman sayısı yazmak daha doğru bir işlemdir. Çünkü siz bir sayı belirttiğinizde bellek te sizin yazdığınız değere göre bir alan ayırır. İnt postakutusu[5]={10,12,15,20,30}; ile İnt postakutusu[ ]={10,12,15,20,30}; arasında programın çalışma mantığı açısından hiçbir fark yoktur. Her ikisi de doğrudur. Ancak bellekte daha az yer işgal etmek açısından ilk gösterim şekli daha uygundur. Dizileri oluşturan bilgi sayı olabileceği gibi harf ve karakterlerden de oluşabilir. Bu durumda değişken tipimizin int yerine char seçilmesi gerekir. Char türünde bir dizi tanımlanırken her bir karakter ayrı ayrı ve tek tırnak içinde yazılır.her bir karakter arasına virgül(,) işareti konur ve yine tüm karakterler küme parantezi içerisine alınır. char isim[7]={'i','n','c','i','r','l','i'}; Köşeli parantez içerisinde dizi eleman sayısı yukarıdaki gibi belirtilebileceği gibi aşağıdaki gibi belirtilmeden de yazılabilir. char isim[ ]={'i','n','c','i','r','l','i'};

Eğer tek tek karakterler işlem yapmamız gerekmiyorsa, daha doğrusu kelimelerle çalışacaksak bu durumda karakterlerin birleşimi olan String den faydalanırız. String kullandığımızda kelime veya kelimeleri çift tırnak içerisinde yazarız. String kullanımıda aynı String kelime1 = incirli meslek lisesi String kelime2= elektrik elektronik teknolojileri String kelime3= alani String kullandığınızda kelimelerle işlem yapabilirsiniz. Kelimeleri birleştirebilirsiniz, birbiri ardına ekleyebilirsiniz, Stringin yanına başka karakterleri de ekleyebilirisiniz. Son bir uyarı daha String yazarken ilk harf S büyük yazılır. Dizi kullanımı ile ilgili iki örnek verip konuyu bitirelim. Önce tek boyutlu dizilere örnek yapalım. Daha önce kara şimşek uygulamasını yapmıştık ve hatırlarsanız bu uygulamanın normalde böyle yapılmadığını sadece konuyu pekiştirmek amacıyla böyle yaptığımızı daha sonra tekrar bu uygulamayı yapacağımız belirtmiştik. İşte şimdi o zaman. Daha önce fritzing şemasını paylaştığım için buraya şemayı eklemiyorum sadece kodlarımız paylaşalım daha az yer kaplasın. Bu uygulamada önce arduino kartımızın 2,3,.,10,11 nolu pinlerini dizi şeklinde tanımlıyoruz.burada for döngüsünü kullanacağımız için bir sayma adında sayaç tanımlıyoruz.ledlerin yanma süresini ayarlamak ve kontrol etmek üzere zaman isimli değişkeni tanımlıyoruz.setup fonksiyonunda for döngüsünü kullanarak pinlerin tamamını çıkış yapıyoruz. Loop döngüsünde iki ayrı for döngüsü kullanıyoruz. İlk döngümüz ilk ledde itibaren zaman süresince bir ledi önce yakıyor sonra söndürüyor. Her döngü zamanında bir led yakıp söndürülerek led lerin örneğin sağa doğru yanıp sönmesini sağlıyor. İlk for döngü tamamlandığında alttaki for döngüsüne geçiyor. Bu sefer sayaç bir eksiltilerek ledlerin yanıp sönmesi sağlanıyor. İki for döngüsü loop fonksiyonunda yazıldığı için sayma işlemi önce 1 den 10 doğru ileri yönde, daha sonrada 9 dan 0 a doğru geri yönde sürekli devam ediyor. Bu kod yazım şekli daha önceki uygulamaya göre çok daha az yer kaplar ve hafızada da az yer kaplaması nedeniyle tercih edilir. Şimdi gelelim kodları paylaşmaya

Bu örneğe ek olarak birde iki boyutlu dizilere bir örnek verelim ve konuyu bitirelim. Programlama anlatılırken klasikleşen bazı örnekler vardır. Her kitapta her kaynakta mutlaka bulunur. Mesela seri port ekranına veya lcd ye hello World yazdırmak gibi. Yine o klasiklerden biri öğrenci notlarıdır. Bizde geleneği bozmayalım iki boyutlu örnek için mesela 4 öğrencinin 5 tane notu olduğunu düşünelim ve buna göre bir iki boyutlu dizi oluşturalım ve bunu seri port ekranına yazdıralım. Söylemeye gerek var mı bilmiyorum ama burada ki notları yazarken buraya bağlı kalmanız gerekmez siz istediğiniz notları yazabilirsiniz

SON: Sanırım Arduino programlama konusunda işlenebilecek konuların üçte birine yakın bir kısmını anlatmaya ve örneklerle açıklamaya çalıştım. Ancak forumdan görebildiğim kadarıyla beklediğim kadar kişiye ulaşmak mümkün olmadı. Sanırım okumayı sevmeyen bir toplum olduğumuzu unuttum. Bu nedenle yazı dizimize burada son veriyorum. Bundan sonra forumda sadece uygulamaya yönelik temrinler paylaşılacak. Hem konu anlatımı hem de örnekleri youtube ortamında paylaşmayı düşünüyorum.