C dili hakkında genel bilgiler

Önceki başlık Sonraki başlık Aşağa gitmek

C dili hakkında genel bilgiler

Mesaj tarafından m@yny@ch Bir Ptsi 26 Şub. 2007, 6:08 pm

KISIM 1:

bazı bilgiler vereyim;
C dili windowsun yazıldığı temel dillerden biridir. sadece C dili kullanılmaz, bazı yan dil dallarıda vardır, mesela; C, C++, C builder, C#, turbo C vs. bir çok program, yazılım ve sistemlerin taban dilini oluşturan bu dil günüzmüzde çok yaygın olarak kullanılmaktadır. bu diller uğraşan kişiler bu dilin bir derya olduğunu ve uğraşan kişilerin hayal güçlerini sonuna kadar zorlayacaklarını belirtmektedir. bütün universitelerde, mühendislik mimarlık fakültelerinde bu ders öğretilmektedir.
windowsun yazıldığı temel dillerden biri olduğunu belirtmiştim, ama sadece C dilleri kullanılmıyor, aynı zamanda Assembly dilide kullanılmaktadır. biraz dos bilginiz varsa bunu beraber test edebiliriz.

xp kullanıcıları başlat-programlar-donatılar-komut istemi
2000 işletim sistemi ve altı için direk dos u açabilirsiniz.

mesela windows işletim sisteminin ana direklerini oluşturan ve programış işleyişini sağlayan üç komut; autoexec.bat , command.com ve io.sys.

bunların içeriğini açtığımız dos penceresinde nasıl görebiliriz?

1- dos komut satırında kök dizine çıkmamız gerekebilir. (bazı komutlar direk olarak C sürücüsü altında çalışıyor olabilir) bunun için karşımıza çıkan ekranda eğer c:\windows\doumantes and settings> yazıyorsa, kök dizine çıkmak için cd\ komutunu yazıyoruz, ve karşımıza C:\> çıkıyor. şimdi C kök dizine çıktık.

2- içeriğini görmek istediğimiz dosyanın tam adını ve uzantısını bilmekte yarar var, mesela ben command.com u seçiyorum, siz çok değişik adda ve uzantıda dosyaları seçebilirsiniz.
c:\>type command.com (enter)
dedikten sonra bilgisayarın sihay ekranında hiç anlamadığımız çeşitli şekiller ve görüntüler çıktı ve sonunda kök dizine otomatik geri döndü. şimdi karşımıza çıkan bu garip şekiller sizce ne olabilir?(1) (xp kullanıcılarında göremeyebilrsiniz, dos eklentisi XP için ayrıca internette vardır.) bu karmaşık şekillere değineceğim, bu arada siz biraz düşünün. şimdi; masa üstünde yeni bir metin belgesi oluşturalım, içine istediğiniz bazı şeyleri yazın, ve kaydedip kapatın. şimdi dos a geri dönelim, ve ana kökte iken şu komutu kullanalım,
c:\> type belgeadı.txt (enter)
enterledikten sonra karşımıza bir hata raporu çıkacaktır? sizce neden? (2)
ŞİMDİ, daha önceden oluşturduğumuz metin belgesini C sürücüsünün içine direk olarak kopyalayın. ve aynı komutu deneyerek içeriğine bakalım,
c:\> type belgeadı.txt (enter)
içeriğine ne yazmışsanız, bu komuttan sonra görebilirsiniz.
gelelim cevaplara ;
1- başta anlaşılmayan garip simgeler, kodlanmış farklı bir dil yapısı olduğunu gösterir. bunu hemen anlayabiliriz, bu kodlanmış ggarip simgeler ASSEMBLY dilidir. ve kaynak kodları kapatılmıştır.
2- göremememizin nedeni ; biz belgemizi masa üstü platformuna açtık, yen işletim sistemlerinde içeriği istenen bir belgenin tam olarak yolu belirtilmelidir.

gelelim C dili ile olan bağlantılarına,
C dili de komlex bir bütünlük biçimidir. kolay öğrenilen bir dil değildir. ama Assembly dili gibi karma karşık simge ve komut guruplarından oluşmaz. bildiğimiz latin alfabesi üzerinde ingilizce dili bütünlemesi ile yazılmış bir taban dilidir. akıllara gelen bir soru : neden ingilizce; ingilizce dünyanın ana dili olarak kabul edilmiştir. evrensel kabul edilmiştir. bu yüzden ingilizce.

C dili bize ne sunar, bizden ne ister, biz neler yapabiliriz, nasıl başlayabiliriz?

C dili belli başlı komut ve kuramlardan oluşmuştur, bize sunduğu hayalimizde yapabileceğimiz bir programı yazmamızı sağlar. görsel nitelikler, oyunlar, resimler ve aklınıza gelen herşey. (burada küçük bir hatırlatma; lütfen type komutu ile bir resmin dos kapsamındaki içeriğine göz atın). tabiki basit olduğunu söyleyemeyiz. ama insan zekası herşeyin üstesinden gelebilecek kadar muazzam.
C dilinin bizden istediği tek şey, gerekli kurallar ve tanımlamaları ifade et, ve sana derlesin, çalıştırsın, hatalarını gör, problemlerini aktarsın, vs vs. sonuca ulaşmanıza yardımcı olacaktır.
C dili ile neler yapabiliriz? windows bu dil ile yazılmış denebilir demiştik, kendinize bir program yazabilirsiniz, nasıl olacağına sizin beyniniz karar versin.
C diline nasıl başlayabiliriz? bu dili öğrenmek basit değildir, ama anne karnında öğrenilmiyor, yapmak gereken bazı şeyler var, birincisi, elimize kitap alıp karıştırmak, (elimden geldiğince buradan yardımcı olacağım bende), ikincisi bir C dilini taşıyan program temin etmek (internetten bulabilirsiniz, boyutu yaklaşık olarak 400-600 mb civarı , tabiki yeni sürümleri), ve azimli olmak.
başladıktan sonra göreceksinizki ilerleme kaydedebiliyorsunuz, ve başlangıç için bayağı hızlı bilgiler ve uğraşımlar hemen sizi belirli kademelere taşıyacakır.

size önerebileceğim güzel bir kitap :
yayımcı: türkmen kitabevi
kitap adı : C ile programlama teknikleri
yazar galip özer
internetten sipariş veriliyormu bilmiyorum ama web adresini sizlere yazayım;
www.turkmenkitabevi.com

gelecek yazımda bu kitaptan ve kendi ders notlarımdan bilgileri paylaşacağım, buradan da takip edebilirisiniz.

CD temini için size yardımcı olabilirim ama kargo parasını siz ödersiniz. veya internetten indirebilirseniz arayın;
"microsoft visiually C 6.0" veya "mic. visually C++ 6.0" vsvs.
ilgilenenler benimle irtibata geçebilir.

KISIM 2:

C İLE İLGİLİ GENEL BİLGİLER:

C komutları main() ile başlar, bu main () en başa yazılacak anlamına gelmez; main() den önce yazılan değimler, tanımlardan ibarettir.

her blok, yani birden fazla komut, { ile başlar ve } ile biter.

main() için herzaman bir blok gereklidir.

klavyeden girilmeyen veya klavyeye basmadan, basılmış kabul edeceğimiz ve kontrol karakteri adını alan karakterler için "\" kullanılır. örneğin; satırbaşı enter tuşu ile gerçekleştirilir. enter tuşuna basmadan satırbaşı yapmak için ekran veya yazıcıya '\n' komutu (n: new line) gönderilebilir.

tüm C komutlarının kendine özgü yazılım kuralları vardır.

her C komutundan sonra ';' konur. (bildirge türünden olan deyimler hariç)

büyük harf ve küçük harf ayrımı önemlidir. CINS, Cins, cins kelimelerinin herbiri C için ayrıdır.

makina yorumu komutlarla olur. fakat bazen program yazan kişi ileride neyi nerde kullandığını hatırlaması için program komutları arasına küçük notlar iliştirebilir. makine bunları dikkate almaz. yorumun başı için '/*' sonu için ise '*/' işareti konur.

C nin kendi kelimeleri çok fazla değildir, şimdi C nin kelimelerini vereyim ( bu kelimler değiştirilemez, amacından farklı kullanılamaz)



kelime
türkçesi




asm
assembly




break
kesme




case
durum




cdecl
C tanımı




char
karakter




const
sabit




enum
numaralı




extern
dış, hariç




far
uzak




float
gerçek sayı




for
için




goto
git




contunie
devam et




default
kabul edilen




do
yap




double
çift




else
aksi halde




register
register, kayıt




return
dönüş




short
kısa




if
eğer




int
tamsayı




long
uzun




struct
yapı




switch
dallanma




void
boş




while
...dıkça, ...dukça



burada bazı gereksiz bilgiler vermek yerine, direk olarak konuya girelim;
bir programı yazmaya başladığımızda elimizdeki yazım dili programının içinde tanımlı olan bazı bilgiler vardır, bunları ayrıca program içinde tanıtmaya gerek yoktur. ayrıca bir programı yazmak için o programı alakadar eden kütüphane terimlerini yazmamız gerekir. ve programın içinde kullanıcı olarak yazdığımız kendi terimlerimizi makineye tanıtmamız ve ne işlem yaptıracağını atamamız gerekecektir.
kütüphane tanımlamasına örnek ;
#include <iosteram.h>
#include <studio.h> vs

yaptığımız tanımlamalara örnek;
mesela ESIR kelimesini bilgisayarın tanıması ve ona işlevseliik yüklememiz için ilk önce onu makineye okutturmamız gerekecektir. sonra işlevsellik yükleyebiliriz.

int sayi;
printf sayi;

KISIM 3:

en kısa program ;

amacımız C ve C ++ da yazılabilecek en küçük programı yazmaktır; nasıl yazarız? önceki bilgilermize dayanarak ;

/* kullanıcı için ilk C programı */
main()
{
printf ("merhaba kullanıcı \n");
}


bu programı C dilinde yazdıktan sonra derleme butonuna bastığımızda; programın çıktısı bize şu şekilde görünecektir:
---------------------------
merhaba kullanıcı
---------------------------

yorum:/* ifadesini belirttiğim gibi kullanıcının program içine yerleştirdiği küçük hatırlatmalar diyebiliriz. makine programı derlerken ve bize çıktıyı gösterirken bunu dikkate almaz.

main() olarak belirttiğimiz, programımızın başlangıç kısmını oluşturdu, açıklamasını önceki derse bakarak anlayabilirisiniz.

bildiğiniz gibi C dili hakkında bilgi verdiğim başta { işareti ve } işareti programın çalıştırılacağı kısımları içine alan bölgeyi gösterir. yani programa bunlarla başladık, ve programı bitirdik,
';' işareti tanımınıda yapmıştım. her yaptığımız şeyden sonra konulması mecburi olan işaretimiz. o komut satırını sonlandıran ve diğer komut satırından başlanılmasını gerektiren bir deyimdir.
printf komutu programın içine girdiğimiz bilgileri direkt olarak çıkış ekranına yazdıracaktır. ve görülmesini sağlayacaktır. (anlamıda zaten çıkışa yazdır)
'\n' ve ya 'endl' komutu aynı işlevi görür.
şimdi programımızı birde C++ da yazalım;

main()
{
cout <<"merhaba kullanıcı"<<endl;
}

programın çıktısı tabiki aynı olacaktır. yani C dili ile C++ dili arasında benzerlikler aşırı derecede görülmektedir. sadece bazı komutların adı farklıdır fakat işlevleri aynıdır. printf ve cout gibi.

şimdi biraz farklı bir örnek göstereyim;

/*verilen iki sayının toplamını aldırmak*/
int sayi1, sayi2, toplam;
/* verilen ilk iki sayı ve iki sayının toplamı için toplam kelimelerini tanıtıyorum, bunu int komutu ile yapıyorum*/
main()
{
printf ("ilk sayıyı giriniz: \n");
scanf ("&d", &sayi1); /*ekrandan girilen ilk sayıyı birinci sayı olarak kabul ecektir.*/
printf ("ikinci sayıyı giriniz: \n");
scanf ("&d", &sayi2); /*ekrandan girilen ikinci sayıyı ikinci sayı olarak kabul ecektir.*/
toplam=sayi1+sayi2; /*toplam yaptırıyoruz*/
printf ("bu iki sayının toplamı : %d ", toplam);
}

ve programımızı bitirdik;
şimdi burda kayda alınması gereken bazı bilgiler var, yani bazı tanımlamalar. bunlarıda gelecek derste anlatacağım.

bu işlemde yaptırdığımız şey; sayi1 sayi2 ve toplam olarak girdiğimiz değerleri makineye söyledik, şimdi makine bu int komutu sayesinde artık bunları tanıyor, ama bizim bunları birde nerede nasıl işlevsellik yaptıcağımızı girmemiz gerekir, bilgisayarın çıktısına bakılınca ilk sayıyı girin dediği yere girdiğimiz herhangi bir sayıyı tam sayı olarak kabul edecek ve scanf komutuyla girdiğimiz sayıyı otomatik olarak sayi1 tanımlamasına atayacaktır.
sonra bizden çıkış ekranında 2. sayıyı girmemizi isteyecek ve girilen 2. sayının ardından onuda sayi2 diye tabir ettiğimiz değere atamasını yapacaktır. sonra geriye kalan işlem sırasında sayi1 ve sayı2 nin toplamını alacak ve çıkış ekranına bu iki sayının toplamı şudur diyecektir. ve ardından herhangi bir tuşa bastığımızdada program kendini sonlandıracaktır.

KISIM 4:

bu bölümde size biraz yardımcı olsun diye bölme işlemini anlatacağım, umarım sizde çarpma işlemini gerçekleştirebilirsiniz. başaramazsanız yardım için nerede takıldığınızı yazabilirsiniz.
bu bölümde bölme işlemini anlatacağım:
----------------------------------
int bolunen,bolen,bolum,kalan,aracı;
main()
{
printf ("boluneni giriniz: ");
scanf ("%d", &bolunen);
git1: printf ("bolen giriniz :");
scanf ("%d", &bolen);
if (bolen==0) goto git1;
bolum=0;
git2: aracı=bolum*bolen;
kalan=bolunen-aracı;
if (kalan>=bolen)
{
bolum=bolum+1;
goto git2;
}
printf ("bulunan bölüm : %d\n", bolum);
printf ("bulunan kalan : %d\n",kalan);
}
-------------------------------------

programımız bu, burda yaptıklarımızı anlatayım, anlaşılmayan yerler sorulabilir. sorularınızı yazabilirsiniz.

int komutu ile işimize yarayacak olan terimleri veya deyimleri makineye tanıttık, yani biz bunları ileride kullanacağız, sen bunları tanı.
main() ile bolgemizin sınırlarını bir nebze belirlemil oluyoruz
printf komutu ile bolunen sayıyı girmek için çıkış ekranına bakıldığında, ilk girilecek (metindende anlaşıacağı gibi) sayıyı bolunen olarak int ile tanıttığımız bolunen deyimine atayacaktır. scanf ile bu durumu atadık, yani bolunen diye tanıttığımız karaktere bir işlevsellik atadık.

git1: program içinde , eğer bölünen hatalı bir sayı girilirse (mesela, bolunenden büyük veya sıfır girilirse) ileride goto komutunu kullanarak kısır döngüyü atlamış olacağız. yani belirlenen hedef sayıların dışında bir rakam girilmesi durumunda program otomatik olarak kendini başa alacak ve tekrar bolen i girmemizi isteyecektir. isteyen buraya "bolunen hatalı girildi" raporunu ekeyebilir. yani içerik işlevselliğini size bırakıyorum.
bolen girildikten sonra scanf ile girilen sayıyı int ile tanıttığımız bolen karakterine atayacaktır.
if komutunun turkce anlamından da anlaşılacağı gibi, eğer bölen =0 olursa git1 diye tanımlı aralığa gidecektir. ve işlemleri tekrarlayacaktır.
Burada dikkat edilmesi gereken bir husus vardır, bir sayının değerini atamak için (mesela bolen==0 gibi) onu iki defa eşittir ile kullanmamız gerekir. iki eşittir ile kullanılan terimin değeri otomatik olarak ona atanmıl olacaktır.
Daha sonra git2 tanımladık, neden? çünkü eğer kalan bölenden büyükse bu işlemi tekrar etmemiz gerekir, buradanda anşalılacağı gibi git2 yi eğer kalan bolenden büyükse işlemi tekrarı için if komutunu kullanarak gerçekleştiriyoruz.
yani ;
kalan>=bolen demek kalanın bolene eşit veya düyük olması durumunda devamlı bu işlemi tekrarla, yani tekrar bol anlamındadır.
daha sonradan açtığımız yeni işlemimiz olan;

{
bolum=bolum+1;
goto git2;
}

işlemi; atanan bolum değerinin kalan değerinden büyük olana kadar bu hem işlemin tekrarı, hemde programın bu işlemi yapması için ayrı bir işlem olarak tanımladık, dikkat ederseniz goto (yani git2 ye gitmek) git2 burada tanıma ve programa eklenmiştir.
daha sonra sonradan açtığımız bu küçük tanım programını başladığımız işaretin tersi ile kapatıyoruz ve asıl başlama işlemimize geri dönmüş oluyoruz, yan ilk başta tanımladığımız işlemi henüz kapatmadık; şimdi:

makinenin işlem sonunda bulduğu değerleri çıkışa yani kullanıcıya görsel olarak sunmamız gerekecek; bunu yapmak içinde şu komutları kullanmıştık;

printf ("bulunan bölüm : %d\n", bolum);
printf ("bulunan kalan : %d\n",kalan);

evet, burada printf komutu (yani çıkışa yazdır, veya ekrana yazdır) komutu ile bulunan kalan ve bölümü çıkşa yazdırmış olduk,
arada kullandığımız aracı diye belirrtiğimiz kelimenin program içindeki işlevselliğini umarım anladınız, aracı diye tanıttığız işlem adını programn içinden görerek ne işe yaradığını ve ne iş yaptığını anlayabilirsiniz, yani;
işlemin sağlamısı niteliğini yaptırdık, bolumle boleni çarparsak, ve kalanı eklersek boluneni veriyormu acaba? vermiyorsa programın içinde veya döngüsellikte bir hata yapmışız anlamına gelir. zaten yapılan hatalar, programın yazımından sonara bilgisayar derleme işlemini yaparken bizim yaptığımız veya makinenin anlamadığı, niteleminin eksik olduğu satır ve kısımları altta hata olarak belirtecektir.
yazdımız bu program çalışıyor, gersine güzel başka eklentiler eklemek size kalmış.

umarım anlaşılmıştır. hesap makinesi programını birde şimdi yazmayı deneyin.
avatar
m@yny@ch
baştacımız
baştacımız

Kadın Mesaj Sayısı : 52
Kayıt tarihi : 25/02/07

Kullanıcı profilini gör

Sayfa başına dön Aşağa gitmek

Önceki başlık Sonraki başlık Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz