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 silin

Builder olmayan arkadaşlar compiler ın adnı yazın.Şimdi 0 dan başlayalı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

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

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