yzm 2105 nesneye yönelik programlama · c# programlama dili elemanları 2 bu bölümde; veri...

61
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1

Upload: others

Post on 03-Feb-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

YZM 2105

Nesneye Yönelik Programlama

Yrd. Doç. Dr. Deniz KILINÇ

Celal Bayar Üniversitesi

Hasan Ferdi Turgutlu Teknoloji Fakültesi

Yazılım Mühendisliği

1

Page 2: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

BÖLÜM - 2

C# Programlama Dili Elemanları

2

Bu bölümde;

Veri tipleri

Değişkenler ve Sabitler

Tip Dönüşümleri

Operatörler

Akış Kontrol Mekanizmaları ve Döngüler

Diziler

Yapılar (Struct)

ile ilgili konular anlatılacaktır.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 3: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Sabitler

Sabitler, içeriği sabit olan değer ve ifadelerin saklanması

için kullanılan değişken türleridir.

3

• Başlangıçta sabit değişkene bir değer vererek,

ihtiyaç duyulduğunda bu değişkeni

kullanabiliriz.

• Değerini sonradan değiştirmek istediğimizde

derleyici, derleme zamanı hatası verir.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 4: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Sabitler

• Sabit değişkenlerinin tanımlandığı satırda değer

verilmek zorundadır.

• C# programlama dilinde const anahtar sözcüğü

kullanılarak tanımlanır.

4Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 5: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Program içerisinde üretilen değerleri bellekte geçici

olarak saklamak için kullanılırlar.

• İlk değerlerinin atanması zorunlu değildir. Program

içerisinde de sonradan değer ataması yapılabilir.

• Aynı satırda aynı tipte birden fazla değişken

tanımlaması ve değer ataması yapılabilir.

• Global olarak tanımlanmayan değişkenler sadece

tanımlandıkları metot içerisinde kullanılabilirler.

• Değişkenlerin tipini öğrenmek için GetType()

metodu kullanılır.

5

Değişkenler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 6: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

[değişkenin tipi] [değişkenin adı] = [ilk değer] ;

int yarıcap = 12;

float alan;

int yukseklik = 2 , taban = 4 ;

string adSoyad ;

string ad = " Deniz", soyad = " Kılınç";

6

Değişkenlerin Tanımlanması

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 7: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

7

Değişken TürleriDeğişken Türü Boyutu CTS Değer Aralığı Örnek

byte 1 bayt System.Byte 0, ..., 255 (tam sayı) byte a=5;

sbyte 1 bayt System.Byte -128, ..., 127 (tam sayı) sbyte a=5;

short 2 bayt System.Int16 -32768, ..., 32767 (tam sayı) short a=5;

ushort 2 bayt System.UInt16 0, ..., 65535 (tam sayı) ushort a=5;

int 4 bayt System.Int32-2147483648, ..., 2147483647

(tam sayı)int a=5;

uint 4 bayt System.UInt32 0, ..., 4294967295 (tam sayı) uint a=5;

long 8 bayt System.Int64-9223372036854775808, ...,

9223372036854775807 (tam sayı)long a=5;

ulong 8 bayt System.UInt640, ..., 18446744073709551615

(tam sayı)ulong a=5;

float 4 bayt System.Single ±1.5*10-45, ..., ±3.4*1038 (reel sayı)float a=5F; veya float

a=5f;

double 8 bayt System.Double±5.0*10-324, ..., ±1.7*10308 (reel

sayı)

double a=5; veya double

a=5d; veya double a=5D;

decimal 16 bayt System.Decimal ±1.5*10-28, ..., ±7.9*1028 (reel sayı)decimal

a=5M; veya decimal a=5m;

bool 1 bayt System.Boolean True ya da False bool cevap = False;

char 1 bayt System.Char 16 Bit Unicode Karakter char harf = 'a';

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 8: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Değişken tanımlamaları istenirse programlama diline

ait değişken tipi tanımlamasıyla, istenirse .NET

uygulama geliştirme platformunun bir özelliği olan

CTS (Common Type System) tanımlaması ile

yapılabilir.

8

Değişken Türleri (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 9: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• .NET uygulama geliştirme platformunda

programlama dilleri arasındaki

standardizasyonu CTS dediğimiz sistem

sağlar.

• C#.NET ile program yazarken tamsayı

veri tipinde değişken tanımlamak için int

ifadesini kullanırız.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama 9

Common Type System

• VB.NET'te ise tamsayı veri tipi Integer olarak geçer.

• Her iki dil farklı olsa dahi CTS dediğimiz sistem sayesinde int ve

Integer tanımlamalar MSIL'e çevrilirken CTS sisteminde tanımlanan

System.Int32 olarak aradile çevrilecektir.

Page 10: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Değişken Tipi Dönüşümleri

10Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 11: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

a) Bilinçsiz (İmplicit) Tür Dönüşümü

b) Bilinçli (Explicit) Tür Dönüşümü (Type-casting)

c) Tostring() Metodu İle Tür Dönüşümü

d) Convert Sınıfı İle Tür Dönüşümü

11

Değişken Tipi Dönüşümleri

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 12: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Değişkenin tanımlandığı veri tipinden daha yüksek

kapasiteli bir veri tipindeki değişkene atanabilir. Bu

duruma Bilinçsiz (İmplicit) Tür Dönüşümü denir.

12

Bilinçsiz (İmplicit) Tür Dönüşümü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 13: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Bilinçli Tür Dönüşümü, derleyicinin izin vermediği

durumlarda kullanılır. Bir diğer adı type-casting olan

bu yöntemde veri kaybı yaşanabilir.

[Değişken] = [hedef tür] [değişken adı]

i = (int) a;

j = (char) b;

13

Bilinçli (Explicit) Tür Dönüşümü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 14: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

14

Bilinçli (Explicit) Tür Dönüşümü (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 15: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• ToString() metodu Bir değişken veya

sabitin değerini string veri tipine

dönüştürerek tutar.

• Kullanımı:

[değişken adı] . ToString();

15

ToString() Metodu İle Tür Dönüşümü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 16: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

16

ToString() Metodu İle Tür Dönüşümü (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 17: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• System isim alanının altındaki Convert sınıfı tür

dönüşümü yapılabilen metotları içeren bir

sınıftır.

• Bu metodlar ile hemen hemen her türü, her türe

CTS karşılıklarını kullanarak dönüştürülür.

[değişken] = Convert . [hedef tür] ( [değişken] );

17

Convert Sınıfı İle Tür Dönüşümü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 18: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

18

Convert Sınıfı İle Tür Dönüşümü (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 19: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

19

Convert Sınıfı İle Tür Dönüşümü (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 20: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Operatörler

20Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 21: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Programlama dillerinde tek başlarına herhangi bir

anlamı olmayan ancak programın işleyişine katkıda

bulunan karakter ya da karakter topluluklarına

operatör denir. Örneğin a+b ifadesinde + işareti bir

operatördür.

• Operatörlerin etki ettikleri sabit ya da değişkenlere

ise operand denir. Örneğin a+b ifadesinde a ve b

birer operanddır.

21

Operatörler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 22: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Operatörler

( )

! + - ++ --

* / %

+ -

< <= > >= is as

== !=

&

^

|

&&

||

?:

= *= /= %= += -= &= ^= !=

22

Operatörler

Operatörlerde İşlem

önceliği

En Yüksek

En Düşük

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 23: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

23

Operatörler

a) Aritmetik Operatörler

b) Aktarma Operatörü

c) Mantıksal Operatörler

d) Karşılaştırma Operatörleri

e) «as» ve «is» Operatörleri

f) typeof operatörü

g) Bitsel Operatörler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 24: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

24

Aritmetik Operatörler

Operatör Açıklama

+ Toplama

- Çıkarma

* Çarpma

/ Bölme

% Mod Alma

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 25: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

25

Aktarma Operatörleri

Operatör Açıklama

+=Eşitliğin sağındaki ve solundaki değeritoplar ve solundaki değişkene atar

-=Eşitliğin sağındaki ve solundaki değeriçıkarır ve solundaki değişkene atar

*=Eşitliğin sağındaki ve solundaki değeriçarpar ve solundaki değişkene atar

/=Eşitliğin sağındaki değeri solundakideğerine bölerek solundaki değişkeneatar

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 26: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

26

Mantıksal Operatörler

Operatör Açıklama

&& Ve

|| Veya

! Değil

^ Özel Veya

?? Null coalescing

?: Koşul

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 27: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• İlk ifade ve sonraki ifadeler doğru ise True değerini

döndürür. Herhangi bir koşul False değerini taşıyorsa

geriye False değerini döndürür.

– 1 && 1 = True

– (5 < 6 ) && (4 < 4) = False

– (2^4 < 3) && (6/2 < 4) = False

27

&& (Ve) Operatörü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 28: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• İlk ifade veya sonraki ifadelerden herhangi birisi

doğru ise True değerini döndürür.

– 1 || 1 = True

– (5 < 6 ) || (4 < 4) = False

– (2^4 < 3) || (6/2 < 4) = True

28

|| (Veya) Operatörü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 29: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Koşulun değerini tersine çevirir.

– ( 8 < 3 ) || (4/8 < 3/9)! =

29

! (Değil) Operatörü

False (False)!||

TrueFalse || =

=

True

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 30: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Eğer ilk değişken NULL ise ikinci ifade eşitliğin

solundaki değişkene atanır.

30

?? Null Coalescing Operatörü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 31: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

31

• Verilen koşula göre verilen değerlerden birini

çalıştırır.

[koşul] ? [doğruysa_değer] : [yanlışsa_değer]

?: Koşul Operatörü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 32: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

32

Karşılaştırma Operatörleri

Operatör Açıklama

< Küçüktür

> Büyüktür

<= Küçük Eşittir

>= Büyük Eşittir

== Eşittir

!= Eşit Değildir

--> Uzaklaşma Operatörü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 33: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Akış Kontrol Mekanizmaları

33Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 34: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

1. Karar Yapıları

a) if - else Yapısı

b) switch - case Yapısı

2. Döngüler

a) for Döngüsü

b) foreach Döngüsü

c) while Döngüsü

d) do – while Döngüsü

34

Akış Kontrol Mekanizmaları

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 35: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Karar Yapıları

35Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 36: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• If ve else karşılaştırma deyimidir.

else kullanımı isteğe bağlıdır.

• Sorgulanan koşul olumlu ise if

den sonraki bölüm ; olumsuz ise

else den sonraki bölün işleme

konulur.

36

if – else Yapısı

• Tek satır deyim içeren bloklarda {} sembolünün

kullanımına gerek yoktur.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 37: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Bir değişkenin değerini sabitlerle

karşılaştırılması sonucunda farklı işlemler

yapılacak ise switch – case yapısı kullanılır.

• switch – case ile yapılan kontroller if – else

kontrol yapısıyla da yapılabilir fakat switch –

case yapısı sabit değerler karşılaştırılacağında

kodun okunabilirliğini arttırır.

• Kontrol edilen sabitler double ve float olamaz.

• Aynı sabit değer ayrı case bloklarında

bulunamaz.

37

switch – case Yapısı

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 38: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Genel yazım biçimi şu şekildedir:

38

switch – case Yapısı

Switch ( [koşul] ) {

case [sabit] : [işleme alınacak komutlar]; break;

case [sabit] : [işleme alınacak komutlar]; break;

. . .

default : [sabitlerle eşleşmeyince işleme alınacak komutlar]; break;

}Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 39: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

39

Döngüler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 40: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Bir veya birden fazla kod satırının belirtilen koşulları

sağladığı sürece artış ve ya azalım değeri kadar

tekrarlanmasını sağlayan döngüdür.

• Başlangıç ve bitiş değerleri olmak zorundadır.

• Başlangıç değeri, koşul, artış veya azalım kısımları

farklı bir yerde tanımlanmak istenirse boş

bırakılabilir. Fakat noktalı virgüller kesinlikle

olmalıdır.

40

for Döngüsü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 41: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Genel yazım biçimi şu şekildedir:

41

for Döngüsü

for ( [başlangıç değeri ] ; [koşul] ; [artış veya azalım] ) {

. . .

[işleme alınacak komutlar];

. . .}

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 42: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

42

foreach Döngüsü

• foreach döngüsü bir dizinin ve ya koleksiyonun her

elemanı için bulundurduğu komutları çalıştıran

döngüdür.

• Dizinin her elemanının değerini geçici bir değişkene

atayarak bu değişken üzerinde işlemler yapmamızı

sağlar.

• foreach döngüsü ile dizi veya koleksiyondaki

elemanların değerleri değiştirilemez. Sadece «read –

only» işlemler yapılabilir.

• Dizi veya koleksiyonların eleman sayıları

bilinmediğinde kullanılır.

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 43: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Genel yazım biçimi şu şekildedir:

43

foreach Döngüsü

foreach ( [değişkenVeriTipi] [değişkenAdı] in [dizi/koleksiyon] ) {

. . .

[işleme alınacak komutlar];

. . .}

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 44: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

44

foreach Döngüsü

Örnek:

• Bir dizinin tüm elemanlarının ekrana yazdırılması

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Not: Kodlama

esnasında for ve

foreach yazdıktan

sonra iki kere tab

tuşuna basmamız

halinde derleyici içerik

bloğunu otomatik olarak

oluşturacaktır.

Page 45: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• while döngüsü bir koşulun doğru olduğu durumlarda

belirli işlemlerin tekrarlanması için kullanılan

döngüdür.

• Koşul yanlış olduğunda döngüden çıkılır.

• Döngünün başlayabilmesi için başlangıçta koşulun

sağlanması / koşulun doğru olması gereklidir.

• for döngüsünün yalnızca koşuldan oluşan halidir.

45

while Döngüsü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 46: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Genel yazımı şu şekildedir:

46

while Döngüsü

while ( [koşul] ){

. . .

[işleme alınacak komutlar] ;

[arttırım / azalım] ;

. . .}

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 47: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• while döngüsü ile aynı

mantıktadır.

• Koşul sağlanmasa da

komutlar en az bir kez

çalışması istendiğin

kullanılan döngüdür.

47

do - while Döngüsü

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 48: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Genel yazımı şu şekildedir:

48

do - while Döngüsü

do {. . .

[işleme alınacak komutlar] ;

[arttırım / azalım] ;

. . .

} while ( [koşul] ) ;

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 49: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

49

Döngülerde Kullanılan Deyimler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 50: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Döngü devam ederken döngünün koşuluna

bakılmaksızın döngüden çıkılmasını sağlayan

deyimdir.

• Tüm döngü türlerinde kullanılabilir.

• Genel kullanımı şu şekildedir:

50

break Deyimi

{ . . .

break; //burada döngüden çıkılır sonrasındaki komutlar işleme alınmaz

. . .}

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 51: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Döngüde bir adım atlamak için kullanılır.

• Döngüde sıra bu deyime geldiğinde , continue

ardından döngü sonuna kadar olan komutlar atlanır

ve döngüye sonraki adımdan devam edilir.

• Genel kullanımı şu şekildedir:

51

continue Deyimi

{ . . .

continue; //burada sonraki komutlar işletilmez sonraki döngü adımına //atlanır

. . .}

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 52: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Diziler

52Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 53: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Aynı veri tipindeki değişkenlerin sıralı bir şekilde

saklanması ve erişilmesi için kullanılan yapılardır.

Boyutlarına göre diziler:

1. Tek Boyutlu Diziler

2. Çok Boyutlu Diziler

a) Düzenli Diziler (Matris)

53

Diziler

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 54: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Tek Boyutlu Dizilerin bildirimi şu şekilde yapılır:

• İstenirse eleman sayıları belirtilmeden de dizi

bildirimi yapılabilir:

54

Tek Boyutlu Diziler

[diziVeriTipi] [] [diziAdı] = new[diziVeriTipi][elemanSayısı];

int[] telefonNumaralari = new int[25];

string [] cumle; bool [] devamsizlik;

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 55: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Diziler tanımlandıktan sonra dizinin her elemanına

tanımlandıkları veri tipinin varsayılan değerleri

atanır.

• Sayısal veri tipleri için 0 ,

• Object veri tipi için NULL,

• String veri tipi için " ",

• Char veri tipi içim ‘ ’ (boşluk),

• Bool veri tipi için False atanır.

55

Tek Boyutlu Diziler (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 56: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• .NET uygulama geliştirme platformunda C’de

olduğu gibi dizi indisleri 0’dan başlar.

dizi[0] dizinin 1. elemanı ,

dizi[4] dizinin 5. elemanı olarak kullanılır.

• Dizi bildirimlerinde dizi boyutu bir değişkene bağlı

olabilir.

56

int a = 20; int[] dizi = new int[a*2] ;

Tek Boyutlu Diziler (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 57: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Dizi tanımlanırken dizi elemanlarının başlangıç değerleri

verilebilir.

• Dizininin veri tipine göre dizi elemanı değerlerini

aralarında virgül varken ;

– Sayısal veri tip ise olduğu gibi

– string veri tipi ise çift tırnak (" ") işaretleri arasında ,

– char veri tipi ise tek tırnak (‘’) işaretleri arasında

yazılmalıdır.

57

[diziVeriTipi] [] [diziAdı] = { [dizi elemanlarının değerleri] };

Tek Boyutlu Diziler (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 58: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

• Örneklerdeki gibi dizinin eleman sayısı belirtilmeden tanımlanan

dizilerde dizinin boyutu girilen değerlerin sayısı kadardır.

– Mevsimler dizisi 4 elemanlı,

– ogrNumara dizisi 4 elemanlı,

– harf dizisi ise 3 elemanlı olarak tanımlanır.

58

string[] mevsimler = {"yaz", "kış", "güz", "bahar"};

int[] ogrNumara = { 2146, 2112, 2121, 1112211};

char[] harf = {‘a’, ‘b’, ‘c’} ;

Tek Boyutlu Diziler (devam…)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 59: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

59

• Çok boyutlu diziler her bir elemanı bir dizi şeklinde

olan dizilerdir.

• Her bir dizi elemanının eşit sayıda dizi içerdiği

dizilere düzenli dizi (matris) denir.Matrisler boyutlarına göre aşağıdaki gibi gruplandırılır:

– İki boyutlu matrisler

– Üç Boyutlu matrisler

– …

– n boyutlu matrisler

Düzenli Diziler(Matris)

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 60: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

60

Düzenli Dizilerin (Matris) Bildirimi

[veri tipi] [ , ] [dizi adı]= new [veri tipi] [ [satır] , [sütün] ] ;

int [,] carpimTablosu = new int [9,9];

int [,] sayilar = new int [4,4];

char [,] kelime = new char [10, 29];

string [, ,] takvim = new string [12, 30, 24];

Genel bildirim biçimi şu şekildedir:

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama

Page 61: YZM 2105 Nesneye Yönelik Programlama · C# Programlama Dili Elemanları 2 Bu bölümde; Veri tipleri Değişkenler ve Sabitler Tip Dönüşümleri Operatörler Akış Kontrol Mekanizmaları

Yararlanılan Kaynaklar

61

• Sefer Algan , HER YÖNÜYLE C# , Pusula Yayıncılık,

İstanbul, 2003

• Milli Eğitim Bakanlığı «Nesne Tabanlı Programlama",

2012

• http://www.AlgoritmaveProgramlama.com

Celal Bayar Üniversitesi - YZM 2105 Nesneye Dayalı Programlama