BİL-141 Bilgisayar Programlama I (Java)

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

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

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.

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

Örnek 1: Programı yazın ve çalıştırın.

BİL-141 Bilgisayar Programlama I (Java)

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Ders - 7 while döngüsü

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

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

JAVADA DİZİ İŞLEMLERİ

Temel Veri Türü İşlemleri

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java)

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

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

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

EMT2226 Nesne Yönelimli Programlamaya Giriş

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BİL-141 Bilgisayar Programlama I (Java)

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

YMT219 VERİ YAPILARI ÖDEV-1

Dizi ( Array ) ve Dizgi ( String )

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

String (Dizgi) İşlemleri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

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

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

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

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Programlama Dilleri 3

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

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

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

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

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

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

BİL-141 Bilgisayar Programlama I (Java)

M.ilkucar MAKU MYO 1

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

Java String İşlemleri

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

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

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

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

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

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

// hataları işaret eden referans

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

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

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

Diziler İndisli Değişkenler

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

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

Klavyeden Basit Giriş/Çıkış İşlemleri

ALGORİTMA VE PROGRAMLAMA I

11- FONKSİYONLAR (FUNCTIONS)

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Nesne Yönelimli Programlama

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BPR152-Algoritma ve Programlama II Uygulama -13

Nesne Yönelimli Programlama

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BİL1001 Bilgisayar Bilimlerine Giriş 1

İLKEL VERİ TİPLERİ, STRINGLER VE KONSOL G/Ç

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java)

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

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

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

İ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İ

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

YZM 2105 Nesneye Yönelik Programlama

BM-209 Nesne Yönelimli Programlama

BİL-141 Bilgisayar Programlama I (Java)

MAT213 Bilgisayar Programlama I

a, b, c değişkenleri ile tanımlı üç sayının büyükten küçüğe sıralamasını bulup sıralamaya uygun abc biçiminde ekrana yazdıran programın akış şeması.

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

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

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

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

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

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

İç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

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

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

C# Çalışma Örnekleri

Arasınav Örnek Soruları Bahar 2018

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;

Transkript:

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