JAVADA DİZİ İŞLEMLERİ

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

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

Programlama Dilleri 3

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

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

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Programlama Dillerinde Kullanılan Veri Tipleri

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

ALGORİTMA VE PROGRAMLAMA I

HSancak Nesne Tabanlı Programlama I Ders Notları

Java String İşlemleri

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

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

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

Dizi ( Array ) ve Dizgi ( String )

ALGORİTMA VE PROGRAMLAMA I

Diziler İndisli Değişkenler

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Karşılaştırma İşlemleri ve Koşullu İfadeler

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

// hataları işaret eden referans

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

EMT2226 Nesne Yönelimli Programlamaya Giriş

Nesne Yönelimli Programlama

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

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Pointers (İşaretçiler)

Özyineleme (Recursion)

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

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

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

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

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Diziler (Arrays) Çok Boyutlu Diziler

NESNEYE YÖNELİK PROGRAMLAMA

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Javada Diziler. Javada diziler

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

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

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

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

C++ Dersi: Nesne Tabanlı Programlama

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

Temel Veri Türü İşlemleri

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

YZM 2105 Nesneye Yönelik Programlama

Giriş. ENF102 Jeoloji

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

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

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

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

MAT213 Bilgisayar Programlama I

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

Sınav Dağılım & IMKB Endeks

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Java da İşleçler, Ders #3 (4 Kasım 2009)

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Yrd. Doç. Dr. Caner ÖZCAN

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Dr. Fatih AY Tel: fatihay@fatihay.net

Nesne Tabanlı Programlama

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lambda İfadeleri (Lambda Expressions)

Programlama Dilleri 1. Ders 4: Diziler

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

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Yrd. Doç. Dr. Caner ÖZCAN

BİL-141 Bilgisayar Programlama I (Java)

YZM 2116 Veri Yapıları

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

ALGORİTMA VE PROGRAMLAMA II

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

HSancak Nesne Tabanlı Programlama I Ders Notları

Transkript:

JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız. Java, dizi elemanlarını sırasıyla kontrol eder. Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur. Bu da cde çıkan hafıza bozulmalarını önler. Javada dizi kullanmak için ilk önce dizinin tipi verilir. Tip verilirken dizinin büyüklüğü belirtilmez Diziler Diziler aynı veri tipinde birden fazla veriyi barındıran veri tiplerine dizi adı verilir. Örneğin 100 kişinin adını program içinde bir değişkendetutmak için 100 tane String değişken tanımlamak yerine dizi kullanılır. Dizideki her bir elemana indeks numarası ile erişilir. Mesela notlar değişkeni integer tipinde bir dizi ise notlar[i] ifadesi dizinini. tamsayısını gösterir. Bir dizi tanımlamak için dizi hangi veri tipinde olacak ise veritipinin adı yazıldıktan sonra [ ] eklenir ve dizi değişkeni yazılır. Örneğin tamsayı tipinde dizi tanımlamak için int[ ] notlar; //integer tipinde notlar değişken dizisini tanımlar. Yukarıdaki ifade notlar dizisinin tanımlamasını yapar fakat diziye herhangi bir değer atayamazsınız. Diziye değer atamak için başlatılması gerekir, bu amaçla; int[ ] notlar; notlar=new int[5]; //new operatörü ile başlatma yapılır Dizi tanımlaması yaparken kullanılan köşeli parantezler veritipiyerine değişken adından sonra da yazılabilir; int notlar[ ]=new int[5];

Diziler int[ ] ciftsayilar=new int[10]; for (int i=0;i<10;i++) ciftsayilar[i]=i*2; for (int i=0;i<10;i++) System.out.println(i + ". sırada: "+ ciftsayilar[i]); /*yukarıdaki kodda dikkat edilmesi gereken dizilerin ilk elemanı 0 dan başlar, son elemanı ise tanımda belirtilen sayının bir eksiğidir. Yukarıda 0-9 arasında indeks değerleri alır. */ Dizi Boyutu Bir dizideki eleman sayısını bulmak için length özelliği kullanılr. örneğin; int[ ] notlar=new int[5]; int boyut=notlar.length //boyut=5 dizinin boyutu dizi başlatıldıktan sonra oluşur, örneğin; int[ ] notlar; int boyut=notlar.length //hata verir. Dizi Başlangıç Değerleri Diziler tanımlanırken başlangıç değeri atamak için; int[ ] asalsayilar={ 2, 3, 5, 7, 11, 13 ; yukarıdaki ifade 6 elemanlı bir dizi oluşturur ve parantezler içindeki sayıları diziye atar. Bu dizi oluşturulurken new operatörünün kullanılmasına gerek yoktur. New operatörü diziyi bellekte başlatmak için gereklidir, burada ise dizi başlangıç değerleri atayarak başlatıldığından buna gerek yoktur.

Diziler Javada 0 elemanlı diziler tanımlayabilirsiniz; int[ ] donusdizi=new int[0]; Bu tip bir dizinin kullanım yeri dönüş tipi dizi olan bir metot boş değer döndüreceğinde kullanılabilir. Array kütüphanesini kullanmak için java kodunun başlangıcına yazılması gereken satır: import java.util.*; Dizilerin Kopyalanması Bir diziyi başka bir diziye kopyalamak için dizi şeklinde tanımlanmış iki değişken birbirine atama yapıldığında her iki deişkende aslında aynı diziyi (belleğin aynı yerini) göstermeye başlar. Bu işlem C de bir pointerın değerinin bir ka pointera atanması gibidir. int[ ] asalsayilar={ 2, 3, 5, 7, 11, 13 ; int[ ] yenisayilar=asalsayilar; yenisayilar[5]=17; //asalsayilar[5] de 17 olur Bir dizinin kopyasının başka bir dizi değişkeni şeklinde bellekte kopyalanmasını isetersek System sınıfının arraycopy() metodunu kullanırız. System.arraycopy(HangiDiziden, kaynakbaslangicsirasi, HangiDiziye, hedefbaslangicsirasi, kactane); int[ ] asalsayilar = {2, 3, 5, 7, 11, 13; int[ ] sanslisayilar= {1001,1002,1003,1004, 1005, 1006,1007; System.arraycopy(asalSayilar, 2, sanslisayilar, 3, 4); for (int i = 0; i < sanslisayilar.length; i++) System.out.println(i + ": " + sanslisayilar[i]); Ekran çıktısı; 0: 1001 1: 1002

2: 1003 3: 5 4: 7 5: 11 6: 13 Komut Satırı Parametreleri Şu ana kadar gördüğümüz bütün java programları main metodu içermekteydi ve bu metotların hepsi String[ ] args parametresi almakta idi. public static void main(string[] args) Bu bize programa komut satırından verilen parametrelerin dizi olarak saklandığını ve bu dizinin args adında olduğunu anlatr. public class Ders5{ public static void main(string[] args) { if (args[0].equals("-h")) System.out.println("Help satırı"); else if (args[0].equals("-s")){ System.out.print("Selam, "); // bütün komut satırı parametrelerini yaz for (int i = 1; i < args.length; i++) System.out.print(" " + args[i]); Dizilerin Sıralanması Sayı veritipinden oluşan dizilerin sıralanması için java.util paketindeki Arrays sınıfının sort() metodu kullanılmaktadır. int[ ] a = new int[10000];... Arrays.sort(a) Bu metot birçok durumda çok hızlı sonuçlar veren hızlı sıralama (quicksort) algoritmasın kullanmaktadır.

Dizide arama yapma Bir sayı dizisinde sayı değeri aramak için Arrays sınıfının binarysearch metodu kullanılır; static int binarysearch(xxx[ ] a, Xxx v) Parametreler: a:int, long, short, char, byte, boolean, float veya double veritiplerinden birinde tanımlanmış sıralı bir dizi v: a dizisi ile aynı veri tipinde bir değer Bu metot binarysearch algoritmasını kullanarak a dizisini tarar ve v nin bulunduğu yerin indeks numarasnı döndürür. Eğer v yi bulamaz ise v nin olması gerektiği yerin bir fazlasının negatif değerini döndürür. Örneğin -5 dönmüş ise aranan değer sıralı dizide bulunamamıştır, eğer bulunsa idi 4. sırada bulunması gerekirdi. Dizinin içini doldurmak Bir sayı dizisinin içini belirli bir değer ile doldurmak için Arrays sınıfının fill() metodu kullanılır. static void fill(xxx[ ] a, Xxx v) Burada a: int, long, short, char, byte, boolean, float veya doubletipinde bir dizi,v: Belirtilen dizi ile aynı veritipinde bir değerdir. int[ ] aramadizisi=new int[ ]; Arrays.fill(aramaDizisi, 0); Dizileri Karşılaştırmak İki sayı dizisini karşılaştırmak için Arrays.equals(birinci dizi[ ], ikinci dizi[ ]) metodu kullanılır, metodun kullanımı şu şekildedir; int[ ] asalsayilar = {6, 3, 99, 7, 11, 13; int[ ] dizi2= {6, 3, 99, 7, 11, 13, 17; System.out.println(Arrays.equals(asalSayilar, dizi2)); //true yazar

Çokboyutlu diziler Çokboyutlu diziler matrislerin bilgisayardaki karşılıklarıdır ve birden fazla indeks kullanırlar, örneğin iki boyutlu bir dizi iki boyutlu matris gibidir ve gösterimi şu şekildedir; int[ ][ ] tablo=new int[3][3] ; int[ ][ ] sihirlikare={ {16, 3, 2, 13, {5, 10, 11, 8, {9, 6, 7, 12, {4, 15, 14, 1 ; Javada gerçekte bütün diziler tek boyutludur, örneğin iki boyutlu bir dizi tanımlarsanız bu bellekte tek boyutlu dizilerden oluşan bir dizi olarak saklanır. Bu bizim dizilerle oynamamızı kolaylaştırır, Örneğin; int[ ] temp=sihirlikare[1]; sihirlikare[2]=sihirlikare[1]; sihirlikare[1]=temp; 2. ve 1. satırlarının yerlerini değiştirir (büyü bozuldu). //sihirlikare dizisinin Adi Diziler Javada çok boyutlu dizilerin dizilerden oluşan diziler olarak tanımlanması bize satır boyutları farklı iki boyutlu dizi oluşturma imkanı sağlar. int NMAX = 5; int[][] odds = new int[nmax+1][]; for (n = 0; n <= NMAX; n++) odds[n] = new int[n+1]; for (n = 0; n < odds.length; n++) for (k = 0; k < odds[n].length; k++) { odds[n][k] = k; for (int n = 0; n < odds.length; n++) { for (int k = 0; k < odds[n].length; k++)

characters wide { // pad output with spaces String output = " " + odds[n][k]; // make output field 4 output = output.substring(output.length() - 4); System.out.print(output); System.out.println(); Kaynak Uğur Kahraman