C Programlama Dili – Döngüler

Döngüler bir işi belirlediğimiz sayıda yapan kod bloklarıdır.Örneğin faktöriyel hesabı yapacaksak n tane sayıyı birbiriyle çarpmamız gerekecek.Burada çarpma işlemi n defa yapılacağından döngülere ihtiyaç duyarız.Döngülerde iki temel aşama vardır.Bunlardan ilki kontrol kısmıdır.İkincisi ise döngünün yapacağı iştir.Döngülerde kontrol kısmında hata varsa döngümüz çalışmayabilir ya da sonsuz döngü oluşabilir.Bu yazımda 3 döngüden bahsedeceğim.Bunlar; while,do while ve for yapılarıdır.

6.1)While Döngüsü

While döngüsünde bir kontrol ifadesiyle döngünün devam edip etmeyeceğine karar verilir.Süslü parantez içinde ise döngünün yapacağı işlemler olur.

Eğer döngüde tek satır kod çalışacak ise program 6.1’deki gibi tanımlanır.Aksi halde program 6.2’deki gibi bir tanımlama yapmalıyız.

Ekrana 5 defa “Merhaba Dunya” yazan program:

Çıktı:

[alert-success]Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

[/alert-success]

Klavyeden girilen sayının faktöriyelini hesaplayan program

6.2)Do While Döngüsü

Do while döngüsü while döngüsü ile hemen hemen aynıdır.Aralarındaki fark ise while döngüsünde döngü şartı sağlanmıyorsa o döngü içerisindeki kod bloğu çalışmaz ama do while döngüsünde kod bloğu en az bir kez çalışır.

6.3)For Döngüsü

For döngüsü diğer iki döngü çeşidi ile aynı işleri yapabilir.Genellikle diğer iki döngü çeşidinden daha fazla kullanılır.

For döngüsünün genel yazım şekli;

While döngüsünde verdiğim örneklerin aynısını kullanacağım ki aralarıdaki fark daha iyi görülsün.

Ekrana 5 defa “Merhaba Dunya” yazan program.

Çıktı:

[alert-success]Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

Merhaba Dunya

[/alert-success]

Klavyeden girilen sayının faktöriyelini hesaplayan program:

6.4)break komutu

Break komutu döngüyü durdurmak istediğimizde kullanırız.Örneğin ileri konularda anlatacağım diziler konusunda dizi içerisinde bir eleman ararken elemanı bulduktan sonra döngünün gereksiz yere çalışmasına gerek yok.İstediğimiz elemanı bulduğumuzda döngüyü durdurabiliriz.Nasıl kullanıldığına beraber bakalım.

Çıktı:

[alert-success]0

1

2

3

[/alert-success]

Yukarıdaki programda eğer sayımız 3’e eşit ise break komutu verdik yani döngüyü durdurduk.Eğer break komutu vermeseydik çıktımız ekrana 0 1 2 3 4 yazacaktı.

6.5)continue komutu

Continue komutu ise break komutunun tam tersidir.Döngünün devam etmesi halinde kullanılır.

 

0-100 arasındaki tek sayıları ekrana yazdıran program.(daha efektif şekilde yapılabilir ama continue komutu anlaşılsın diye bu şekilde yaptım)

 

C Programlama Dili – Koşullu (Conditional) İfadeler

C ve diğer birçok dilde şartların sağlanıp sağlanmadığını kontrol etmek için if yapısı kullanılır.

5.1)If

If koşulumuzdan sonra tek bir satır komut çalışacaksa yukarıdaki gibi tanımlayabiliriz.Ama if koşulumuzdan sonra birden fazla komut çalışacaksa bunları süslü parantez {} içine almalıyız.
Hemen ufak birkaç örnek yapalım.

Kullanıcının girdiği değer 20’den büyükse ekrana girdiğiniz sayı 20’den büyüktür yazan program.

Klavyeden girilen karakterin ‘a’ olup olmadığını kontrol eden program.

Klayveden girilen sayının çift olup olmadığını bulan program.

 

5.2)If-Else

Bazı durumlarda sadece koşulun sağlandığına bakmak yetmez.Aksi durumda yaptıracağımız bazı işlemler işlemler olabilir.Bu durumlarda if-else yapısını kullanırız.Mesela program 5.5’de sadece sayının çift olduğu durumları kontrol ettik ama tek olduğu durumlarda işlem yapmadık.Şimdi if-else kullanarak tek olduğu durumda da ekrana girilen sayı tektir yazdıralım.

Girilen iki sayının birbirine bölünmesi işleminde de bir sayı sıfıra bölünemeyeceği için bunu kontrol edilmesi gerekir.Aşağıdaki örnekte bunu inceleyelim.

Çıktılar:

[one_half]5.7_cikti[/one_half][one_half_last]5.7_cikti2[/one_half_last]

Kullanıcının girdiği vize ve final notuna göre dersten kalıp veya geçtiğini ekrana yazdıran program(vize*0.4+final*0.6 sonucu 50’nin üzerinde ise geçti altında ise kaldı yazacak başka hiçbir şart kontrol edilmeyecek)

 

5.3)İç içe geçmiş yapılar

Şimdiye kadar öğrendiğimiz bilgilerle sadece iki durumu kontrol edebiliyoruz.Peki ikiden fazla durum söz konusu ise ve her duruma göre farklı bir işlem yapacak isek ne yapmalıyız? Bu gibi durumlar için iç içe geçmiş yapılardan yararlanırız.

5.3.1)İf-else if Merdiveni

Örnek kullanım

 

Klavyeden girilen iki sayıyı kıyaslayan program.

5.3.2)Switch-case ifadesi

Switch-case yapısı if-else if ifadesine benzer ama aralarında fark vardır.If-else if yapısında belirli bir aralığı kontrol ederken switch-case ifadesinde ise direk değerlerin bir şeylere eşit olup olmadığını kontrol edebilirsiniz.

Dört işlem yapan bir program yazalım.

 

C Programlama Dili – Değişkenler ve Matematiksel İşlemler

Değişken kısaca programın çalışması sırasında çeşitli türlerde atama yaptığımız veri tutuculardır. Burada dikkat etmemiz gereken en önemli şey ise yazacağımız programda ihtiyacımız olan değişken türü hangisi ise onu seçmeliyiz.Aksi takdirde yapacağımız işlemlerde yanlışlık olabilir.Değişken türleri ile ilgili tabloya aşağıdan ulaşabilirsiniz.

TİP TANIMLAMA MİNİMUM MAXİMUM BYTE
Karakter char dAdi -128 127 1
Kısa tam sayı short dAdi -32768 32767 2
Tamsayı int dAdi -32768 32767 2
Uzun Tamsayı long int dAdi -2147483648 2147483647 4
İşaretsiz Tamsayı unsigned int dAdi 0 65535 2
İşaretsiz Uzun Tamsayı long unsigned dAdi 0 4294967295 4
Virgüllü Sayı float dAdi 1,17549e-38 3,40282e+38 4
Uzun Virgüllü Sayı double dAdi 2,22504e-308 1,79769e+308 8

Not:Yukarıdaki değerler derleyiciden derleyiciye farklılık gösterebilir.

4.1)Değişken tanımlama

Değişkenleri aşağıdaki gibi tanımlayabilirsiniz.

4.2)Değişkenlere ilk değer ataması nasıl yapılır?

Yukarıdaki programda dikkat edilmesi gereken en önemli nokta x ve y değişkenlerinin ataması.x tam sayı olduğu için direk “5” olarak atadık ama y değişkeni virgüllü olduğu için  “5.0” olarak atadık.Karakter aması yaparken ise tek tırnak(”) arasına atama yaptık.

 

4.3)Matematiksel işlemler

Aşağıdaki tabloda matematiksel işlemleri ve c dilindeki karşılıkları verilmiştir.

İşlem İşaret Matematik Karşılığı C de Karşılığı
Toplama + x+y x+y
Çıkarma x-y x-y
Çarpma * x*y x*y
Bölme / x/y x/y
Mod % x mod y x%y

4.4)İşlem Önceliği

  • İlk önce parantez içi yapılır
  • Daha sonrasında çarpma bölme ve mod işlemleri yapılır.Eğer bunları üçü de var ilk yazdığım sırada yapılır
  • Son olarak toplama ve çıkarma işlemi yapılır.Eğer iki işlem de bir arada bulunuyorsa önce toplama sonra çıkarma işlemi yapılır.

4.5)Eşitleme İşlemleri

İşlem Kısa Karşılığı
x=x+3 x+=3
y=y-3 y-=3
z=z*3 z*=3
t=t/3 t/=3

4.6)Artırma ve Azaltma İşlemleri

a)Önden artırma

  • İşlem değişkenden önce kullanılır.
  • Değişkenin değeri hesap yapılmadan önce artırılır veya azaltılır.

Örnek:

Çıktı:[alert-success]x degiskeninin simdiki degeri: 51[/alert-success]

Aynı işlemi birde önden eksilterek yapalım.

Çıktı:[alert-success]x degiskeninin simdiki degeri: 49[/alert-success]

 

b)Sondan artırma

  • İşlem değişkenden sonra kullanılır.
  • Değişkenin değeri hesap yapıldıktan sonra artırılır veya azaltılır.

Örnek:

Çıktı:[alert-success]x degiskeninin simdiki degeri: 50[/alert-success]

Aynı işlemi birde sondan eksilterek yapalım.

Çıktı:[alert-success]x degiskeninin simdiki degeri: 50[/alert-success]

Gördüğünüz gibi sondan artırma işlemlerinde önce o satır çalışıyor sonrasında x in değeri artırılıyor.

 

4.7)Karşılaştırma İşlemleri

  • İki veya daha fazla değişkeni kıyaslamak için kullanılırlar.
Eşittir =
Küçüktür <
Büyüktür >
Küçük Eşittir <=
Büyük Eşittir >=
Eşit Değildir !=

4.8) Printf ve Scanf Tablosu

slide_10