MTK467 Nesneye Yönelik Programlama. Hafta 8 - Çok boyutlu diziler Zümra Kavafoğlu

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

Diziler (Arrays) Çok Boyutlu Diziler

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Diziler İndisli Değişkenler

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

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

BİL1001 Bilgisayar Bilimlerine Giriş 1

ALGORİTMA VE PROGRAMLAMA I

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

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

Özyineleme (Recursion)

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

AVRASYA UNIVERSITY. Dersin Verildiği Düzey Ön Lisans (X ) Lisans ( ) Yüksek Lisans( ) Doktora( )

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

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Genel Programlama II

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Akış Diyagramı)

ALGORİTMA VE PROGRAMLAMA II

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

Bilgisayar Programcılığı. Ögr. Gör. Cansu AYVAZ GÜVEN

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

Dr. Fatih AY Tel: fatihay@fatihay.net

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Bölüm: Matlab e Giriş.

Genel Programlama II

JAVADA DİZİ İŞLEMLERİ

ALGORİTMA VE PROGRAMLAMA I

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

C++ Dersi: Nesne Tabanlı Programlama

2. Dereceden Denklemin Köklerini Bulan Program

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

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

NESNEYE YÖNELİK PROGRAMLAMA

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

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

Hafta 13 Fonksiyonlar

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

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

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

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

YZM 2105 Nesneye Yönelik Programlama

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

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

BPR152-Algoritma ve Programlama II Uygulama -13

Programlama Dilleri 1. Ders 4: Diziler

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

Veri Yapıları Laboratuvarı

Programlama Dilleri 3

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

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

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

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

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

C PROGRAMLAMA D İ L İ

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

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

YZM 2105 Nesneye Yönelik Programlama

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Göstericiler (Pointers)

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Lambda İfadeleri (Lambda Expressions)

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BİLGİSAYAR PROGRAMLAMA

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

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

Pascal Programlama Dili (2. hafta)

Şimdi başka bir problem üzerinde çalışalım.

Ayrık Fourier Dönüşümü

Bilgisayar Programlama. 1.Hafta

Bilgisayar Programlama MATLAB

Şekil 6.2 Çizgisel interpolasyon

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

14 Şubat 2011 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim.

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Transkript:

MTK467 Nesneye Yönelik Programlama Hafta 8 - Çok boyutlu diziler Zümra Kavafoğlu https://zumrakavafoglu.github.io/

İki boyutlu diziler İki boyutlu diziler veya tablolara gerçek hayatta sıklıkla ihtiyaç duyulur: Satranç tahtası Otobüs tarifesi Hesap çizelgeleri vs.

İki boyutlu diziler Örneğin bir bilgisayar firmasının 4 mağazasının her birinde haftanın her bir gününde satılan bilgisayar sayısını aşağıdaki gibi bir tabloyla gösterebiliriz: Mağazalar Haftanın günleri 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20 Bu tablo için sales isminde iki boyutlu bir dizi oluşturabiliriz. Bu dizinin satır sayısı 4, sütun sayısı 7 olmalıdır. Bu dizi tek boyutlu dizilere benzer olarak aşağıdaki biçimde tanımlanabilir.

İki boyutlu dizi tanımlamak Dizi adı Sütun sayısı Dizi elemanlarının tipi Satır sayısı

İki boyutlu dizi: İndisler İki boyutlu bir dizideki belirli bir elemana ulaşmak için, o elemanın dizideki yerini belirten iki tamsayı değere ihtiyacımız vardır: Satır indisi ve sütun indisi. Örneğin satış tablosuna göre 3. mağazada Salı günü satılan bilgisayar sayısına ulaşmak için sales dizisinin satır indisi 2, sütun indisi 1 olan elemanına ulaşmalıyım. (Tek boyutlu dizilerde olduğu gibi, iki boyutlu dizilerde de indisleme 0 dan başlar.) Bu elemana aşağıdaki komutla ulaşabilirim: Sütun indisi 17 değeri atanır Satır indisi

İki boyutlu dizi: İndisler Benzer biçimde dizideki herhangi bir elemanın değerini de yine elemana indisler yoluyla ulaşıp değiştirebiliriz. Örneğin haftanın 6. günü 1. mağazada satılan bilgisayar sayısını 15 yapmak istersek aşağıdaki komutu kullanabiliriz. ya da haftanın 2. günü 4. mağazada satılan bilgisayar sayısını aşağıdaki komutla 1 arttırabiliriz.

İki boyutlu dizi: Dizi boyu İki boyutlu dizilerin boyutu belirlemek için iki farklı tamsayı değer kullanılır: Biri satır sayısı, diğeri ise sütun sayısı. Örneğin satış tablomuzda satır sayısı 4 iken sütun sayısı 7 dir. Satır sayısını hesaplamak için length komutu kullanılır. Yani satış tablomuz için satır sayısını aşağıdaki ifadeyle elde edebiliriz. Sütun sayısını hesaplamak için ise herhangi bir satırın uzunluğunu kullanabiliriz. (Hangi satırın uzunluğunu kullandığımız fark etmez çünkü tüm satırların uzunluğu aynıdır ve sütun sayısını verir)

İki boyutlu dizi: Dizi boyu 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20 sales[0] = {sales[0][0], sales[0][1], sales[0][2], sales[0][3], sales[0][4], sales[0][5], sales[0][6]} = {15, 7, 3, 0, 12, 10, 4}

İki boyutlu dizi: Dizi boyu 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20 sales[1] = {sales[1][0], sales[1][1], sales[1][2], sales[1][3], sales[1][4], sales[1][5], sales[1][6]} = {3, 8, 7, 6, 1, 11, 2}

İki boyutlu dizi: Dizi boyu 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20 sales[2] = {sales[2][0], sales[2][1], sales[2][2], sales[2][3], sales[2][4], sales[2][5], sales[2][6]} = {1, 17, 3, 9, 10, 1, 1}

İki boyutlu dizi: Dizi boyu 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20 sales[3] = {sales[3][0], sales[3][1], sales[3][2], sales[3][3], sales[3][4], sales[3][5], sales[3][6]} = {2, 6, 7, 5, 18, 25, 20}

İki boyutlu dizi: İndisler ve dizi boyu İki boyutlu bir dizinin elemanları çağırılırken ilk indis satır boyundan, ikinci indis sütun boyundan küçük ve her iki indis de sıfırdan büyük olmalıdır. Aksi takdirde çalışma zamanı hatası oluşur.

İki boyutlu dizi: İndisler ve dizi boyu İki boyutlu bir dizinin elemanları çağırılırken ilk indis satır boyundan, ikinci indis sütun boyundan küçük ve her iki indis de sıfırdan büyük olmalıdır. Aksi takdirde çalışma zamanı hatası oluşur. İki boyutlu dizinin satır ve sütun boyunu sabit değerler olarak tanımlamak programın okunurluğunu ve düzenlenebilirliğini arttırır.

İki boyutlu dizi: İlk değer vermek İki boyutlu bir dizinin elemanlarına ilk değer vermek için çeşitli yollar kullanılabilir: Örneğin ilk satırının tüm elemanları 0, ikinci satırının tüm elemanları 1 olan 2x3 boyutlu bir diziye ilk eleman vermek için aşağıdaki gibi for döngüsünden faydalanabiliriz:

İki boyutlu dizi: İlk değer vermek Dizilere bir diğer ilk değer verme biçimi de diziyi ilk değerleriyle Mağazalar tanımlamaktır. Örneğin sales dizisini aşağıdaki gibi tanımlayabiliriz. Bu tanımlamayla hem 4 satırlı ve 7 sütunlu bir dizi oluşturmuş hem de ona ik değerini vermiş oluruz. Haftanın günleri 0 1 2 3 4 5 6 0 15 7 3 0 12 10 4 1 3 8 7 6 1 11 2 2 1 17 3 9 10 1 1 3 2 6 7 5 18 25 20

Dizi elemanlarını toplamak sales dizisini kullanarak o hafta toplam kaç bilgisayar satıldığını hesaplayan program:

Metot parametresi olarak iki boyutlu diziler: sum metodu Parametre olarak aldığı iki boyutlu bir dizinin elemanlarının toplamını hesaplayan sum isimli bir metot yazalım:

Metot parametresi olarak iki boyutlu diziler: sum metodu sum metodunu kullanarak haftalık bilgisayar satışını hesaplayan program:

Metot parametresi olarak iki boyutlu diziler: columnsum metodu Parametre olarak aldığı iki boyutlu bir dizinin yalnızca bir sütunundaki elemanların toplamını hesaplayan metot:

Metot parametresi olarak iki boyutlu diziler: columnsum metodu columnsum metodunu kullanarak haftanın belirli bir gününde yapılan satışı hesaplayan program:

Dizi elemanlarını yazdırmak: printarray metodu

Jagged Array Java da farklı sütun uzunluklarına sahip diziler de tanımlayabiliriz, bu dizilere jagged dizi denir. Satır sayısı: 3 (arr.length) 1. satırın eleman sayısı : 2 (arr[0].length) 2. satırın eleman sayısı: 6 (arr[1].length) 3. satırın eleman sayısı: 1 (arr[2].length)

Jagged Array Java da farklı sütun uzunluklarına sahip diziler de tanımlayabiliriz, bu dizilere jagged dizi denir. Satır sayısı: 3 (arr.length) 1. satırın eleman sayısı : 2 (arr[0].length) 2. satırın eleman sayısı: 6 (arr[1].length) 3. satırın eleman sayısı: 1 (arr[2].length)

Jagged Array Satırları aşağıdaki alt alta satırlardan oluşan bir Jagged Array tanımlayalım: 5 satır var, o halde 5 satırlı bir jagged array tanımlamalıyız:

Jagged Array Satırları aşağıdaki alt alta satırlardan oluşan bir Jagged Array tanımlayalım: i indisli satırın i+1 adet elemanı var. O halde her bir satır için bu eleman sayısına sahip hafızada yer açmalıyım:

Jagged Array Satırları aşağıdaki alt alta satırlardan oluşan bir Jagged Array tanımlayalım: Satırlara istenen değerleri vermek için aşağıdaki gibi bir for döngüsü kullanabilirim:

Jagged Array elemanlarını yazdırmak: printjaggedarray

Jagged Array Örnek: Pascal Üçgeni (PascalTriangle.java) Her satırın başlangıç ve bitiş elemanları 1 olan ve ortadaki elemanların üst satırın elemanlarının toplamı ile bulunduğu sayı dizilimine Pascal Üçgeni denir. Yüksekliği verilen bir Pascal üçgenini bir Jagged Array içinde saklayan ve ekrana yazdıran bir Java programı yazınız.

Çok boyutlu diziler İki boyutlu dizi tanımlama ve oluşturma yöntemleri n>2 olmak üzere n-boyutlu dizi tanımlama ve oluşturma yöntemlerine genişletilebilir. Örneğin aşağıdaki gibi üç boyutlu bir dizi oluşturulabilir: double arr[ ][ ][ ] = new double[3][5][2];