BİL-141 Bilgisayar Programlama I (Java) TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, M. Ali Akcayol tarafından Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır.
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Dizilerin Temelleri Çok sayıda aynı türdeki değeri farklı isimlerdeki değişkenlerle saklamak yerine, dizi kullanarak tek bir değişken adı kullanarak saklayabiliriz. Diziler, aynı veri türüne veya sınıfa ait birbirleriyle ilişkili veriler topluluğudur. Dizilerin her bir elemanında saklanan veri basit veri türüne veya bir nesneye ait olabilir. Bellekte kaplayacağı boyut veri türüne veya nesneye göre belirlenir. 3
Dizilerin Temelleri Aynı veri türüne ait n adet veri, 1 den n ye kadar indisleri olan x dizisinde depolanabilir ve aşağıdaki biçimde gösterilir. veri türü [] x = new veri türü [n] Bir dizi tanımı aşağıdaki gibi yapılabilir: veri_türü [] dizi_adı = new veri_türü [dizi_uzunluğu]; int [] a = new int [10]; 4
Örnek Dizilerin Temelleri Ankara ölçülmüş 7 günlük hava sıcaklıklarını kullanarak istatistiksel veriler isteniyor. Günlere ait sıcaklık değerleri için ayrı ayrı 7 tane int türünde değişken tanımlanabilir. int gun1, gun2, gun3, gun4, gun5, gun6, gun7; Veri sayısı arttıkça değişken sayısı artacağından kullanışlı bir yaklaşım değildir. Bunun yerine dizi ile bir değişken tanımlanarak çok sayıda değer saklanabilir. int [] sicaklik = new int [7]; 5
Dizilerin Temelleri Örnek devam Bu dizi tanımı 7 adet değişken tanımı yapmaya eşittir. sicaklik[0] sicaklik[1] sicaklik[2] sicaklik[3] sicaklik[4] sicaklik[5] sicaklik[6] Dizilerde indisler 0 ile başlar ve dizideki eleman sayısı-1 ile biter. 6
Dizilerin Temelleri Örnek devam Dizinin her elemanına ayrı değer atanabilir. sicaklik[0] = 7 sicaklik[1] = 4 sicaklik[2] = -1 sicaklik[3] = -3 sicaklik[4] = 0 sicaklik[5] = 2 sicaklik[6] = 3 7
Dizilerin Temelleri Örnek devam Diziye girilen değerlerin toplamı istenirse aşağıdaki gibi bir döngüyle yapılabilir. for (i = 0; i < 7; i++) sicaklik[i] = klavye.nextint(); toplam = toplam + sicaklik[i]; 8
Dizilerin Temelleri Örnek ortalamasicaklik devam /** * Bu program girilen sicakliklarin ortalamasini * almakta ve en düsük ve en yüksek sicakligi yazmaktadir. */ import java.util.*; public class OrtalamaSicaklik public static void main (String [] args) Scanner klavye = new Scanner(System.in); double [] sicaklik = new double[30]; int indis, gun1, gun2; double toplam,ortalama, endusuk, enyuksek; toplam = 0.0; 9
Dizilerin Temelleri Örnek ortalamasicaklik devam for (indis = 0; indis <= 29; indis++) System.out.print ("Gun: " + (indis + 1) + " sicaklik: "); sicaklik[indis] = klavye.nextdouble(); toplam += sicaklik[indis]; ortalama = toplam / 30.0; System.out.println("Kasim ayi ortalamasi = " + ortalama); endusuk = sicaklik[0]; gun1 = 0; enyuksek = sicaklik[0]; gun2 = 0; 10
Dizilerin Temelleri Örnek ortalamasicaklik devam for (indis = 1; indis <= 29; indis++) if (endusuk > sicaklik[indis]) endusuk = sicaklik[indis]; gun1 = indis; if (enyuksek < sicaklik[indis]) enyuksek = sicaklik[indis]; gun2 = indis; System.out.print ("En dusuk sicaklik = "); System.out.println(enDusuk + " Gun = + (gun1 + 1)); System.out.print ("En yuksek sicaklik = "); System.out.println(enYuksek + " Gun = + (gun2 + 1)); 11
Dizilerin Temelleri Örnek ortalamasicaklik devam Çıktı: Gun: 1 sicaklik: 32 Gun: 2 sicaklik: 33 Gun: 3 sicaklik: 34 Gun: 4 sicaklik: 29 Gun: 5 sicaklik: 32 Gun: 6 sicaklik: 40 Gun: 7 sicaklik: 28 Gun: 8 sicaklik: 44 Gun: 9 sicaklik: 23 Gun: 10 sicaklik: 24......... Gun: 25 sicaklik: 23 Gun: 26 sicaklik: 23 Gun: 27 sicaklik: 29 Gun: 28 sicaklik: 32 Gun: 29 sicaklik: 33 Gun: 30 sicaklik: 34 Kasim ayi ortalamasi = 31.466666666666665 En dusuk sicaklik = 2.0 Gun = 11 En yuksek sicaklik = 44.0 Gun 8 12
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
length Değişkeni length değişkeni dizinin büyüklüğünü (eleman sayısını) gösterir. double [] sinavnotu = new double[50]; System.out.println( Dizinin uzunluğu: + sinavnotu.length); Dizinin uzunluğu atama ile değiştirilemez. sinavnotu.length = 100; // yazılamaz Dizide boyut dışına çıkarak atama yapılırsa çalışma sırasında hata oluşur. sinavnotu[50] = 56.7; // Maksimum indis aşıldı! 14
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Dizi Elemanlarına İlk Değer Atama Diziler oluşturulduğu anda ilk değerlerini alabilirler. double [] sicaklik = 17, 16, 14, 15, 18, 17, 16; Aynı dizi elemanlarına aşağıdaki gibi tanımlandıktan sonra da değer atanabilir. sicaklik[0] = 17 sicaklik[1] = 164 sicaklik[2] = 14 sicaklik[3] = 15 sicaklik[4] = 18 sicaklik[5] = 17 sicaklik[6] = 16 16
Dizi Elemanlarına İlk Değer Atama int veri türündeki diziler ilk değer atanmazsa otomatik olarak 0 değerini alırlar. int [] sicaklik = new int[365]; int i; for (i = 1; i <= sicaklik.length; i++) sicaklik [i] = 0; 17
Dizi Elemanlarına İlk Değer Atama Örnek - Dizi Kopyalama /** * Bu program bir dizi yaratmakta ve yaratilan diziyi * bir baska diziye kopyalamaktadir. */ public class DiziKopyala public static void main(string [] args) int[] dizi1 = 7, 4, 8, 1, 4, 1, 4 ; float[] dizi2 = new float[dizi1.length]; System.out.print("dizi1: [ "); for (int i = 0 ; i < dizi1.length; i++) System.out.print(dizi1[i] + " "); System.out.println("] ); 18
Dizi Elemanlarına İlk Değer Atama Örnek - Dizi Kopyalama - devam System.out.print("dizi2: [ "); int sayac = 0; while ( sayac < dizi1.length && dizi1[sayac]!= 1) dizi2[sayac] = (float) dizi1[sayac]; System.out.print(dizi2[sayac++] + " "); System.out.println("] ); Çıktı: dizi1: [ 7 4 8 1 4 1 4 ] dizi2: [ 7.0 4.0 8.0 ] 19
Dizi Elemanlarına İlk Değer Atama Örnek - Öğrenci Bilgileri /** * Bu programda ögrencilerin isim ve soyadlari ve not * ortalamalari tutulmakta ve hangi servise bindikleri * kaydedilmektedir. */ import java.util.*; public class Dizi public static void main(string [] args) Scanner klavye = new Scanner(System.in); String [] ogrenci = new String[5]; int servis[] = new int[2]; double[] ortalama = 3.2,2.3,1.7,3.8,3.5; 20
Dizi Elemanlarına İlk Değer Atama Örnek - Öğrenci Bilgileri - devam for (int i = 0; i < ogrenci.length; i++) System.out.println("ögrencinin adini giriniz"); ogrenci[i] = klavye.nextline(); System.out.print("servis numarasini giriniz"); System.out.println(" (1 veya 2)"); int j = klavye.nextint(); klavye.nextline(); servis[j-1]++; System.out.println(ogrenci[i] + " " + ortalama[i] + " "); for (int i = 0; i < servis.length; i++) System.out.println("Servis No " + (i + 1)); System.out.println(" " + servis[i]); 21
Dizi Elemanlarına İlk Değer Atama Örnek - Öğrenci Bilgileri - devam Çıktı: ögrencinin adini giriniz ali servis numarasini giriniz (1 veya 2) ali 3.2 ögrencinin adini giriniz veli servis numarasini giriniz (1 veya 2) veli 2.3 ögrencinin adini giriniz mehmet servis numarasini giriniz (1 veya 2) mehmet 1.7 ögrencinin adini giriniz ahmet servis numarasini giriniz (1 veya 2) ahmet 3.8 ögrencinin adini giriniz ömer servis numarasini giriniz (1 veya 2) ömer 3.5 Servis No 1 3 Servis No 2 2 22
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Sınıf ve Metotlarda Dizi Kullanımı Sınıf için bir değişken tanımı yapıldığı gibi bir dizi tanımı da yapılabilir. Örnek - OgrenciRaporu /** * Bu program dizi degiskenlerinin metoda aktarilmasini * göstermeye yönelik bir programdir. Ögrenci raporlari üretir. */ import java.util.*; public class OgrenciRaporu private double enyuksek; private double ortalama; private Ogrenci[] kayit; private int ogrencisayisi; // kayit.length Scanner klavye = new Scanner(System.in); 24
Sınıf ve Metotlarda Dizi Kullanımı Örnek - OgrenciRaporu - devam public void notoku() System.out.println("Ogrenci sayisini giriniz:"); ogrencisayisi = klavye.nextint(); kayit = new Ogrenci[ogrenciSayisi]; int i; for (i = 0; i < ogrencisayisi; i++) kayit[i] = new Ogrenci(); System.out.print("Ogrenci verilerini giriniz "); System.out.println((i + 1)); kayit[i].verioku(); System.out.println(); 25
Sınıf ve Metotlarda Dizi Kullanımı Örnek - OgrenciRaporu - devam // ortalama ve en yüksek notu hesaplar. // en az 1 ögrenci olmalidir. public void degistir() int i; double sonrakinot = kayit[0].getnot(); enyuksek = sonrakinot; double toplam = sonrakinot; for (i = 1; i < ogrencisayisi; i++) sonrakinot = kayit[i].getnot(); toplam = toplam + sonrakinot; if (sonrakinot > enyuksek) enyuksek = sonrakinot; //O Ana kadarki en yuksek not. ortalama = toplam/ogrencisayisi; 26
Sınıf ve Metotlarda Dizi Kullanımı Örnek - OgrenciRaporu - devam // Sonuçlari ekranda göster. public void sonucugoster() System.out.println("Ortalama not " + ortalama); System.out.println("En yuksek not " + enyuksek); System.out.println(); int i; System.out.println("En yuksek not: "); for (i = 0; i < ogrencisayisi; i++) double sonrakinot = kayit[i].getnot(); if (sonrakinot == enyuksek) kayit[i].veriyazdir(); System.out.println("$ " + (sonrakinot - ortalama)); System.out.println(" Ortalamanin ustunde."); System.out.println(); 27
Sınıf ve Metotlarda Dizi Kullanımı Örnek - OgrenciRaporu - devam System.out.println("Digerlerinin performansi:"); for (i = 0; i < ogrencisayisi; i++) double sonrakinot = kayit[i].getnot(); if (kayit[i].getnot()!= enyuksek) kayit[i].veriyazdir(); if (sonrakinot >= ortalama) System.out.print("$" + (sonrakinot - ortalama)); System.out.println(" Ortalamanin ustunde."); else System.out.print("$" + (sonrakinot - ortalama)); System.out.println(" Ortalamanin altinda."); System.out.println(); 28
Sınıf ve Metotlarda Dizi Kullanımı Örnek - OgrenciRaporu - devam public static void main(string [] args) Scanner klavye = new Scanner(System.in); OgrenciRaporu ogrenci = new OgrenciRaporu(); ogrenci.notoku(); ogrenci.degistir(); ogrenci.sonucugoster(); 29
Sınıf ve Metotlarda Dizi Kullanımı OgrenciRaporu sınıfında kullanılan Ogrenci sınıfı aşağıdaki gibi tanımlanmıştır. import java.util.*; public class Ogrenci private String isim; private double genelnot; Scanner klavye = new Scanner(System.in); public Ogrenci() isim = "bos"; genelnot = 0; public Ogrenci(String name, double not) set(name, not); 30
Sınıf ve Metotlarda Dizi Kullanımı Ogrenci sınıfı - devam public void set(string yeniisim, double yeninot) isim = yeniisim; genelnot = yeninot; public void verioku( ) System.out.print("Ogrenci adini giriniz: "); isim = klavye.nextline(); System.out.print("Ogrenci kumulatif "); System.out.print("ortalamasini giriniz: "); genelnot = klavye.nextdouble( ); 31
Sınıf ve Metotlarda Dizi Kullanımı Ogrenci sınıfı - devam public void veriyazdir( ) System.out.println("Ogrenci: " + isim); System.out.println("Ortalama " + genelnot); public String getisim( ) return isim; public double getnot( ) return genelnot; 32
Sınıf ve Metotlarda Dizi Kullanımı Çıktı: Ogrenci sayisini giriniz: 3 Ogrenci verilerini giriniz 1 Ogrenci adini giriniz: ali Ogrenci kumulatif ortalamasini giriniz: 2 Ogrenci verilerini giriniz 2 Ogrenci adini giriniz: veli Ogrenci kumulatif ortalamasini giriniz: 3,4 Ogrenci verilerini giriniz 3 Ogrenci adini giriniz: ahmet Ogrenci kumulatif ortalamasini giriniz: 2,8 Ortalama not 2.733333333333333 En yuksek not 3.4 En yuksek not: Ogrenci: veli Ortalama: 3.4 $ 0.666666666666667 Ortalamanin ustunde. Digerlerinin performansi Ogrenci: ali Ortalama: 2.0 $-0.733333333333333 Ortalamanin altinda. Ogrenci: ahmet Ortalama: 2.8 $0.06666666666666687 Ortalamanin ustunde. 33
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Metotlara Dizi Göndermek Dizi elemanları metotlardaki aynı türdeki değişkenlere gönderilebilirler. ortalama = ortalamabul(birincideger, sicaklik[i]); Bir dizinin tamamı da bir metoda gönderilebilir. double [] sicaklik = new double[30]; ortalama = ortalamabul(sicaklik); Yukarıdaki örnekte sicaklik dizisinin tamamı metoda gönderilmiştir. 35
Metotlara Dizi Göndermek ortalamabul metodunun tanımı ise aşağıdaki gibi olabilir. public double ortalamabul(double [] deger); int i, toplam = 0; for (i = 0; i < deger.length; i++) toplam = toplam + deger[i]; return (toplam / deger.length); 36
Metotlara Dizi Göndermek Dizilerde nesne olarak düşünüldüğünden atama (=) ve eşitlik (==) kavramları kullanılabilir. int[] a = new int[3]; int[] b = new int[3]; int i; for (i = 0; i < a.length; i++) a[i] = i; for (i = 0; i < b.length; i++) b[i] = i; if (b == a) else System.out.println( == kullanarak esittirler. ); System.out.println( == kullanarak esit degildirler. ); 37
Metotlara Dizi Göndermek Örnek - TestEsitlik /** * Bu equals ve == ifadelerinin kullanimini göstermek üzere * tasarlanmis bir programdir */ public class TestEsitlik public static void main(string [] args) int[] a = new int[3]; int[] b = new int[3]; int i; for (i = 0; i < a.length; i++) a[i] = i; for (i = 0; i < b.length; i++) b[i] = i; 38
Metotlara Dizi Göndermek Örnek - TestEsitlik - devam if (b == a) System.out.println( == ile esit. ); else System.out.println( == ile esit degil ); if (esit(b,a)) System.out.println( esit metodu ile esit. ); else System.out.println( esit metodu ile esit degil. ); 39
Metotlara Dizi Göndermek Örnek - TestEsitlik - devam public static boolean esit (int[] a, int[] b) boolean denkmi; if (a.length!= b.length) denkmi = false; else denkmi = true; //geçici olarak true degeri ata int i = 0; while (denkmi && (i < a.length)) if (a[i]!= b[i]) denkmi = false; i++; return denkmi; Çıktı: == ile esit dedil Esit metodu ile esit. 40
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Dizi Döndüren Metotlar Java da metotlar bir nesne veya dizi döndürebilirler. public veri_türü [] metot_ismi(parametre listesi) Metodun erişilebilirliği public veya private olabilir. public static char[] sesliharfler () char[] yenidizi = new char[8]; yenidizi [0] = a ; yenidizi [1] = e ; yenidizi [2] = ı ; yenidizi [3] = i ; yenidizi [4] = o ; yenidizi [5] = ö ; yenidizi [6] = u ; yenidizi [7] = ü ; return yenidizi; 42
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Dizi Elemanlarının Sıralanması Dizilerin sıralanması için basit sıralama yöntemlerinden birisi bubble sort (kabarcık sıralaması) yöntemidir. Bu sıralamada iki iç içe döngüyle tüm elemanlar sıralanır. Dıştaki her döngüde bir eleman yerine taşınmış olur. İç döngünün tekrar sayısıda bir azalmış olur. Başlangıç 0 81 1 13 2 4 3 19 4 71 5 55 0 81 1 13 2 4 3 19 4 55 5 71 X 0 81 1 13 2 4 3 19 4 55 5 71 X 0 81 1 13 2 4 3 19 4 55 5 71 0 81 1 4 2 13 3 19 4 55 5 71 0 4 1 81 2 13 3 19 4 55 5 71 X 0 4 1 81 2 13 3 19 4 55 5 71 X 0 4 1 81 2 13 3 19 4 55 5 71 X 0 4 1 81 2 13 3 19 4 55 5 71 0 4 1 13 2 81 3 19 4 55 5 71 X 0 4 1 13 2 81 3 19 4 55 5 71 X 0 4 1 13 2 19 3 81 4 55 5 71 0 4 1 13 2 19 3 81 4 55 5 71 X 0 4 1 13 2 19 3 81 4 55 5 71 0 4 1 13 2 19 3 55 4 81 5 71 0 4 1 13 2 19 3 55 4 71 5 81 Sonuç 44
Dizi Elemanlarının Sıralanması 45
Dizi Elemanlarının Sıralanması Örnek - KabarcikSiralama /** * Kabarcik siralamasini göstermek amaciyla tasarlanmis * program örnegi */ import java.util.*; public class KabarcikSiralama final static int makseleman = 2000; public static void main(string [] args) Scanner klavye = new Scanner(System.in); int n; int[] liste = new int[makseleman]; //listeyi yarat System.out.print("Liste boyunu giriniz:"); n = klavye.nextint(); for (int i = 0; i < n; i++) liste[i] = (int) Math.round(Math.random() * 5) + 1; 46
Dizi Elemanlarının Sıralanması Örnek - KabarcikSiralama - devam liste = kabarcik(liste,n); System.out.println("Sirali Liste:"); for (int i = 0; i < n; i++) System.out.println(liste[i]); //---------------------------------------------------- public static int[] kabarcik(int[] x, int boy) int gecici; for (int k = 1; k < boy; k++) for (int i = 0; i < boy - k; i++) if (x[i] > x[i+1]) gecici = x[i]; x[i] = x[i + 1]; x[i + 1] = gecici; return x; 47
Dizi Elemanlarının Sıralanması Örnek - KabarcikSiralama - devam Çıktı: Liste boyunu giriniz:10 Sirali liste: 2 2 2 3 3 4 4 5 5 6 48
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Nesnelerin Dizi Elemanı Olarak Kullanımı Dizilerde veri elemanı olarak nesneler de kullanılabilir. Örnek - KisiDizisi import java.util.*; public class KisiDizisi public static void main(string [] args) Scanner klavye = new Scanner(System.in); final int maksmevcut = 32; double ort,total = 0.0; int mevcut; Kisi[] ogrenci = new Kisi[maksMevcut]; System.out.print("Ogrenci sayisini giriniz:"); do mevcut = klavye.nextint(); if (mevcut < 1 mevcut > 32) System.out.print("Yanlis mevcut, yeniden deneyiniz!"); while (mevcut < 1 mevcut > 32); 50
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam for (int k = 0; k < mevcut; k++) ogrenci[k] = new Kisi(); ogrenci[k].bilgioku(); total += ogrenci[k].getgenelnot(); for (int k = 0; k < mevcut; k++) System.out.println("------------------------------"); ogrenci[k].bilgiyaz(); System.out.println("------------------------------"); ort = total / mevcut; System.out.println("Ortalama=" + ort); 51
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam public class Kisi private String isim; private String eposta; private String dogumyeri; private double genelnot; Scanner klavye = new Scanner(System.in); //---------------------------------------------------- public Kisi(String a, String b, String c, double o) isim = a; eposta = b;dogumyeri = c; genelnot = o; //---------------------------------------------------- public Kisi() //---------------------------------------------------- 52
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam public void setisim(string adsoyad) isim = adsoyad; //---------------------------------------------------- public void seteposta(string email) eposta = email; //---------------------------------------------------- public void setdogumyeri(string yer) dogumyeri = yer; //---------------------------------------------------- public void setgenelnot(double ortalama) genelnot = ortalama; 53
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam //---------------------------------------------------- public double getgenelnot() return genelnot; //---------------------------------------------------- public void bilgioku() System.out.print("Ismi giriniz: "); isim = klavye.nextline(); System.out.print("e-Postayi giriniz: "); eposta = klavye.nextline(); System.out.print("D. Yeri giriniz: "); dogumyeri = klavye.nextline(); System.out.print("Genel not ortalamasini giriniz: "); genelnot = klavye.nextdouble(); //---------------------------------------------------- 54
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam public void bilgiyaz() System.out.println("Ogrenci Ismi: " + isim); System.out.println("Ogrenci e-posta adresi: " + eposta); System.out.println("Ogrenci Dogum Yeri: " + dogumyeri); //---------------------------------------------------- public boolean equals(kisi birkisi) if (isim.equals(birkisi.isim)&& eposta.equals(birkisi.eposta)&& dogumyeri.equals(birkisi.dogumyeri)) return true; else return false; 55
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam Çıktı: Ogrenci sayisini giriniz:3 Ismi giriniz: ali e-postayi giriniz: ali@etu.edu.tr D. Yeri giriniz: ankara Genel not ortalamasini giriniz: 3,5 Ismi giriniz: veli e-postayi giriniz: veli@etu.edu.tr D. Yeri giriniz: istanbul Genel not ortalamasini giriniz: 2,4 Ismi giriniz: ahmet e-postayi giriniz: ahmet@etu.edu.tr D. Yeri giriniz: malatya Genel not ortalamasini giriniz: 3,2 ------------------------------ Ogrenci ismi: ali Ogrenci e-posta adresi: ali@etu.edu.tr Ogrenci Dogum Yeri: ankara ------------------------------ ------------------------------ Ogrenci ismi: veli Ogrenci e-posta adresi: veli@etu.edu.tr Ogrenci Dogum Yeri: istanbul ------------------------------ 56
Nesnelerin Dizi Elemanı Olarak Kullanımı Örnek - KisiDizisi - devam Çıktı: (devam) ------------------------------ Ogrenci ismi: ahmet Ogrenci e-posta adresi: ahmet@etu.edu.tr Ogrenci Dogum Yeri: malatya ------------------------------ Ortalama=3.0333333333333337 57
Konular Dizilerin Temelleri length Değişkeni Dizi Elemanlarına İlk Değer Atama Sınıf ve Metotlarda Dizi Kullanımı Metotlara Dizi Göndermek Dizi Döndüren Metotlar Dizi Elemanlarının Sıralanması Nesnelerin Dizi Elemanı Olarak Kullanımı Çok Boyutlu Diziler
Çok Boyutlu Diziler Matris veya çok boyutlu veri gösterimi için kullanılırlar. veri_türü [][] matris = new veri_türü [4][4] 0 1 2 3 0 1 2 3 int[][] tablo = new int [10][20]; tablo[3][5] = 23; System.out.println( Tablo cok boyutlu dizisinin uzunlugu: + tablo.length); Çıktı: Tablo cok boyutlu dizisinin uzunlugu: 10 59
Çok Boyutlu Diziler Örnek - IkiBoyutluDizi import java.util.*; public class IkiBoyutluDizi public static void main(string [] args) int[][] matris = new int [4][4]; for (sira = 0; sira < 4; sira++ ) for (sutun = 0; sutun <4; sira++ ) matris [sira][sutun] =(int)(math.random() * 5) + 1; for (sira = 0; sira < 4; sira++ ) for (sutun = 0; sutun < 4; sira++ ) System.out.print (matris[sira][sutun] + ); System.out.println(); Çıktı: 74 5 3 65 4 1 24 5 8 9 6 5 3 60