C icin guzel bir giriş dokumanı.Arattım daha once yayınlanmamış.Dokuman alıntıdır.

C Temelleri

S.a Arkadaşlar
Bu dokuman tamamen tarafımca hazırlanmış C icin basit bir giriş dokumanıdır.Şimdi eliniz de compiler

varsayarak işe başlıyoruz.Elinde builder bulunan arkadaşlar.Şu işlem sırasını izleyelim:
File>New>Console Wizard>WindowType Bolumune(Console)Execution Type Bolunde(EXE)secin ve oluşan unit.1cpp

adlı dosyanın icini kulliyen silinBuraya kodlarımızı yazacağız.
Builder olmayan arkadaşlar compiler ın adnı yazın.Şimdi 0 dan başlayalımŞu kodları yazalım:

#include
main()

Bu program compile edildiğinde ekrana merhaba yazısını verir.
Yukarıdaki kodları sırasıyla inceleyelim şimdi:
#include bu satır bir kitaplık dosyasıdır.kitaplık dosyaları hep .h uzantılıdır.Bu kitaplk

dosyaları icerisinde
girdi-cıktıların komutlarını icerisinde bulundurur.Zaten stdio acılımı standart input outputtur.printf bir

outputtur.Programın başına
yazmadığımız surece printf fonksyonu tanınmaz.Cunku printf stdio.h icerisinde tanımlıdır.Her kutuphane

dosyası icerisinde
farklı farklı fonksyonlar tanımlıdır.Yani kutuphane dosyaları her zaman karşımıza cıkacaktır.İlerde değişik

fonksyonlara gore
farklı kutuphane dostlarıyla tanışacağız.Buradaki mantık anlaşılmıştır sanırım
İkinci satırdaki main() ise icine tum fonksyonlarımızı yazacağımız bolumudr.main i herzaman

kullanacağız.main() yazdıktan sonra
komutları acıp kapamış olduğumuz parantezleri icine yazacağız.Yani;
main()

şeklinde olacak.Ve geldik 3.satırdaki printf'e:Printf bunlar input output komutlardır.Bunları cook geniş

olark anlatacam.Printf
ekrana cıktı vermek icin kullanacağımız output tipinde tanımlı bir fonksyonudur
return 0 ise programın cıktısı olup olmadığını kontrol eder.Yanlız biz builder kullanıyoruz yani

programlarımızın sonuna
return 0 ibaresini eklemzsek bir problem oluşmaz.Onemli bir nokta ise c de her fonksyondan sonra ";"

işareti konmasıdır.
Her fonksyon sonunda muhakkak bulunur.Dikkat etmenizi istediğim diğer bir noktaysa c de buyuk kucuk har

ayırımı vardır.
Eğer siz printf yerine Printf yazarsanız compiler hata verir.Ona gore))

Evet bu kodları yazdıktan sonra geldik compile olayına.Builder kullanan arkadaşlarımız once kodları

yazdıkları unit1.cpp adlı
dosyamızı bir klasore kaydetsinler.Ardından F9 tuşuna bastıkmı alın compile oldu işte exe dosyamız uniti

kaydettiğimiz yerde
olacaktır.Ms-Dos komut sisteminden dosyayı kadettiğimiz dizine ulaşalım ve exe dosyamızı calıştıralım.
Alın size calıştı.Birdahaki derste goruşmek uzere buradaki mantıkları anlamanız onemli arkadaşlar.esasen

.cpp uzantısı
c++ a aittir ancak on onemli değil bizler derlememizi yapabildiğimizden doalyı bir problem yok

Diğer compilerda compile ise:
Programımızı bir notpad de yazdıktan sonra bunu mesela "ilkprogramım.c" seklinde uzantısı .c olacak sekilde

kaydediyoruz.Sonra shell kullanıyorsak "gcc ilkprogramım.c" komutu ile compile ediyoruz.
Bulundugumuz klasorde a.out diye bir calıstırılabilir dosya olusucaktır. ./a.out yazarsanız program

calısır.Eger windowsda bi compiler kullanıyorsak.
Compilerın bulundugu klasore ilkprogramım.c yi atacaz ve compilerımızın kullanımına gore mesela
borland icin "bcc32 ilkprogramım.c" yazacaz komut isteminde.
(ama komut isteminde compilerın bulundugu klasore gelmemiz lazım once).
Sonra ilkprogramım.obj diye bi dosya olusturacak compiler.
Son adım olarak "make ilkprogramım.obj" yazarsak ilkprogramım.exe diye bi calıstırılabilir dosya olusucak.
Artık ilkprogramım.exe yazarak programı calıstırabiliriz.

arkadaşlar bir x değişkeni duşunelim.x in değeri herşey olabilir.harf,rakan,sayı.ama biz şu an oncelikle x

i sayı değişkeni olarak
tanımlayacağız.
İlk oğrendiklerimize şu kodları ekleyelim.

x=3;
printf(x);
Yukarıdaki kodları araya sokuverin.Daha sonra compile etmeye calışın.Calışın diyorum cunku compile

edemeyceksiniz.
Cunku biz burada kafamıza gore bir harfe değer vermeye kalktık.c nerden bilcek bizim buna sayı değeri

vereceğimizi,belkide
ben buraya harf değeri vercem.İşte c de boyle karışıklıklar olmaması icin değişkenler vardır.Bizim en cok

kullanacağımız değişkenler:
int: integer tam sayı değişkeni
char: character yani harf değerleri
double ise virgullu sayı.
Biz şimdilik tam sayı değiişkeni olan x uzerinde duracağız.Orn:
int x; diyerek bir x değişkeni tanımlayabilirz.Ama bu değişkenler uzerinde kontrol yapabilmemiz icide bazı

operatorler vardır:
+:toplama ve birbirine ekleme operatoru
-:eksiltme
*:carpma
/:bolme
%:bolmede kalanı verme.
=:değer atama ve eşitleme operatoru.Bizim şu an konumuz tam sayı olduğu icin bunları bilmemiz şimdilik

kafi

şu kodları yazalım:

#include

main()

Şimdi.İlk satırlardaki olayları gecen derste acıkladıdydık zaten.int x, y; diyerek x ve y tam sayı

değişkeni olarak tanımladık.
x=5; diyerek = operaoruyle x e 5 değerini atadık.Daha sonra y=x+1; diyerek y'yi x değerinden +1 fazla ata

dedik.
printf icerisinde "%d" gibi bir ifade var.Burada da ekrana y değerini verdikki programın cıktısı 6

olcaktır.
Burada ,y ile y tamsayısını oku denmektedir.
Peki buradaki %d ne oluyor???printf ile burada ekrana bir cıktı vermek istiyoruz yine.Ama sadece x bir tam

sayıdır demek
yeterli değildir.printf e de okunacak olan değerin hakkında bilgi verek gerekir.Buda bicimleme

belirtecleriyle olur:
%d:tam sayı oku
%c:karakter
%f:kayen noktalı sayı
%s:karakter katarı...
bunlar gibi bir cok belirtec var arkaşlar.sırası geldimi bunlarada değincez.buradaki %d de bir tam sayı oku

demektir.Ynai
printf("%d", y); turkce meali y tam sayısının değerini oku!Bu kadar basit arkadaşlar.Şimdi ise şu kodları

yazalım ve derleyelim:

#include
main()

şimdi değerli oğrenciler))burada karşımıza şu ana kadar hic cıkmayan bir fonksyon var . scanf. nedir bu

scanf??
scanf input yani girdi alır.Yani bu nedemektir arkadaşlar scanf burada x e değer ataycaktır.Yani bir girdi

alcaktır x değeri icin.
Peki scanf in yapısını biraz inceleyelim:
Aynen printf gibi meali ise şoyle olabilir: "x in değeri icin girdi al.x'e işle."zira program compile

edilip calıştırıldığında ekran duracak
sizin bir değer girip enter basmanızı beklicekti.scanf icerisindeki &x ise değişik bir ifade.& "nın adresi"
gibi bir anlama sahiptir.x'e girilen değeri işlemek icin & kullancas.Yani &x x'in adresi gibi bir anlama

gelir.
sora grdiğiniz değeri tekrar size gostercektir.yani scanf printf gibi kullanılır şindiliki.
burada printf i biraz değişik kullandık."" işaretleri arasına cumle yazdık araya %d sıkıştırdık.Burada x

değeri %d nin aldığı yere
cıktı olarak verilecektir.yani x'e 5 değeri verdiğinizi varsayarsak cıktı "x'in degeri 5 dir"

olacaktır.yani bu araya cumle de dıpabiliriz.

pritf kullanımında ki bazı inceliklere değincem şimdi.orneğin biz printf ile alt alta satırlarda yazı

yazdırmak istiyoruz.İşte o zaman
\n operatorunu kullancaz.Yani;
printf("amca\namca");
cıktı şoyle olacaktır.
amca
amca

bu rada \n satırı alta gecirmek icin kullancamız operatordur.%d yi zaten anlatmıştım ders ikide.Ama şole

bir durum soz konusu
oldu diyelim:Ben printfe iki tan sayı yazdırmak istiyom.Hatırlarsanız %d olan kısma sayı değeri kendini

yazdırırdı.
mesela şoyle bi şey desek:

int x=4, y=3;
printf("deger %d",y,x);

Burada c hangi değeri yazacakki %d ye sadece bir değeri oraya yazcak.o değerde y olacak neden cunku ilk

sırada y yer alıyor.
Ama şu şekilde bir değişiklikle;
printf("deger %d %d",y,x);
dersek hem y hemde x değeri ekrana verilecektir.

scanf de de aynı şey gecerlidir:
scanf("%d", &y, &x ); gibi bir ifade yanlış olur.Bunun yerine
scanf("%d %d"&x,&y); ikisi icinde değerlerimizi girebiliriz.Eğer &y ile &x arasına "," koymasa idik

değerleri 12 gibi yanyana
yazmak zorunda kalcaktık.

şimdi sıra geldi sorgu yapmak icin kullanabileceğimiz kontrol ifadesi if-else yapısına;orneği inceleyelim.

if(i==3)


yukarıda if(i==3) diyerek eğer i 3 değerine eşitse parantezler arasındaki işlemleri gercekleştir

demektir. arasına işlemlerimizi
yazarız.birde else vardırki buda değilse olarak kullanılır yani;

if(i==3)
else

burada i 3 değerine eşit olmadığı zaman else ifadesinin icerisindeki değerler işletilmeye başlanır.else

değilse anlamına getirilebiri.
if-else yapısını şu orneğimizle inceleyelim;

#include
main()
else
}

gibi.Sıra geldi switch e.Switch de aynen if gibi daha cok sorgulama işlemi yapmak icin kullanılır.Yani

orneğimize bakalım:

#include
main()
}

Yukarıyı sırasıyla inceleyek.ilk 4 satırı zaten biliyonuz.Gelelim switc(x) dedimiz yere.Burada switche

kontrol etmesi gereken
değişkenin adını soledik daha sonra parantezleri icerisine case1: deidk.case 1 x 1 e eşitse

demektir.yani case burada
sorgulama yapan kişidr))bir cok koşul ifadesi kullancağımız zaman switche başvurailiriz.

sıra geldi while dongusune.Dongu nedir derseniz kendisine verilen işlemleri tekrarlatılması gereken sayıda

tekrarlayan
yapılar diyebiliriz.Orneğimizi inceleyebilirz.

#include
main()
}

yukarıda while(x