Tweet

Ana Sayfa   Forum   C , C++
Yeni Başlık Cevap Ekle
white_bullet C de Döngü kavramına giriş (26/06/2008 08:23)
profil seyhan
 offline OFFLINE
 Junior Coder

DÖNGÜ KAVRAMINA GİRİŞ:

Bu dersimizde yavaş yavaş C ile iç içe olmaya başlayıp döngü kavramına girmeye
çalışalım.Dersin sonunda size öğrendiklerimizi uygulamak açısından bir küçük
ödev vereceğim yazan arkadaşlar seyhanucar@yahoo.com adresine gönderebilirler.
Ben kontrol edip size dönerim.

DÖNGÜ KAVRAMI:

Programlama konusunda -hangi dil olursa olsun- en kritik yapılardan biri döngülerdir.
Döngüler, bir işi, belirlediğiniz sayıda yapan kod blokları olarak düşünülebilir.
Ekrana 10 kere "Merhaba Dünya" yazan bir programda, "Merhaba Dünya" yazdıran kodu aslında tek bir defa yazarsınız,
döngü burada devreye girip, sizin için bu kodu istediğiniz sayıda tekrarlar.

Döngüleri bu kadar kritik yapan unsur; iyi yazılıp, optimize edilmediği takdirde,
bilgisayarınızın işlem gücünü gereksiz yere tüketmesi ve harcanan zamanı arttırmasıdır.
Benzer şekilde, iyi yazılmış bir döngü, programınızı hızlı çalıştıracaktır.

Bütün döngüler temelde iki aşamayla özetlenebilir. Aşamalardan biri,
döngünün devam edip etmeyeceğine karar verilen mantıksal sorgu kısmıdır.
Örneğin, ekrana 10 kere "Merhaba Dünya" yazdıracaksanız, kaçıncı seferde olduğunu, koşul kısmında kontrol edersiniz.
Diğer aşama, döngünün ne yapacağını yazdığınız kısımdır. Yani ekrana "Merhaba Dünya" yazılması döngünün yapacağı iştir.

Döngünün devam edip etmeyeceğine karar verilen aşamada, hatalı bir mantık sınaması koyarsanız,
ya programınız hiç çalışmaz ya da sonsuza kadar çalışabilir.

C programlama diline ait bazı döngüler; while, do while, for yapılarıdır. Bunlar dışında,
goto döngü elemanı olmasına rağmen, kullanılması pek tavsiye edilmemektedir.
Bunların dışında If komutu,ve switch ,break,case C programlama dilinde en yaygın komutlardır.
Şimdi sırası ile bu komutları size tanıtmaya başlayalım.

IF KOMUTU:
CODE:

/* Bu, if-else komutunun bir ornegidir */
#include<stdio.h>
main()
{
int data;
for (data=0;data<10;data = data + 1)
{
if (data==2)
printf("Data simdi %d ye esit.n",data);
if (data<5)
printf("Data simdi %d. Bu da, 5 den azdir. n",data);
else
printf("Data simdi %d. Bu da, 4 den buyuktur.n",data);
}
}

Bu programda, ilk once, icinde iki tane if komutu olan bir for dongusu
gorunuyor.for döngüsü ilerleyen derslerde daha detaylı işlenecektir ama şimdilik kullanım şekli
olan for(başalngıç;koşul;artım) üzerinde duralım.Koşul doğru olduğu sürece for döngüsünün altındaki
satır ya da satırlar işlenecek ve artım gerşekleşecektir.Bu dongunun on kere tekrarlanacagi, açık bir sekilde goruluyor.

Ilk if satirina bakin: "if" kelimesi ile basliyor, ve sonra bir parantez icinde, sarti goruluyor.
Sayet bu parantezin icindeki islemin sonucu dogru (evet) ise, if'den hemen sonra gelen satir islenir.
Sayet cevap yalnis ise, if'den sonra gelen komut, atlanir. Burada da, tek bir komut, kume isaretleri ile,
bir komut bloku haline getirilebilir.

Burada data==2 islemi, data degiskeninin degerinin ikiye esit olup olmadigini kontrol eder.
(Sayet data = 2 olsa idi, tumuyle ayri birsey gerceklesirdi.)

IF-ELSE

Ikinci "if", yine birincisine benziyor. Fakat, ek olarak "else" isimli bir kesimi de iceriyor.
Bu da, sayet parantezlerin icindeki islem dogru (EVET) sonuc verirse, "if" den sonra gelen satir islenecektir, sayet yalnis
(HAYIR) sonucu verirse, "else" den sonra gelen komut islenecektir. Bu nedenle, iki satirdan biri muhakkak islenecektir.


ÖDEV:
Şimdi size If komutunu kullandırmak açısından bir ödev verelim.Bana bir C kodu yazmanızı istiyorum yzacagınız kod
verilen üç sayıdan en büyüğünü ya da en küçüğünü bulsun.Kodun yazılmış şeklini diğer dersimizin sonunda
foruma atacağim herkese kolay gelsin.
Seyhan Uçar
(ipucu:geçici bir değişken tanımlamanız işinizi kolaylaştırır

[IMG SRC="http://img225.imageshack.us/img225/2408/seyhanzt2.jpg" ALIGN="oğuz"]seyhan[/IMG]

Üye Profili

white_bullet Re:C de Döngü kavramına giriş (26/06/2008 08:30)
profil Oguzz
 offline OFFLINE
 Senior Coder

Switch -Case yapılarına giriş yapacakmısın peki?Konu güzel teşekkürler.

just code it!

profil

white_bullet Re:C de Döngü kavramına giriş (26/06/2008 09:52)
profil Oguzz
 offline OFFLINE
 Senior Coder

Hazır aklıma gelmişken örnek zenginliği açısından İf deyiminin kullanımı ile ilgili bir örnekte benden olsun.

/* 06prg01.c: if deyiminin kullanımı */

#include <stdio.h>

int x, y; /* global değişkenler */

void main()
{
printf("x degeri: ");
scanf("%d",&x);
printf("y degeri: ");
scanf("%d", &y);

/* değerleri karşılaştır ve sonucu ekrena yaz */

if (x == y)
printf("x, y ye esitn");

if (x > y)
printf("x, y den buyukn");

if (x < y)
printf("x, y den kucukn");
}


Kodların bazılarını dışarıdan bazılarını içeriden yazdım.Ancak forumda yazdığım gibi görünmüyor malesef.C veya başka bir programlama dilindede kodları genelde içe dışa girdili olarak yazarlar.Kodların okunabilirliği açısından bazı kodlar dışa çıkıntılı yazılır.Bunların bir önemi yoktur yani siz normalde yazsanız programınız derlenir ancak böyle yazmak hatalarınızı görmek açısından daha kullanılabilirdir.Örnekleri sadece okumak yerine C derleyicisinde yazıp derleyerek neyin ne olduğunu görmeniz sizin için iyi olur.Programlama uygulayarak öğrenilen bir konudur.Kolay gelsin.

just code it!

profil

white_bullet Re:C de Döngü kavramına giriş (26/06/2008 10:05)
profil Oguzz
 offline OFFLINE
 Senior Coder

Unutmuşum pardon..

İf ve Else beraber şöyle kullanılıyor.

if(koşul){
...
deyimler; (küme1)
...
}

else{
...
deyimler; (küme2)
...
}

just code it!

profil

white_bullet Re:C de Döngü kavramına giriş (26/06/2008 10:06)
profil seyhan
 offline OFFLINE
 Junior Coder

Oğuz arkadaşıma katılıyorum lütfen verilen örnekleri uygulamalı olarak
çalıştırıp deneyin ancak bu şekilde C de ilerleme gösterebilirsiniz yanlışlarınızı
görmeden doğruları bulamazsınız..
Saygılarımla
Seyhan Uçar

[IMG SRC="http://img225.imageshack.us/img225/2408/seyhanzt2.jpg" ALIGN="oğuz"]seyhan[/IMG]

profil
 
1 /
 
Ana Sayfa   Forum   C , C++
Yeni Başlık Cevap Ekle
 

MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg