Nesne Tabanlı Programlama

Benzer belgeler
Nesne Tabanlı Programlama

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesne Tabanlı Programlama

Programlama Dilleri 3

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

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

YZM 2105 Nesneye Yönelik Programlama

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİL-142 Bilgisayar Programlama II

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

Akış Kontrol Mekanizmaları

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

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

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

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

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

ALGORİTMA VE PROGRAMLAMA I

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Internet Programming II

Programlama Dilleri 3

Nesne Yönelimli Programlama

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

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

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

Akış Konrol Mekanizmaları

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

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

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

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

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

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

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

Lambda İfadeleri (Lambda Expressions)

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

Bölüm 4 C de Program Kontrolü

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

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

Özyineleme (Recursion)

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Diziler İndisli Değişkenler

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

M.ilkucar MAKU MYO 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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

PROGRAMLAMA DİLLERİ I

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Java da Program Denetimi ve Operatörler

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

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

static void dizi_24() { Random rnd = new Random(); int [] tutulan=new int[10]; int dogru;

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

JAVADA DİZİ İŞLEMLERİ

/*int sayi1, sayi2,toplam=0;

HSancak Nesne Tabanlı Programlama I Ders Notları

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Program AkıĢ Kontrol Yapıları

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

Nesne Tabanlı Programlama

C Dersleri Bölüm 3 : Program akışı

Program Akış Kontrol Yapıları

MAT213 Bilgisayar Programlama I

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

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

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

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

Öğr. Gör. Serkan AKSU 1

Programlama Dilleri 1. Ders 4: Diziler

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

BİL1001 Bilgisayar Bilimlerine Giriş 1

Sınav tarihi : Süre : 60 dak.

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

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

1. LabVIEW ile Programlama

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

Python Programlama Dili

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

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Veritabanı. SQL (Structured Query Language)

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Sunum İçeriği. Programlamaya Giriş

Görsel Programlama 1

Transkript:

Nesne Tabanlı Programlama Ders Notu - 2 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Mantıksal Operatörler ve Denetim Yapıları 1

Boolean Boolean, doğru ya da yanlış sonuçlarını alabilen bir değişken türüdür. Durumları belirlemek için kullanılır. Özellikle, duruma göre kod çalıştırma ve döngülerde kullanılır. mantıksal ifadeler doğru veya yanlış değerini alan mantıksal "formüllerdir". bool anahtar kelimesi ile tanımlanır. bool bval = true; Örnek 2

Boolean İşleçler Boolean ifadeler kurmak için kullanılır. Diğer isimleri de mantıksal işleçlerdir. Ve && Veya Değil! Eşitlik == Eşitsizlik!= Karşılaştırma <, >, <=, >= Ve (&&) Bütün değerlerin, true olmasını gerektirir. true && true = true false && true = false true && false = false false && false = false 3

Veya ( ) En az bir değerin, true olmasını gerektirir. true true = true false true = true true false = true false false = false Değil (!) Değeri tersine çevirir.!true = false! false = true 4

Eşitlik (==) Her iki tarafın değeri, birbirine eşitse doğru değerini döndürür. 1 == 2 1 == 0 42 == 42 degisken1 == digeri Eşitsizlik Her iki tarafın değeri, birbirinden farklıysa doğru değerini döndürür. 1!= 2 1!= 0 42!= 42 a!= degisken 5

Karşılaştırma (>,<,>=,<=) Eşitsizliğin tutması durumunda doğru döndürür. 1 < 2 0 > 1 42 <= 42 yas >= 18 İşleç Önceliği En Yüksek Parantezler Değil (!) Karşılaştırma (<, >, <=, >=) Eşitlik (==) Eşitsizlik (!=) Ve (&&) Veya ( ) En Düşük 6

Örnek Yaygın Hatalar Mantıksal işlemlerde en önemli hatalardan biri, öncelik sıralarına dikkat edilmeden mantıksal ifadelerin yazılmasıdır. Diğer bir sıkıntı, = = (eşittir eşittir ) yazılması yerine tek bir eşittir yazılmadır. 7

Denetim Yapıları if else Seçme yapısı, mantıksal ifadelerin sonucuna göre alternatif komutların çalışmasını sağlar. Mantıksal ifadeler doğru veya yanlış döndürür. İfade doğru değeri döndürdüğünde, if bölümü içindeki komutlar çalışırken, yanlışken else bölümü çalışır. 8

if else Basit if yapısına, tekli seçme yapısı adı verilir, çünkü, doğru değer geldiğinde seçilen komutu çalıştırır ya da göz önüne almaz. if ve else'den oluşan yapıya, çiftli seçme yapısı adı verilir, çünkü, iki farklı duruma göre iki değişik komut grubunu çalıştırır. İç içe geçmiş if/else yapısı, birden fazla durumu kontrol eder. Tekli Seçim Yapısı Tekli seçme yapısının formu şöyledir: veya if ( ifade ) { komutlar; if ( ifade ) komut; 9

Örnek if else if else if genellikle şöyle yazılır: if ( ifade ) deyim; if else yapısı da söyle yazılabilir: if ( ifade ) deyim1; else deyim2; noktalı virgül gelmeyecek!!!! noktalı virgül gelmeyecek!!!! noktalı virgül gelmeyecek!!!! 10

if else if else if yapısının genel formu şöyledir: if ( mantıksal ifade doğruysa ) deyim ; else if (mantıksal ifade doğruysa) deyim ; else deyim ; Çoklu if else if else Birden fazla else if yapısı, tek satırlık komutlar olduğunda şöyle kurulabilir: if ( bu mantıksal ifade doğruysa ) deyim ; else if (bu mantıksal ifade doğruysa ) deyim ; else if (bu mantıksal ifade doğruysa ) deyim ; else deyim ; 11

Bloklu if else if else if ( bu mantıksal ifade doğruysa ) { bu bloktaki komutları çalıştır; else if (bu mantıksal ifade doğruysa ) { bu bloktaki komutları çalıştır; else { bu bloktaki komutları çalıştır; Örnek: Sayı Karşılaştırma 12

Sınıf Çalışması Meteoroloji Müdürlüğü, hava durumu raporlarının daha anlaşılabilir olması için, nem oranı değerlerinin insanların anlayabileceği hale getirmek için bir program istemektedir. Kullanıcın girdiği 0 ve 100 arasındaki tamsayı nem oranı değerleri için ekrana şunları yazacaktır. %20 veya aşağısı "Çok Kuru" %21 - %40: "Kuru" %41 - %60: "Biraz Kuru" %61 - %80: "Biraz Nemli" %81 veya fazla: "Nemli Kullanıcıya nem derecesi soran ve if/else yapısı içeren programı yazınız. Birleşik if deyimleri C# derleyicisi else deyimini en yakın if deyimiyle eşler. Bu nedenle, program mantığını doğru kurmak ve { parantezlerini kullanmak daha doğru olur. if (nem < 20) if (sicaklik <= 0) Console.WriteLine("Soğuk ve kuru bir gün.") if (ruzgar < 10) Console.WriteLine("Ne güzel, rüzgar yok"); else Console.WriteLine("nem düşük ve 0 dereceden yüksek"); else if (nem < 60) if (sicaklik <= 0) Console.WriteLine("soguk ve orta nemli."); else Console.WriteLine("0'dan büyük, orta nem oranı.");? 13

Birleşik if Deyimleri if (nem < 20) { if (sicaklik <= 0) { Console.WriteLine("Soğuk ve kuru bir gün.") if (ruzgar < 10) { Console.WriteLine("Ne güzel ki rüzgar yok"); else { Console.WriteLine("nem düşük ve 0 dan yüksek"); else if (nem < 60) { if (sicaklik <= 0) { Console.WriteLine("soguk ve orta nemli."); else Console.WriteLine("0'dan büyük, orta nem oranı."); switch case yapısı Çok durumlu seçme yapısı 14

switch - case Bir algoritmada bir dizi işlem, bir değişkenin farklı değerlerine göre yapılacaksa, çoklu seçme yapısı kullanışlıdır. Algoritmada, değişkenin alabileceği her farklı değer için farklı komut dizileri çalıştırılabilir. C# dili, switch-case yapısı adı altında böyle bir yapı sunar. Yazım switch (sınama değeri ) { case sabit_değer1 : işlemler ; break; case sabit_değer2 : işlemler ; break; case sabit_değer3 : işlemler ; break; default : işlemler ; break; 15

switch - case switch kelimesi, yapının başlangıcını belirler. switch bölümünden sonra bir değişken yazılmalıdır. Değişkenin tipi karakter veya numerik olabilir. case bölümünde, sabit değerler olmalıdır. Burada ifade bulunmaz. case bölümleri break ifadesi ile bitirilmelidir. case'den sonra { işaretlerine gerek yoktur. Sınıf Alıştırması Ekrandan, öğrencinin aldığı harf notunu (tek harf) okuyan bir program yazınız. Eğer A: "Çok güzel" B: "Güzel" C: "Fena Değil" D: "İyi değil" F: "Çok kötü" 16

Alıştırma Meteoroloji Müdürlüğü, hava durumu raporlarının daha anlaşılabilir olması için, nem oranı değerlerinin insanların anlayabileceği hale getirmek için bir program istemektedir. Kullanıcın girdiği 0 ve 100 arasındaki tamsayı nem oranı değerleri için ekrana şunları yazacaktır. %20 veya aşağısı "Çok Kuru" %21 - %40: "Kuru" %41 - %60: "Biraz Kuru" %61 - %80: "Biraz Nemli" %81 veya fazla: "Nemli Kullanıcıya nem derecesi soran ve switch / case yapısı içeren programı yazınız. 17

Switch Case Hakkında Notlar switch parantezleri içinde double,decimal tipinde değişken kullanılmaz. case etiketinden sonra istenen sayıda deyim satırı bulunabilir. Her zaman default: bölümünü kullanmanız program yazarken hataları bulabilmenizi sağlar. En çok rastlanan hata break; deyiminin unutulmasıdır. Switch yapısı kurulduktan sonra break'lerin doğru yerlerde olup olmadığını kontrol ediniz. Döngüler while, do-while, for döngüleri 18

Tekrar Yapıları Tekrar yapıları, kod bloklarının tekrar işletilmesini sağlar. Tekrar yapısı içindeki kod bloğunun tekrar edilip edilmeyeceği mantıksal bir ifadenin sonucuna göre karar verilir. Eğer yanlışsa, kod bloğu tekrar edilmez. Kodun belirli bir sayıda tekrar edilmesini sağlayan for döngüsü gibi, belirsiz sayıda tekrar edilmesini sağlayan while veya do-while döngüleri de bulunur. Tekrar Yapıları for ve while döngüleri, mantıksal ifadenin en başta sınandığı yapılardır. Mantıksal ifade doğruysa, döngüye girilir yoksa döngüden çıkılır. do-while döngüsü, tekrar bloğunun en sonunda sınamanın yapıldığı yapılardır. Kod bloğunu bir kez işletir ve bir kez daha tekrarlanabileceği konusunda mantıksal ifadenin sonucuna bakılır. 19

while döngüsü Kullanımı iki türlüdür: while ( mantıksal ifade doğru ) ifade ; while (mantıksal ifade doğru) { ifade ; ifade ; Örnek 20

do-while döngüsü do statement; while ( mantıksal ifade doğru ); do { ifade ; ifade ; while ( mantıksal ifade doğru) ; Örnek 21

for Döngüsü for( başlatma deyimleri;mantıksal deyim;düzeltmeler) { deyim; başlatma deyimleri döngü başlamadan önce çalışan komutlardır. Birden fazla sayıda olabilir. Bu durumda, her deyim arasına "," (virgül) konulur. düzeltmeler, döngünün sonunda çalıştırılan işlemlerdir. Birden fazla olabilir ve aralarına "," (virgül) konulur. İşletim sırası soldan sağadır. Döngünün sonunda düzeltmeler yapıldıktan sonra, mantıksal deyim true değerini verirse, döngüye devam edilir. Yoksa döngüden çıkılır. for Döngüsü for (deyim1 ; deyim2 ; deyim3) { ifadeler ; deyim1, for döngüsünün en başındaki ilk durumu belirler. Matematiksel bir işlem olabildiği gibi birbirinden virgüllerle ayrılmış pek çok işlem de olabilir. Döngü işletilmeden önce bir kez çalıştırılır. 22

for Döngüsü for (deyim1 ; deyim2 ; deyim3) { ifadeler ; deyim2, doğru yada yanlış değerini döndüren mantıksal bir işlemdir. deyim1 içinde değişen değişkenlerden biri olmasına gerek yoktur. for Döngüsü for (deyim1 ; deyim2 ; deyim3) { ifadeler ; deyim3, durumdaki değişikliği sağlayan işlemdir. Birden fazla işlem birbirinden virgülle ayrılabilir. deyim1 ve deyim2'de kullanılan değişkenlerle ilgisi olmayabilir. 23

Örnekler for (int sayac = 1 ; sayac <= 10; sayac++) { Console.WriteLine(sayac.ToString()); Örnekler int sayac = 1; for ( ; sayac <= 10; ) { Console.WriteLine(sayac.ToString()); sayac++; int sayac = 1; for ( ; ; ) { Console.WriteLine(sayac.ToString()); sayac++; if (sayac >10) break; 24

Notlar for yapısı içindeki deyim1, deyim2, ve deyim3 boş bırakılabilir. Ama noktalı virgüllerin tutulması gereklidir. deyim1'in ve deyim3'ün yazılmaması for döngüsünün while döngüsü olarak davranmasını sağlar. deyim2'yi yazmadan, döngünün ne zaman biteceği bulunamaz. Bu durumda, break komutuyla döngünün dışına çıkılabilir. Döngüde deyim1 ve deyim3 birden fazla ifade içerebilir. Bunlar kullanılarak program basitleştirilebilir. for while deyim1 ; while ( deyim2 ) { ifadeler ; deyim3 ; for ( deyim1 ; deyim2; deyim3 ) { ifadeler ; Her iki örnek de birbirinin aynısı şekilde çalışır. 25

Örnek int sayac ; for(sayac = 0 ; sayac <= 10 ; sayac++) { Console.WriteLine( Sayaç değeri: +sayac.tostring()); int sayac ; sayac = 1 ; while ( sayac <= 10 ) { Console.WriteLine( Sayaç değeri: +sayac.tostring()); sayac++ ; Örnek static void main ( ) { int k, n ; for( k = 1, n = 12 ; k<9 && n>6 ; k++, n--) { Console.WriteLine ("k= + k + n= + n) ; Birbirinden virgülle ayrılmış ifadeler, her bölümde yer alabilir. Birbirinden virgülle ayrılmış ifadeler, her bölümde yer alabilir. 26

Alıştırma 0'dan 100'e kadar rassal sayı tutan ve bu sayıyı kullanıcının tahmin edeceği bir program yazınız. Kullanıcı, bir sayı girdikten sonra, bu sayının, tutulan sayıdan küçük yada büyük olduğunu söyleyecektir. Eğer girilen ve tutulan sayı eşitse, program tebrikler diyerek döngüden çıkacaktır. Algoritma tutulan = 0 ve 100 arası rassal bir sayı tut while(true) { yaz "Tahmininizi, yazınız" oku tahmin if (tahmin eşittir tutulan) döngüden çık else if(tahmin küçüktür tutulan) yaz "küçük" else yaz "büyük" 27

Çözüm Döngüden Çıkış break anahtar kelimesi döngü yapısından çıkış için kullanılabilir. break iç taraftaki döngüden çıkış için kullanılabilir. continue, bulunulan yerden döngünün sonuna gitmek için kullanılır. Her iki anahtar kelime, algoritmaların uygulanmasında çokça kullanılır. 28

break: döngüden çıkış Aşağıdaki programda, x'in değeri 5 olduğunda döngüden çıkılmaktadır. int x = 0; for( ; ; ) { /* sonsuz döngü */ if(x == 5) break; Console.WriteLine(x.ToString()); x++; continue: döngüye devam Aşağıdaki program, 5 dışında 0'dan 9'a kadar olan bütün sayıları yazmaktadır. int x; for( x = 0; x < 10 ; x++) { if(x == 5) continue; Console.WriteLine( X = + x); 29

continue for( x = 0; x < 10 ; x++) { if(x == 5) continue; Console.WriteLine(x.ToString()); for( x = 0; x < 10 ; x++) { Her iki program da aynı şekilde çalışmaktadır. if(x!= 5) { Console.WriteLine(x.ToString()); Örnek: İç İçe For Döngüleri 30

Diziler Diziler Aynı tipten bir grup verinin aynı değişken isminde bulunmasıdır. Grup içerisindeki verilerin hafızada sıralı olarak bulunduğu farz edilir. C# dilinde dilinde bütün diziler System.Array tipindedir. Yani System.Array sınıfının bütün fonksiyonlarını kullanabilirler. 31

Diziler Bir örnek olarak, haftanın günlerini bir boyutlu dizi olarak düşünebiliriz. İlk eleman, Pazartesi, son eleman da Pazar günü olacaktır. Diğer bir örnek olarak, bir ayda bulunan günleri, iki boyutlu bir dizi olarak düşünebiliriz. Yatayda haftanın günleri bulunurken, düşeyde hafta sayısı vardır. Bir yıldaki günleri de üç boyutlu bir dizi olarak düşünebiliriz. Haftanın günleri, ilk boyutu oluştururken, ikinci boyut haftaların numarasıdır. Üçüncü boyut da aylardır. Diziler Tek boyutlu bir dizi, bir değişken ismi ve tip ve köşeli parantez içinde boyutu olarak tanımlanabilir. Örneğin, int[] gun = new int[ 7 ]; gun isminde yedi elemanlı bir boyutlu dizi tanımlar. Dizini tipi int olduğu için elemanları başlangıçta sıfır değerini alacaklardır. 32

Dizinin Kullanımı Dizi tanımlanınca, dizideki elemanlara dizinin ismi ve köşeli parantez içinde eleman numarasıyla erişilir. Örn. dizi_adi[index] C# dilinde, dizideki ilk eleman 0'ıncı (sıfırıncı) sıradaki elemandır. Örneğin, gun dizisinin en az 0 ve en fazla 6'ıncı elemanlarına erişilebilir. Köşeli parantez içindeki sayılara indeks numarası adı verilir. İndeks Numarası İnt[] gun = new int[7]; gun[0] gun[1] gun[2] gun[3] gun[4] gun[5] gun[6] 2 6 6 4 12 54-10 Örnekler: gun[5] = 1; if( gun[5] == 4 ) break; gun[5] = gun[6] - 1; 33

Örnek for döngüsü içinde i değişkeninin değeri 0'dan 6'ya kadar gider Dizilere İlk Değer Atama Değişkenler tanımlanırken, ilk değerlerinin verildiğinden bahsetmiştik. Benzer şekilde, dizilere de tanımlandıkları anda değer atanabilir. static void Main(string[] args) { int[] gun = { 0,2,4,6,8,10,11 ;... 34

Dizilere İlk Değer Atama static void Main(string[] args) { int[] gun = { 0,2,4,6,8,10,11 ; Derleyici, buradaki sayıları sayar ve [] içindeki değerin 7 olması gerektiğini bulur ve programı int[] gun = new int[7] olarak derler. Dizilere İlk Değer Atama Eğer, tanımladığımız dizinin elemanlarına başlangıç değeri yüklemiyorsak, o zaman dizinin elemanları tiplerine göre başlangıç değerleri alırlar. Örneğin sayısal ifadeler sıfır değerini alırken, string ve diğer sınıf tipleri null eğeri alırlar. Uyarı : string tipindeki bir değişkeninin null değeri içermesinin boş satır anlamına gelmediğini unutmayınız. null ifadesi değişkenin için hafızada henüz herhangi bir yer ayrılmadığını ve bu sebeple bir işlem içerisinde değer olarak kullanılamayacağı anlamına gelir. 35

Örnek 10 tane double tipinde değer alabilen bir dizi tanımlayın ve içine 1.0 ile 10.0 arasında değerler koyun. Ve 9. ve 0. elemanların değerlerini birbiriyle değiştirin. static void Main(string[] args) { double[] dizi = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0; double gecici; gecici = dizi[9]; dizi[9] = dizi[0]; dizi[0] = gecici; Alıştırma 100 tane sayıyı rastsal olarak üreterek bir diziye koyan bir programı yazınız. Programınız, bu dizi içindeki değerlerin en yüksek ve en düşük değerlerini bularak ekrana yazacaktır. Ayrıca, ortalama değerini de hesaplayarak ekranda gösterecektir. 36

Alıştırma - Çözüm Program en küçük ve en büyük değerleri bulmaktadır. Ortalama bulmayı programa ekleyiniz. Array.Length() Dizinin uzunluğunu bulmak için kullanılır. Doğrudan dizini adından sonra nokta. işaretinden sonra çağrılır. int[] myarray = new int[5]; int len = myarray.length(); Console.WriteLine(len); Output : 5 37

foreach Dizi içerisindeki her bir eleman için tek tek ilerleyen döngüdür. for döngüsüne benzemektedir. foreach foreach ve for döngüleri birbirlerine dönüştürülebilir. 38

Çok Boyutlu Diziler Birden fazla boyutu olan dizilere çok boyutlu diziler denir. Örneğin iki boyutlu bir dizi satranç tahtasını modellemekte kullanılabilir. İki tip çok boyutlu dizi vardır. Standart diziler Çentikli diziler Standart Çok Boyutlu Diziler Çok boyutlu dizilerin oluşturulması tek boyutlu dizilere benzer ve onlar kadar kolaydır. Fark köşeli parantezler arasında virgül bulunmasıdır. int [,] sayılar; string [,,] satırlar; Örneğin ikiye üç boyutunda ve string tipinde bir dizi oluşturmak için string[,] dizi = new string[2,3]; yazmak yeterlidir. 39

Standart Çok Boyutlu Diziler Standart dizilerde her bir boyut için satır ve sütun sayıları eşit olur. Bu sebeple standart diziler matrislere benzetilebilir. dizi 1 2 3 9 20 5 2 4 0 6 7 0 4 2 11 Standart Çok Boyutlu Diziler İki boyutlu bir dizi oluşturup bir döngü içersinde dizinin elemanlarına değerler atayalım. 40

Dizi İşlemleri Dizide arama, sıralama Dizi İşlemleri Dizi işlemleri, programlarda çok sık kullanılan programlama öğelerindendir. IndexOf() LastIndexOf() Sort() Reverse() Array sınıfı yardımıyla kullanılırlar. 41

IndexOf() - LastIndexOf() IndexOf() : Aramayı baştan başlatarak aranan elemanın kaçıncı sırada olduğunu döndürür. LastIndexOf() : Aramayı sondan başlatarak aranan elemanın kaçıncı sırada olduğunu döndürür. Eğer aranan eleman bulunamazsa -1 döndürür. Array.IndexOf(), Array.LastIndexOf() Sonuç : 1 Sonuç : 4 42

Array.Sort() Dizinin elemanlarını küçükten büyüğe sıralar. Sonuç : Ali Mehmet Pınar Zeynep Array.Reverse() Dizinin eleman sırasını terse çevirir. Sonuç : 45 32 9 5 3 2 1 Not : Array.Sort ve Array.Reverse birlikte kullanılmak zorunda değildir. 43

Sorun İhtiyacımız olan dizinin boyutunu daha önceden bilmiyorsak ne yapacağız? Ya dizi dinamik olarak genişliyorsa? Derlemler (Collections) Dizinin boyutu daha önceden bilinmiyorsa kullanılır. Veya dizi dinamik olarak büyüyüp küçülüyorsa kullanılır. Tek boyutludur. 44

ArrayList Temel derlem tiplerinden birisidir. System.Collections alan adı altında bulunur. Başlangıç boyutu 16 dır ve her büyümede 2 katına çıkar. Verileri object tipinde tutar. ArrayList Yeni bir ArrayList oluşturmak: ArrayList list = new ArrayList(); Örnek 45

ArrayList Önemli fonksiyonlar ve özellikler Add Capacity Clear Count IndexOf Insert RemoveAt Reverse Sort TrimToSize Alıştırma Personel adlarını tutacak bir ArrayList tanımlayınız. Listeye Ahmet, Mehmet, Pınar, Yeşim, Utku, Sinan, Fatma, Ayşe isimlerini ekleyiniz. Listeyi ve boyutunu ekrana yazdırınız. Listeden adı A karakteriyle başlayanları siliniz Listeyi harf sırasına göre tersten sıralayınız. Listeyi ve boyutunu ekrana yazdırınız. 46

Kod 47