7. DİZİLER Bir dizi, aynı tipteki elemanların yan yana sıralanışı ile elde edilen bir bilgi kümesidir. Matematikte kullanılan doğal sayılar (1,2,3,..),

Slides:



Advertisements
Benzer bir sunumlar
Bilgisayar Programlama Güz 2011
Advertisements

Diziler.
ALGORİTMA ÖRNEKLERİ Programlamaya Giriş
MATLAB’de Diziler; Vektörler ve MAtrisler
Selçuk Üniversitesi’nin Bilişime Gönül Veren Gençleri
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
SQL de Değişken Tanımlama
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
String Kütüphanesindeki Arama Fonksiyonları
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Diziler(Arrays).
Dizi (ARRAY) Diziler grup halindeki değişkenler olarak tanımlanabilir. Dizi içersinde yüzlerce değişken olabilir. Dizi elemanları index adı verilen sıra.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Veri Yapıları Veri, her türlü değer demektir. Veri yapılarının tasarlanma ve oluşturulma amacı; “verinin işlenmesini kolaylaştırmak ve bu işlemi daha verimli.
Nesneye Yönelik Programlama
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Chapter 6: Using Arrays.
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
NESNEYE YÖNELİK PROGRAMLAMA
MATLAB’te Döngüler.
C PROGRAMLAMA DİZİLER (ARRAYS).
Diziler (Arrays).
JAVA’DA DİZİLER Dr.Galip AYDIN.
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
4. KONTROL VE DÖNGÜ KOMUTLARI
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
DİZİLER Arrays.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN PASCAL ile Programlamaya Giriş DÖNGÜLER (Loops)
MATLAB’ de Programlama
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Random... Rastgele Sayı Atamak...
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
Sayısal Analiz / Uygulama
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
BİLGİSAYAR PROGRAMLAMA DERSİ 6. DERS NOTU Konu: Matlab’ de Diziler ve Matrisler.
Fonksiyonlar ve Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
2.2. Özel Semboller ve Pascal Sözcükleri
4. GİRİŞ/ÇIKIŞ DEYİMLERİ 4.1. Giriş
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
İleri Algoritma Analizi
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
YAPISAL PROGRAMLAMA Hafta-7
2.2. Özel Semboller ve Pascal Sözcükleri
Örnek: Dışarıdan rast gele girilen 10 tane sayıdan kaç tanesi tek ve kaç tanesi çift ayrıca tekleri ve çiftleri ayrı ayrı toplayan programı yazınız. var.
Akis diyagramı Örnekleri
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Diziler(Arrays).
Sunum transkripti:

7. DİZİLER Bir dizi, aynı tipteki elemanların yan yana sıralanışı ile elde edilen bir bilgi kümesidir. Matematikte kullanılan doğal sayılar (1,2,3,..), reel sayılar aslında birer dizidir. Ayrıca yılın ayları (Ocak, Şubat, Mart, …), haftanın günleri de birer dizidir. Şeklinde tanımlanan bir X vektörü tek boyutlu bir dizi,

Şeklinde tanımlanan bir A matrisi iki boyutlu bir dizidir.

Pascalda Dizi Kullanımı     Hangi programlama dilini kullanıyor olursanız olun değişken tanımlamanın mantığı aynıdır. Saklanacak bilginin tipine göre bir tip seçilir buna bir isim verilir ve hafızada bu değişken için bellek ayrılır. Her değişken için durum aynıdır. Pascalda bu işlemi Var bloğunda yapıyoruz. Peki aynı özelliklere sahip birden fazla değişkene ihtiyaç duyarsak ne olacak. Mesela bir öğretmen düşünün. Değişik sayılarda öğrencisi olan sınıflara girsin ve bu öğrencilerin notlarını bilgisayarda tutmaya çalışsın. Eğer dizi değişkenleri kullanmayı bilmiyorsa en kalabalık sınıfındaki öğrenci sayısı kadar değişken tanımlayacak sonra da her öğrencinin notunu kendi değişkenine ayrı ayrı atamak zorunda kalacaktır. Oysa bunu halletmenin daha kolay bir yolu var. Dizileri kullanmak. Dizilerin en önemli özelliği aynı tipteki ve birbiri ile alakalı verileri toplu olarak tanımlamaya yaramasıdır. Bu durumda örneğimizdeki öğretmen en kalabalık sınıfındaki öğrenci sayısı kadar elemanı olan bir tek dizi değişkeni tanımlar ve bilgileri bir döngü içerisinde indis kullanarak dizinin uygun yerine yerleştirir. Bu iki durumu bir tablo içinde gösterelim.

Artık dizi kullanmanın avantajlarını biliyoruz Artık dizi kullanmanın avantajlarını biliyoruz. Bize aynı türden ve birbiri ile ilişkili bilgilere kolay erişmemizi sağlıyor. İsterseniz artık bir dizi tanımının nasıl yapıldığına bakabiliriz. Dizileri VAR bloğunda tanımlayabileceğimiz gibi, Type bloğunda da tanımlayabiliriz. Eğer TYPE bloğunu kullanırsak tanımlamış olduğumuz yeni tipi direkt değişken tipi olarak kullanabiliriz. değişken_ismi : array [boyut_büyüklüğü] of dizi_tipi; Boyut büyüklüğü herhangi bir standart veri tipinde olabilir. Eğer çok boyutlu bir dizi ise bunlar birbirinden virgüllerle ayrılır. Dizi tipinde ise istediğimiz herhangi bir tipi kullanabiliriz. Yani hem standart tipleri hem TYPE bloğunda tanımladığımız kendi tiplerimizi kullanabiliriz. Dizinin elemanlarına köşeli parantez içerisinde verilen indis numarası ile erişiriz.

Örnek tanımlamalar : Var IntList : array[1..100] of integer; { İnteger tipinde bir boyutlu dizi} CharData : array['A'..'Z'] of Byte; { Char tipinde bir boyutlu dizi} isim : array[1..10] of string[20]; { Her biri 20 karakterlik string tipinde 10 elemanlı dizi} Eğer dizilerimiz çok boyutlu olacaksa Matris : array[0..9, 0..9] of real; {real tipinde 2 boyutlu dizi} KupData : array[1..20,1..20,1..20] of Word {Word tipinde 3 boyutlu dizi} Bir çok bilim dalında çeşitli niceliklerin matematiksel gösterimi için yaygın olarak kullanılan vektör ve matrislerle ilgili bir program yapacağımızı düşünelim. Her Xi (i=1,2,...n) ve Aij(i=1,2,..n, j=1,2,..n) elemanı için basit tipte bir değişken kullanacak olursak karşılaşacağımız güçlüğü görürüz. Örneğin 10 bileşenli bir vektör için 10 basit tip değişken kullanılması gerekirken, 10x10 boyutlarındaki matris için 100 basit tip değişken kullanılması gerekmektedir. Bizim için gerekli olan, aynı tipte elemanlardan oluşan bir veri kümesini tek bir değişken ismi kullanarak, küme içindeki yeri ile erişilmesini sağlayacak veri yapısıdır.

Diziler, kullanım amacına göre tek veya çok boyutlu olabilir Diziler, kullanım amacına göre tek veya çok boyutlu olabilir. Elemanlandırılmış dizi değişkenlerinin boyut durumu ARRAY ifadesiyle köşeli parantez içinde yapılan tanımlamalarla belirtilir. Dizi karakter tipi "OF tip tanımı" ifadesi ile mutlaka verilmelidir. PASCAL programlama dilinde diziler, TYPE, VAR veya CONST tanım bloklarından birinde tanıtılır. İşleme alınmaları işlemlerin çalışma durumlarına göre bir döngü ile gerçekleştirilir. Tüm elemanlar ilk elemandan başlayarak işleme alınacaksa FOR döngüsü, herhangi bir şarta bağlı olarak tekrar edilecekse WHILE veya REPEAT döngüleri ile kullanılır.

7.1. Dizilerin Tanıtılması Bir dizinin tanımı değişik şekillerde yapılabilmektedir. Bunlar aşağıda kısaca özetlenmiştir. 7.1.1. Dizilerin Type Bloğunda Tanıtılması Dizilerin type bloğunda tanıtılması işleminde örneğin; Tek boyutlu ve 30 elemanlı Elektronik Mühendisliği 1. Sınıf öğrencilerinin numaralarının programa tanıtımı: TYPE Numara=ARRAY [1..30] of string[10]; VAR ogr:NUMARA; şeklinde yapılabilir.

Örneğe dikkat edilirse NUMARA adı verilen bir dizi TYPE tanım bloğunda tanıtılmış VAR tanım bloğunda ise bu dizinin OGR adı altında değişken tipte olduğu belirtilmiştir. Aynı şekilde tek boyutlu ve 30 elemanlı Elektronik Mühendisliği 1. Sınıf öğrencilerinin isimlerin programa tanıtımı ise: TYPE isimler=ARRAY [1..30] of String[25]; VAR Ogrisim:Isimler; şeklindedir.

7.1.2.Dizilerin VAR Bloğunda Tanımlanması Bir dizi diğer değişkenlerde olduğu gibi Var tanım bloğunda da tanıtılabilir. Bunun için dizinin boyutu belirtildikten sonra diziyi oluşturan elemanların hangi tipte olduğu belirtilmelidir. Aşağıdaki ifadeleri inceleyiniz. VAR X1:ARRAY [1..10] of Real; k2:ARRAY [1..35] of İnteger; 7.1.3.Dizilerin CONST (Sabit Bilgiler) Bloğunda Tanımlanması Bir dizi diğer sabitlerde olduğu gibi CONST tanım bloğunda da tanıtılabilir. Aşağıdaki örnek programı inceleyiniz.

Writeln('Aranan Ay adı :',Aylar[k]); end. Örnek: Const Aylar:Array[1..12] of string[7]= ('Ocak',’Şubat’,’Mart',’Nisan’, ‘Mayıs','Haziran', 'Temmuz', 'Ağustos','Eylül’,'Ekim',’Kasım', 'Aralık'); var k: integer ; begin Write ('kaçıncı ay:'); Readln(k); Writeln('Aranan Ay adı :',Aylar[k]); end.

Tek boyutlu diziler aşağıda görülen genel formda ifade edilebilirler. Değişken = ARRAY [Başlangıç değeri..Bitiş Değeri] OF tip tanımı; Örnek: Var Dizi1: array [1..20] of string[25] ; Dizi2: array [1..20] of integer; Buradaki ARRAY ve OF sözcükleri Pascal'ın anahtar sözcükleridir. Başlangıç değeri ve Bitiş Değeri ise sayılabilir özellikte değerlerdir. Tip tanımı ise hangi tip verileri içerdiğini belirtmektedir. Diziler değişik şekillerde tanımlanabilir. Bunlar ileride açıklanmıştır.

Örnek: Dışarıdan okunan 10 tane sayıyı bir dizide saklayarak bunların toplamını ve ortalamasını bulan programı yazınız. var sayi:array[1..10]of integer; i,top:integer; ort:real; begin top:=0; for i:=1 to 10 do write(i,'. Sayıyı giriniz'); readln(sayi[i]); top:=top+sayi[i]; end; ort:=top/10; writeln('Sayıların Toplami :', top); writeln('Sayıların Ortalamasi :', ort:4:2); readln; end.

7.3 Çok Boyutlu Diziler İndisli değişkenler iki boyutlu veya daha fazla olduğunda boyut durumu, köşeli parantez içinde eleman tanımları arasında virgül verilerek belirtilir. Matematikte kullanılan matrisler iki boyutlu dizilere en güzel örnektir. Var Dizi değişkeni : array [1..n,1..n,……,1..n] of tip adı; Örneğin;İki boyutlu ve 32 elemanlı dizi adı verilen indisli değişkenin programa tanıtımı; dizi:ARRAY[ 1..4,1..8] of Real; şeklinde yapılabilmektedir. Aynı şekilde; üç boyutlu ve 64 elemanlı dizi1 adı verilen indisli değişkenin programa tanıtımı; dizi1:ARRAY[1..4,1..8,1..2] OF Real;

Örnek: Çarpım tablosu programını yazınız. Var i,j: integer; dizi: array[1..10,1..10] of integer; begin for i:=1to10 do for j:=1 to 10 do dizi[i,j]:=i*j; Write(Dizi[i,j]:4); End; Writeln; End; end.

Örnek: 3*3’lük bir matrisi tanımlayıp değerlerini dışarıdan okutup bu matrisi ekrana matris görünümünde yazınız. var matris:array[1..3,1..3] of integer; i,j:integer; begin for i:=1 to 3 do for j:=1 to 3 do write(i,' .satir ',j,' .sutun elemani :'); readln(matris[i,j]); end; write(mat[i,j],' ' ); writeln; readln; end.

Soru: 4*4’lük bir matrisin asıl köşegeni üzerindeki elemanlarını sıfır ( 0 ) yapan programı yazınız. var mat:array[1..4,1..4] of integer; i,j:integer; begin for i:=1 to 4 do for j:=1 to 4 do write(i,' .satir ',j,' .sutun elemani :'); readln(mat[i,j]); if ( i=j ) then mat[i,j]:=0; end; write(mat[i,j],' '); writeln; readln; end.