C – Döngüler

Döngüleri algoritmalardaki tekrarlanan işlem ve adımların manuel olarak yapılmaması için kullanıyoruz.Döngüler iyi kullanılırsa işlem satırlarının artmasınada engel olunur.

Örneğin Ekrana 100 kez Mertinal.Net yazdıracaksanız.Bu işlemi şu şekilde yapmak hem zor , hem de gereksiz olur.

[code language=”c”]
printf("Mertinal.net\n");
printf("Mertinal.net\n");
printf("Mertinal.net\n");
printf("Mertinal.net\n");

[/code]
Bu işlemi döngülerle çok basit bir şekilde yapabiliriz.

Sayaç(Counter) Kavramı ve Döngünün Kontrolü

Sayaç bizim döngü içerisinde yapılacak işlemi tekrarını tutan değişkendir.
Döngüde mutlaka ilk değeri olan bir sayaç değişkeni olmalıdır.
Bu sayaç değişkeninin sınır değerine gelip gelmediğinin kontrolü yapılmalıdır.
Döngü içerisinde sayacın değerinin değişmesi için arttırma veya azaltma işlemleri uygulanmalıdır.

Algoritma mantığı şöyledir ;

[code language=”c”]
1.Başla
2.sayac=<başlangıç değeri>
3.Komutlar
4.sayac++ veya sayac–
5.Sayacın sınır değeri ile olan durumu karşılaştırılır
6.Diğer Komutlar
7.Dur
[/code]

While Döngüsü

While kısaca ;

[code language=”c”]
while(kosul | durum){
komut;
komut2;
}
[/code]
Yukarıdaki döngüde komut bölümünde sayaç kullanarak koşul | durum ikilisini yanlışa yani sıfıra çeviririz ve böylece istediğimiz sayıda işlemi yaptıktan sonra döngüden çıkmış oluruz.

Yukarıdaki döngüde while(0) yani koşul ve durum baştan itibaren yanlış olursa döngüye hiç girmeyecektir.Aksi durum olarak while(kosul | durum) hiç bir zaman sıfır olmazsa , bu seferde döngüden hiç çıkmayarak sonsuz dögüye girecektir.

Ekrana 100 kez Mertinal.Net yazan program örneği ;

[code language=”c”]
#include <stdio.h>
#include <stdlib.h>

int main()
{
int sayac=1;
while(sayac<=100)
{
printf("Mertinal.net\n");
sayac=sayac +1 ;
}
return 0;
}

[/code]

Hiç Çalışmayan Döngü Örneği ;

[code language=”c”]
x=10;
while(x<5)
{
komut;
x=x-1;
}
// x ‘ in 5 ten küçük olmadığından döngüye girmeyecektir.
[/code]

Sonsuz döngü Örneği

[code language=”c”]
x=10;
while(x<=10)
{
komut ;
x=x-1;
}
//Bu döngüde x her zaman 10 dan küçük veya eşit olacağından sonsuz döngüdür.
[/code]

Gözcü Kontrollü Döngü

Döngünün kullanıcı tarafından dışarıdan girdi yapılarak sonlandırılmasına olanak tanıyan döngülere gözcü kontrollü döngü veya Sentinel Controlled Loops denir.
Örnek Döngü;
Kullanıcı -1 girene dek girilen sayının karesini alan program;

[code language=”c”]
#include <stdio.h>
#include <stdlib.h>

int main()
{
int kontrol=0;

while(kontrol!=-1)
{
printf("Karesini almak istedigin sayiyi gir :");
scanf("%d",&kontrol);
if(kontrol==-1)
{
printf("Dongu Sonlandirildi");
break;
}
else
{
kontrol=kontrol*kontrol;
printf("Karesi %d\n",kontrol);
}

}

return 0;
}

[/code]

For Döngüsü

Tekrar eden işlemler için kullanılan başka bir döngü çeşitidir.
Genel Kullanım ;

[code language=”c”]
for(Döngü Değişkeni=ilkdeğer; DöngüKoşulu; Artım/Azaltım){
komut1;

komutN;
}
[/code]
Ekrana 10 kez Mertinal.net yazan program
[code language=”c”]
int main()
{
int sayac;
for(sayac=0; sayac<10; sayac++)
{
printf("Mertinal.net\n");
}
return 0;
}
[/code]

do-while Döngüsü

do-while döngüsünün , while döngüsünden farkı while döngüsünde döngüye giriş koşulu döngüye girmeden sorgulanır.Burada ise döngü en az bir kez çalıştırılır ve ondan sonra sorgulama işlemi yapılır.
Genel Kullanımı ;

[code language=”c”]
do{
komut1;

komut N;
}while(koşul | durum);
[/code]

İç İçe Döngüler (Nested Loops)

Bir döngü içerisinde başka bir döngü bulunmasıdır.İçteki döngü dıştaki döngününün her adımında çalıştırılacaktır.
Genel Kullanım ;

[code language=”c”]
n=5;
for(i=0;i<10;i++)
for(j=0;j<9;j++)
n=n+1;
[/code]

Piramit oluşturan iç içe döngü

[code language=”c”]
for(i=1; i<=5; i++)
{
for(j=1; j<i; j++)
printf("*");
printf("/n");
}
[/code]

Continue Kullanımı

contiune(devam etmek) kullanıldığı yerde döngüdeki diğer komutları çalıştırmadan döngü başı yapılmasını sağlamaktadır.
Örnek ;

[code language=”c”]
//4 rakamını atlayan program
int main()
{
int i;
for(i=1; i<=10; i++)
{
if(i==4)
continue;
printf("%d\n",i);
}

}
[/code]

C de Switch Case Kullanımı

Switch Çoklu Seçim Deyimi (Multiple Selection Statement

Switch deyiminde değişken değerine göre komut çalıştırılır.Yalnız değişken ifadesinin değerlerinin sıralı giden ifadeler olmasına dikkat edilmelidir.Ayrıca değişken tipleri int ve char olabilirken float ve double gibi ondalıklı değerler alamaz.

Genel Kullanım :

[code language=”c”]
switch(değişken){
case deger1:
komut1;
break;
case deger2:
komut2;
break;
case deger3:
komutN;
break;
default:
komutx;

}
[/code]
Eğer her komuttan sonra break kullanılmaz ise tekli seçim yapılamaz.Örneğin breaklar kullanılmamış ve 1-5 arası caseler tanımlanmış ise , değişkende 3 ise komut3 , komut4 ve komut5 beraber çalıştırılacaktır.

defaultun kullanım amacı ise değişken değeri caselerden her hangi biri ile eşleşmediğinde çalıştırılacak komuttur.

Örnek Program

// 1 ile 3 arasında girilen rakamın yazılışını ekrana bastıran program ;

[code language=”c”]
#include <stdio.h>
#include <stdlib.h>

int main()
{
int sayi;
printf("Rakam Giriniz 1-3 ");
scanf("%d",&sayi);
switch(sayi)
{
case 1:
printf("Bir");
break;
case 2:
printf("Iki");
break;
case 3:
printf("Uc");
break;
default:
printf("Yanlis Sayi Girdiniz , Lutfen bir ile Uc arasinda bir sayi giriniz : ");
}
return 0;
}
[/code]

C Programlama Dersleri #1 | Code Blocks Kurulumu ve Kullanımı

Bu derste C kullanılırken kullanılacak Code Blocks programının kurulumu ve programın kullanımı gösterilecektir.

Öncelikle Alttaki Adreslerden Programı İndirelim ;

Ubuntu : Yazılım Merkezinden Yüklenebilir

Mac : Buradan 

Windows İçin : Buradan 

Program klasik kurulum yönergeleriyle aynı olarak next > next > next denilerek kurulabilir .

Kullanmadığımız Bazı Özelliklerin Kapatılması ; 

## Compiler ve Maini işaretli bırakıyoruz ayrıca aşağıda bulunun barlarda sadece build log ve build messages dışında bir sekme açık bırakmıyoruz .

resim

Proje Açma ;

## Create new project diyelim.

c1

##Console Applicationu seçip Go diyelim .

c2

## yi seçelim ve nexte tıklayalım ; 

c3

## Projemize isim verelim ve nexte tıklayalım

c4

## Bu ekranda bir değişiklik yapmayıp nexte tıklayalım ; 

 c6

## Yukarıdaki adımlardan sonra böyle bir bencere gelecek.

Sourcesdaki + işaretine tıklayalım ve açılan pencerede main.c dosyasına çift tıklayalım ;

c7

Proje Dosyası Bazı Özellikler ;

 

c9

Bu derste code blocks programı anlatıldı .

Bir sonraki derste C Programlama Dersine Giriş Yapılacak ;

Önceki Ders    Sonraki Ders

C Programlama Dersleri

Merhaba !

Bugün Mertinal.Net blogumda C programlama derslerini anlatmaya başlayacağım.

Bu işte uzman değilim , bende öğreniyorum.Ancak en iyi öğrenme yolunun öğretmek olduğunu bildiğim için bu seriye başlıyorum .Bu seride hiç C bilmeyen birinin başlangıç düzeyinden ileriki seviyelere gelmesini sağlamaya çalışacağım.
cc