c örnek kod etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
c örnek kod etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Temmuz 2009 Cumartesi

C Do while Loop

C'de işleyeceğimiz bir başka döngü çeşidimiz de do / while döngüsüdür. Yaptığı iş hemen hemen while döngüsü ile aynıdır fakat tek bir fark vardır ki koşul sağlansa da sağlanma sa do / while döngüsü en az 1 kez çalıştırılır.

Konuyu biraz açacak olursak while döngüsünde koşul sağlanmadığı takdirde döngü içindeki komut çalıştırılmaz. Çünkü koşul başta belirtilmiştir. Fakat do / while döngüsünde koşul sonda kontrol edileceği için en az bir kez çalıştırılır.

Şimdi ufak bir örnek yapalım. Şöyle ki kodumudaki sayaç değeri 5'ten küçükse ekrana merhaba dünya yazalım. Eğer 5 ten küçük değilse merhaba dünya yazmasın. While ile do / while arasındaki farkı gözlemlemek için de sayaç degerimizi 10 yapalım.

Şimdi kodlara bakalım:

Aşağıdaki kod while döngüsü ile düzenlenmiştir. Sayaç başlangıç değeri 10 olarak atanmıştır. Koşul sağlanmadığı için ekrana herhangi birşey yazılmayacaktır.

# include
# include

int main()
{
int sayac = 10;

while (sayac < 5) { printf("merhaba dunya"); sayac ++; } getch(); }



Şimdi aynı kodu do / while ile yapıyoruz. Sayaç değeri yine 10 olarak belirlenmiştir. Fakat do / while'ın mantığına göre döngü en az bir kez çalışacağından 1 kez ekrana "merhaba dünya" yazdırılacaktır.

# include
# include

int main()
{
int sayac=10;

do {
printf("merhaba dunya! \n");
sayac++;
} while(sayac<5); getch(); }



Umarım aradaki farkı anlatabilmişimdir. Tüm c sever arkadaşlara kolay gelsin.

Programın kaynak dosyalarına aşağıdaki linkten ulaşabilirsiniz:

http://rapidshare.com/files/252043185/do_while.rar.html

1 Temmuz 2009 Çarşamba

C { İf / Else / Switch Tutorial 2 }

C dilinde yazılmış bir su fatura ücreti hesaplama programı. Programın kaynak kodu ve çalışma metodunu aşağıdaki linkte bulabilirsiniz.

İf / else / switch için gayet güzel ve kapsamlı bir örnek.

İndirmek için:

http://rapidshare.com/files/250859696/su_fatura.rar.html

6 Haziran 2009 Cumartesi

Basit bir hesaplama programı

* kullanıcıdan gideceği yolu ve gitmek istediği süreyi alıp yol boyunca gitmesi gereken ortalama hızı bulan bir program geliştirin.

#include
#include

int main()
{
double yol, ortalama_hiz;
int zaman;

printf("Lutfen gideceginiz mesafeyi yazin (m): \n");
scanf("%lf", &yol);
printf("Lutfen gitmek istediginiz sureyi yazin (sn): \n");
scanf("%d", &zaman);
ortalama_hiz=yol/zaman;
printf("Yol boyunca ortalama hiziniz: %lf m/sn olmalidir.", ortalama_hiz);
getch();
}



kodlara kendimiz bir göz atalım:

include ile header dosyaları eklenmiştir. header dosyası nedir? header dosyaları program içinde kullanacağınız hazır fonksiyonları içeren dosyalardır. (şimdilik bu kadar yeter. )

int main() { } -> main kısmı programımızın gövdesini oluşturmaktadır. neden main adı veriyoruz? aslında main ana fonksiyon olarak tanımlanabilir. fonksiyon nedir? fonksiyonlar ileriki bölümlerde öğreneceğimiz bir konudur. kısaca değinmek gerekirse programda bazen tekrar etmesi gereken kod öbekleri olabilir. bunları sık sık tekrar yazmak yerine fonksiyon şeklide main kısmının üstünde yada altında tanımlayarak tekrar tekrar kullanabiliriz. programı küçük alt birimlere bölmeye yarar. (böl ve yönet mantığı) şimdilik fonksiyonlar hakkında bu kadar yeter.

ilk kullanacağımız hazır fonksiyonlarımız scanf ve printf. printf kalıbını ekrana bir şey yazdırmak istediğimizde kullanırız. kalıbı printf(" yazılacak metin \n"); şeklindedir.


\n nedir? imleci alt satıra geçirmeye yarar (next) başka kullanım olarak \t olabilir. t-> tab bir miktar ileri kaydırır imleci.

c'de ifadelerin sonuna ; koymamız gerekiyor. derleyici ; geldiğinde komutun sona erdiğini anlamakta. yeri gelmişken söylemek isiyorum derleyici boşlukları ve // ifadesinden sonraki kısımları atlar. // genelde yorum belirtmek için kullanılır. kod öbeklerinin sonuna yada başına // şeklinde açıklama satırları yazabilirsiniz.


neyse konuyu fazla dağıtmadan devam edelim.

scanf ise klavyeden veri girişini sağlayan ve onu bir değişkene atayan fonksiyondur. scanf kalıbı ise scanf("%d",&degisken_adi); şeklindedir. hemen incelersek burda kafamızı karıştırabilecek birkaç nokta olabilir. %d değişkenin tipini belirdir. okunacak değişkenin ne türde olduğunu gösterir. (değişken tipleri ile ilgili bir makale aşağıda vereceğim) daha sonra atama operatörü (ampersant) ile klavyeden okunan değer değişkene atanır.

Veri Tipi Bellek Boyutu Veri Aralığı Açıklama
int 16 bit, 2 byte -32768 ile 32767 Tamsayı Değişkenler
char 8 bit , 1 byte -128 ile 127 Karakter Değişkenler
float 32 bit, 4 byte 3.4x10-38 ile 3.4x10+38 Tek hassasiyet, 7 digit
double 64 bit, 8 byte 1.7x10-308 ile 1.7x10+308 Çift Hassasiyet, 15 digit

veri tiplerini de böylece görmüş olduk.

%d -> int
%c -> char
%f -> float
%lf -> dobule

daha çeşitli değişken tipleri mevcut. bunları lazım oldukça göreceğiz.

şimdi prgrama devam edelim. main'in altında ilk olarak değişkenleri tanımlamalıyız. kullanacağımız değişkenler; yol uzunluğu tam sayı, zaman tam sayı ve ortalama hız ( yol / zaman olacağı için kesirli sayı kullanmalıyız.)

değişkenler tanımlandıktan sonra kullanıcıdan veriler alınmalı ve ortalama hız hesaplanarak ekrana yazdırılır ve program sonlanır.

programı derlediğimizde hemen kapanması gibi bir sorunla karşılaşabilirsiniz. (yukarıdaki kodlarda getch() ifadesi kullanıldığı için kapanmayacaktır.)

getch() ifadesi programın sonuna eklenerek yada return 0; ifadesi eklenerek hallolabilir bu sorun.

not: getch ifadesi için conio.h öncü dosyasını eklemeniz gerekmektedir.