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

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

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

M.ilkucar MAKU MYO 1

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

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

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

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

Diziler (Arrays) Çok Boyutlu Diziler

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

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

C++ Dersi: Nesne Tabanlı Programlama

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

JAVADA DİZİ İŞLEMLERİ

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

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

Dizi ( Array ) ve Dizgi ( String )

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

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:

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

11- FONKSİYONLAR (FUNCTIONS)

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

MAT213 Bilgisayar Programlama I

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

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

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.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Ders - 7 while döngüsü

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

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

2. Dereceden Denklemin Köklerini Bulan Program

C# Çalışma Örnekleri

Programlama Dilleri 3

YMT219 VERİ YAPILARI ÖDEV-1

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

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Temel Veri Türü İşlemleri

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

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

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

3.Hafta. . Kontrol Deyimleri/İfadeler

EMT2226 Nesne Yönelimli Programlamaya Giriş

Diziler İndisli Değişkenler

C# ÖRNEK UYGULAMALAR

// hataları işaret eden referans

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

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İLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

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

İki Boyutlu Dizi Uygulamaları

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

Java Programlama Örnekleri. Doç. Dr. Aybars UĞUR

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

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

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

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

BPR152-Algoritma ve Programlama II Uygulama -13

ALGORTMA ve PROGRAMLAMA - II (C# Sürümü) DERS NOTLARI

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

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

Görsel Programlama 1

T.C. MARMARA ÜNİVERSİTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ ÖĞRETMENLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI PROGRAMLAMA DERSİ KAPSAMINDA YAPILAN

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

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

YZM 2105 Nesneye Yönelik Programlama

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

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

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

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

Programlama Dilleri 1. Ders 4: Diziler

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

BİL-141 Bilgisayar Programlama I (Java)

BPR152-Algoritma ve Programlama II Uygulama -8

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 2:Server Side Internet Programming

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

BİL-141 Bilgisayar Programlama I (Java)

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:

Java String İşlemleri

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Görsel Programlama (Visual Programming)

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

BİL-141 Bilgisayar Programlama I (Java)

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

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

Transkript:

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

Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String ad2; String ad3; String ad120; Ancak bu sağlıklı bir yöntem değildir. O halde aynı türdeki N adet değişken tek bir komutla tanımlanabilmeli ve daha sonra kolay bir şekilde kullanılabilmelidir. Bu gibi işlemler için programlama dillerinde dizi (array ) yapıları vardır. 2

0 1 2 3 0 1 2 0 [0,2] 1 [1,1] 2 Tek Boyutlu Dolap İki Boyutlu Dolap 3

Dizi : Aynı veri türünden birden çok değişken tanımlama; Bir boyutlu, İki boyutlu, Üç boyutlu Dizi işlemleri genelde üç aşamada gerçekleşir.; I- Diziyi oluştur. II- Diziye eleman yerleştir. III- Dizi üzerinde işlem yap. Diziler bellek modeline çok benzerler. Dolayısıyla bu gibi düşünmek kolaylık sağlayacaktır. 4

TEK BOYUTLU DİZİLER 5

Tek Boyutlu diziler 0 1 D -> dizi adı D[0] = 3 ; D[1] = 5 ; 0 1 2 3 2 3 7 D[2] = 9 ; D[3] =2 ; Gösterim: D [ indis] Dizi indisi Dizi değeri Gösterim: D [ 3 ] = 2 ; int x = D [ 0 ] ; 6

Bir boyutlu diziler ; 0 D -> dizi adı 3 D[0] = 3 ; 1 2 5 9 D[1] = 5 ; D[2] = 9 ; D [ indis] 3 2 D[3] =2 ; Dizi değişkeni Dizi indisi Dizi indisi Dizi değeri 7

Bir boyutlu dizilerin tanımlanması : int [ ] D = new int [ 5 ] ; Dizideki elamanların tipi Dizi değişkeni Dizinin eleman sayısı 0 1 2 3 4 5 5 hücre (eleman) her biri int türünden sayılar konabilecek 8

Bir boyutlu dizilerin tanımlanması : int [ ] d = new int [ 5] ; // 5 elemanlı dizi oluşur int [ ] d =, 2, 5, 6, 8 - ; // 4 elemanlı dizi oluşur d 0 1 2 3 2 5 6 8 boolean [ ] b = new boolean [ 4] ; b 0 1 2 3 true false false true String * + d =, Kırmızı, Turuncu, Yeşil - ; d 0 1 2 Kırmızı Turuncu Yeşil 9

Bir boyutlu dizilerin tanımlanması : c 0 1 2 3 B A C A char * + c =, B, A, C, A - ; for (int i=0; i<c.length; i++) System.out.println( c[i]); // Diziden tümünü yazdırma for (int x : c ) System.out.println( x ); 10

static void Main(string[] args) int [ ] D = new int [ 3 ]; D[ 0 ] = 9 ; D[ 1 ] = 4 ; D[ 2 ] = 7 ; for( int x : D ) System.out.print( x ); for( int i = 0 ; i < D.Length ; i++ ) System.out.print( D [ i ] ); D[0] D[1] D[2] 0 1 2 9 4 7 D.Length : dizinin eleman sayısını bulur. Örnekteki dizi için 3 değerini verecektir. 3 11

static void Main(string[] args) String [ ] D = new String [ 2 ]; D[ 0 ] = Ali Can"; D[ 1 ] = Elif Kara"; DİZİLER (ARRAYS) for ( String s : D) System.out.print( s ); 12

İKİ BOYUTLU DİZİLER 0 1 2 0 1 2 0 [0,2] 1 [1,1] 2 0 1 2 İki Boyutlu Dolap 13

İKİ boyutlu diziler. Matris de denir. Örn. Satır x Sütun ( 4x4) matris ; D * satır + *sütun+ Dizi değişkeni 0 D 0 1 2 Sütun indisi 1 2 3 4 2 D[1][2] = 4 ; D[3][2] = D[1][ 2] - 2 ; Satır indisi Dizi değeri [3][0+ daki değer 14

Bir boyutlu dizilerin tanımlanması : int [ ][ ] D = new int [ satir sayısı + *sütun sayısı ] ; Dizideki elamanların tipi Dizi değişkeni Dizinin Satır ve sütun sayısı D 0 1 2 3 0 int [ ][ ] D = new int [3] [4] ; //3 satır 4 sütun 1 2 15

İKİ boyutlu dizilerin tanımı ; int [ ] [ ] d = ; 2, 5, 6, 8, 7, 4 0 1 2 0 2 5 6 1 8 7 4 String [ ][ ] d = A+, Pekiyi, A, İyi, A-, Orta, F, Zayıf ; 0 1 0 A+ Pekiyi 1 A İyi 2 A- Orta 3 F Zayıf 16

Örn : 2X3 lük matrise başlangıçta aşağıdaki gibi değerler yerleştirilmiştir. Daha sonra dizinin bazı elemanları toplanmıştır. D 0 1 2 0 2 5 6 1 8 7 4 int [ ][ ] D = ; 2, 5, 6, 8, 7, 4 int y = D [0][1] + D [1][2] + D [0][0] + D [1][1] ; // 5 + 4 + 2 + 7 System.out.print ( Toplam : + y ); 17

Örn : 4x4 lük matrise 1 ile 10 arasında rastegele sayılar yerleştirildikten sonra birinci ve ikinci köşegendeki sayılar toplamını bulalım. D 0 1 2 3 0 1 2 3 2. köşegen D [0][3], D [1][2], D [2][1], D [3][0] 1. köşegen D [0][0], D [1][1], D [2][2], D [3][3] 18

Örn : 4x4 lük matristeki (1. KÖŞEGEN TOPLAMI) int [ ][ ] D = new int [4][ 4 ] ; Random R= new Random(); for ( int sat=0 ; sat < D.length; sat++ ) for ( int sut=0 ; sut < D[sat].length; sut++ ) D[ sat][ sut] = R.nextInt(10); int kosegen = 0 ; for ( int sat=0 ; sat < D.length; sat ++ ) kosegen += D [sat ][ sat] ; D 0 1 2 3 0 1 2 3 1. köşegen D [0,0], D [1,1], D [2,2], D [3,3] System.out.print ( 1. Köşegen Toplamı: + kosegen ); 19

- DİZİLER (ARRAYS) Örn : 4x4 lük matristeki ( 2. KÖŞEGEN TOPLAMI) int [ ][ ] D = new int [4 ][ 4 ] ; Random R = new Random(); for ( int sat=0 ; sat < D.length; sat++ ) for ( int sut=0 ; sut < D[sat].length ; sut++ ) D[ sat][ sut] = R.nextInt (10); D 0 1 2 3 0 1 2 3 int kosegen2 = 0; int x= D[0].length -1 ; // sütun indexi için for ( int sat=0 ; sat < D.length; sat ++ ) kosegen2 += D [sat ][ x-sat] ; 2. köşegen D [0,3], D [1,2], D [2,1], D [3,0] System.out.print ( 2. Köşegen Toplamı: + kosegen2 ); 20

RAGGED (girintili) DİZİLER 21

Ragged Diziler : Bu tip diziler iki boyutlu dizilere benzerler ancak her satırdaki sütun sayısı farklı olabilmektedir. x 0 1 2 3 4 5 0 1 2 3 4 22

Ragged Diziler : Dizinin her bir satırı farklı sütun değerlerine sahiptir. 23

Ragged Diziler : Bu tip diziler iki boyutlu dizilere benzerler ancak her satırdaki sütun sayısı farklı olabilmektedir. Yukarıdaki şekil şu şekilde tanımlanır : int [][] x = new int [3] [ ] ; x [0] = new int [4] ; x [1] = new int [2] ; x [2] = new int [3] ; x 0 1 2 3 0 1 2 24

Ragged Diziler : Bu tip diziler iki boyutlu dizilere benzerler ancak her satırdaki sütun sayısı farklı olabilmektedir. Yukarıdaki şekil şu şekilde tanımlanır : int [][] x = new int [3] [ ] ; x [0] = new int []6, 58 ; x [1] = new int []34, 45, 8 ; x [2] = new int []4 ; x 0 1 2 0 6 58 1 34 45 8 2 4 25

Ragged Diziler 26

27

ÇEŞİTLİ ÖRNEKLER 28

Örnek : Dizilerin sıralanması import java.util.arrays; // ekleyiniz public class ORNEK public static void main(string[] args) int[ ] d = 4, 3, 8, 0, 5 ; for(int x : d ) System.out.print (" " + x ); Arrays.sort(d); // sırala System.out.print("Sıralandıktan sonraki hali"); for(int x : d ) System.out.print(" " + x ); 29

Örnek : 10 elemanlı bir tamsayı dizisine 1 ile 100 arasında rastgele sayılar yerleştirildikten sonra bu sayılardan en büyüğünü bulup yazdıran programı yazınız. int [ ] m = new int [10]; Random r = new Random(); for ( int k = 0 ; k<10 ; k++ ) m [ k] = r.nextint(100) ; int eb= m[0]; for ( int k = 1 ; k<10 ; k++ ) if ( d[k] > eb ) eb = d [k]; System.out.print( En büyük değer : + eb ) ; 30

Örnek: 1 ile 7 arası rastgele üretilmiş 20 adet sayı, her satırda 5 eleman olacak şekilde ekrandan yazdıran program ı yazınız. Random r= new Random(); String s = ""; for ( int c = 1; c <= 20; c++ ) int n = r.nextint( 7 ); // 1-6 arasında s += n + " " ; if ( c % 5 == 0 ) s+= "\n"; System.out.print(s); 31

Örnek : LOTO 6-49 tahmini yapacak programı yazınız. (Çözüm-1) int[] x = new int[6]; Random r = new Random(); for (int i = 0; i < x.length; i++) int sayi = r.nextint(50); if (Arrays.asList(x).indexOf(sayi)==-1) x[i]=sayi; for (int i=0; i<x.length; i++) System.out.printf("%3d", x[i]); 32

Örnek : LOTO 6-49 tahmini yapacak programı yazınız. (Çözüm-2) public static void main (string [] args) int[] x = new int[6]; Random r = new Random(); for (int i = 0; i < x.length; i++) int sayi = r.nextint(50); if (getindexof(sayi, x) == -1) x[ i] = sayi; for (int i = 0; i < x.length; i++) System.out.printf("%3d", x[i]); public static int getindexof(int tosearch, int[] d) for (int i = 0; i < d.length; i++) if (d[ i] == tosearch) return i; return -1; 33

Örnek : loto 6-49 tahmini yapacak programı yazınız. (Çözüm-3) int[] m = new int[6]; Random r = new Random(); boolean varmi = false; for (int k = 0; k < m.length;) varmi = false; int sayi = r.nextint(50); // [1-49] arası rastgele say üretir for (int i = 0; i < m.length; i++) if (sayi == m[ i]) varmi = true; break; if (!varmi) m[ k] = sayi; k++; for (int x : m) System.out.printf(" " + x); 34

Örnek : Klavyeden girilen string bilginin harf frekansını bulup ekrandan yazdıran programı yazınız? static void Main(string[] args) Scanner oku = new Scanner(System.in); int[] d = new int[26]; String s = oku.next(); for (int i = 0; i < s.length(); i++) int pos = (int) (s.charat(i)); // ASCII sırası if (pos > 96) d[pos - 97]++; // a z ise else d[pos - 65]++; // A-Z ise for (int i = 0; i < d.length; i++) if (d[i]!= 0) System.out.printf("%c -> %d\n", (char) (i + 65), d[i]); 35

Soru -1 : Permütasyon dizi; dizi içerisine rastgele dizi indisini yerleştirme. Dizi içinde dizi indisleri rastgele yerleştirilecek. Aynı değer tekrarlanmayacak. 0 1 2 3 4 3 4 0 1 2 Soru -2 : Rastgele üretilmiş 10 sayıdan asal olanlarını bulup yazdıracak programı yazınız. 36

Örnek: Permütasyon dizi ( indisi içerisinde rastgele yerleşmiş dizi). static void Main(string[] args) int[] x = new int[9]; Random r = new Random(); for (int i = 0; i < x.length; ) boolean yok = true; int sayi = r.nextint(10) ; for (int k = 0; k < x.length; k++) if (sayi == x[k]) yok = false; break; if (yok) x[i] = sayi; i++; for (int i : x) System.out.print(i); 37

Örnek: Klavyeden girilen sayıya kadar olan Asal Sayılar static void Main ( string [] args ) int x, y, say =0; boolean b; String s=" 1"; Scanner oku= new Scanner (System.in); int n = oku.nextint(); for (x=2 ; x<=n ; x++) b = true; for (y=2; y<x; y++) if ( (x%y)==0 ) b=false; if( b ) say++; if ((say%6)==0) s += "\n"; s+="\t" + String.valueOf(x); System.out.print ( s ); 38

Örnek: Yandakine benzer bir çıktı verecek bir fonksiyon yazınız? static void yazdir() int[] n = 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 ; String s = ""; s += "Elaman\tDeğeri\tŞekili"; for ( int i = 0; i < n.length; i++ ) s += "\n" + i + "\t" + n[ i ] + "\t"; for ( int j = 1; j <= n[ i ]; j++ ) s += "*"; System.out.print(s); 39

Ragged Diziler DİZİLER (ARRAYS) String s =""; Random r = new Random(); int [][] x = new int [4] [] ; x [0] = new int [6]; // 0. satır 6 sütun x [1] = new int [3]; // 1. satır 3 sütun x [2] = new int [2]; // 2. satır 2 sütun x [3] = new int [5]; // 3. satır 5 sütun for(int i=0; i<x.length; i++ ) for(int k=0; k<x[i].length; k++) x[i][k] = r.nextint(10); s += x[i][k] + " "; s += "\n"; System.out.print( s ); 40