Temel C (si) Derslaeri

cz5

New member
Katılım
3 Şub 2008
Mesajlar
2,360
Reaction score
0
Puanları
0
Konum
АБКХАЗİА-АПСНİ
Temel C (si) Dersleri

Öncelikle c (si) den bahsedelim.

Tarihi bizi pek bağlamaz ama dil kültürü olarak yararımıza olacaktır fakat bunu geçiyorum. C Tarihini bilmek yazarken yada ögrenirken bize bir avantaj sağlamaz.

C bir sistem programlama dilidir.Günümüzde uçaklardan - cep telefonlarına kadar bir çok sistemde kullanılır.

C ögrenmeden önce yada (anlamaya başlamadan önce) bilinmesi veya ögrenilmesi gereken şartlar vardır.Peki bu şartları ögrenmeden başlarsam ne olur derseniz

bir noktada tıkanır (ilerleyemez) sıkılırsınız buda isteğininiz azalmasına neden olur.(bence dili ögrenmeye başlamadan önce şartları gerçekleştirin)

Şimdi şartlara bakalım nedir bu şartlar.

1- En önemlisi istek ve azim

2- Binary sayı sistemi ( biz 10 luk (desimal) kullanırız ama bilgisayar kıt kafalı sadece 0 ve 1 anlıyor yani (2 lik sayı sistemi)

3-Algoritma bilgisi (bu şartı daha sonra yada ögrenirkende gerçekleştirebiliriz)


Neler katar bize C

1- Bilgisayarın nasıl işlem yaptığını anlarız

2- Dos (Disk Operating System) ile ilgilenmeye başlar gerçek bir üstat olma yolunda adım atarız

2- PHP,JAVA ve birçok dil C den türediği için ögrenimleri çok çok basit olacaktır.Web de karizmamız artacak söz söyleyebilir durumda olacagız

3- İşletim sistemi ne işe yarar neden bu kadar önemli olduğunu anlarız


Şartlar ok se başlayalım ve ilk programımızı yazalım isterseniz.

Kod:
[COLOR="Red"]
[COLOR="Blue"]#[/COLOR]include[COLOR="Blue"]<[/COLOR]stdio.h[COLOR="Blue"]>[/COLOR]
int main[COLOR="Blue"]()[/COLOR]
[COLOR="Blue"]{[/COLOR]
printf[COLOR="Blue"]([/COLOR][COLOR="Green"]"[/COLOR]ben geldim c sana merhaba [COLOR="Green"]"[/COLOR][COLOR="Blue"])[/COLOR][COLOR="Green"];[/COLOR]
[COLOR="Blue"]}[/COLOR]
[/COLOR]
[COLOR="Blue"]

Biz böyle neler yazdık ne yapmaya çalıştık bu kodlarda nedir.Bu ne işe yarar?

Bilgisayara dedikki ekrana (ben geldim c sana merhaba) yazmasını emrettik oda yazacak.Mecbur çünkü artık ben senin anladığın dili ögreniyorum sende ben ne dersem onu yapacaksın dedik bilgisayara.

Ama nasıl söyledik yazdık da bilgisayar bizi anladı.

#include yazmakla biz bilgisayara
yazdığım programa <stdio.h> dosyasını eklemesini söyledik yani header file bu bizim kütüphanemiz yani yazcağımız programın özelliklerine göre önceden yazılmış fonksiyonların bulunduğu dosya

int main() ile hey bilgisayar program burdan başlar dedik
{
}

bu parantezlerle yazdığımız programın sınırını yada gövdesini belirledik

gövdemizin içinede komutları yazdık yani istediğimiz olayları yani

printf("ben geldim c sana merhaba");

En basit şekilde bilgisayara hükmettik.
[/COLOR]



C de KULLANDIĞIMIZ ÖZEL KARAKTERLER- ATOMLAR ve KAVRAMLAR


C öyle bir dilki yazım hatalarını kesinlikle kabul etmiyor.(A) harfi ile (a) harfi tamamen birbirinden bağımsızdır.

ATOM=Programlama dili için anlam taşıyan en küçük birime atom diyolar.Bizde eyvallah diyoruz.



Yukarda yazdığımız programı bölelim atomlarına

Kod:
 [COLOR="Red"]
# include <    stdio.h     > 
int     
main 
(      
)
 { 
printf    
(          
 "ben geldim c sana merhaba" 
 )  
; 
} 
[/COLOR]

Burda bir hata varmı şimdi.Bilgisayar anlarmı böyle yazımdan.Evet anlar ama c dilini meslek edinmiş vatandaşlar sizi yadırgayabilirler.
Çünkü programın (Readability) okunurluğu kalmamiş olur.Dogrumu valla doğru.
Benden başka insanlarda anlasın dimi cimri olmamak için okunurluk önemlidir.(Sadece ben anlayım yok)

Kullandığımız özel karakterler ise

" iki tırnak
' tek tırnak
! ünlem işareti
^ şapka işareti
# diyez işareti
+ artı
- eksi
$ dolar işareti
% yüzde işareti
& ve işareti
{ } küme işareti
( ) parantez
[ ] köşeli parantez
= eşit işareti
? soru işareti
* yıldız
< > açısal parantez
> büyük işareti
< küçük işareti

Birkaç özel karakter daha var onlarıda ilerde yazacağız.Şimdi bulanmasın kafamız.

BLOK

{

}

parantezleri arasındaki bölgeye blok diyoruz.


FONKSİYON

X();

x bir fonksiyondur nasıl anladık. () parantezi öncesi olduğu için.Fonksiyonlar ( ) ile gösterilir

NESNE

a= 100 ;
b= 800;

a ve b bir nesnedir.Çünkü bellekte yer kaplayan ve içeriklerine ulaşabildiğimiz için.
a nın içeriği 100 ve b nin içeriği 800 dür.

İFADE

d=a*b;

bir fadedir.d diye bir değişken a ve b değişkeninin çarpımının değerini alır.
Değişken( d- a- b birer değişken) operatör (yani kullandığımız karakterler = * ;) ve sabitler (yukarda gördük 800 ve 100 bir sabittir) kombinasyonuna ifade diyoruzzzz





DERLEYİCİLER

Peki biz bu kodları nereye yazacaz ve neden yazacaz dersiniz

Bilgisayarın anladığı dil 0 ve 1 yukardada bahsettik.Bu dile Assembly denir.(Makina dili)

Burda derleyiciler giriyor devreye.Derleyici bizim yazdığımız C kodlarını makina diline(assembly) çevirir.Aksi bir durumda bilgisayar bizi yine anlamayacaktır .Dedikya kıt kafalı diye :durdurun

Peki nerden bulacaz bu derleyicileri.En basiti ve kolayı DEV C++ dir.Ücretsiz ve nette bol bulunur.Tabi başka derleyicilerde mevcut.

Kütüphane dosyasına (header file) ihtiyaç duydugunuzda DEV C++ kendi sitesinden rahat bir şekilde temin ediliyor.Türkçe olarakta dil seçeneği mevcut.




VERİ ve NESNE TÜRLERİ

int =Tam sayıları kapsar.100 300 500 gibi.

Char=Karekterleri kapsar. a b c d gibi

float=Ondalıklı sayıları kapsar. (6.765) (9.1) (3.2) gibi.

Ana veri türleri olarak bunlardır.Birde bunlarda atl sınıfları mevcuttur.Ama neden bunlarda alt sınıflara bölünmüş ?

Demiştikya bellekte yer kaplar bunlar.Bellekte kapladıkları yere göre sınıflandırılılar.

-----------int veri türünün alt sınıflarına bakalım----------

int(TAM SAYI) türü bellekte 16 bit yani 2 bayt yer kaplar.Sınırı ise -32768 ile + 32 767 dir.

Nerden çıktı bu - 32768 ile + 32767 . İşte burda bit bayt ve binary sistem ( 2 li sayı sistemi) devreye girdi.Demiştikya.Şartlardan biriydi.

unsigned int(İŞARETSİZ TAM SAYI)Buda 16 bit yani 2 bayt yer kaplar ama sınırı 0 ile 65535 dir.- (eksi) bir sayı verilemez tür olarak.

long int(İŞARETLİ TAM SAYI)Bu ise 32 bit yani 4 bayt yer kaplar.Sınırı ise - 2.147.483.648 ile + 2.147.483.647 dir.



 
on numara anlatmışşın yeni başlayanlar için baya güzel. hiç bu programlama dilini bilmediğim halde anladım devamı gelirse çok güzel olur :victory

:clap :clap :clap :clap :clap :clap :clap
 


short int(KISA TAM SAYI)yeni işlemci mimarilerinde (80x86) 32 bit yani 4 bayt yer

kaplar.Sınır değerleri int tamsayı ile aynıdır.(Bu veri türünün yerine int kullanılması tavsiye edilir)

char(KARKTERLER)Bu veri türü 8 bit yani 1 bayt yer kaplar.Sınır değeri -128 ile 127

arasındadır.char veri türüde int veri türünden bellekte saklanır.Nedeni ise her karakterin sayısal bir değeri vardır(ascii hatırlayın)


Bu yazdıklarımızın hepsi tam sayı türü.Birde gerçek sayılar var.(ondalıklı sayılar)

------------------float,double,long doubleondalıklı sayılar-------------------

float(ONDALIK) veri türü 32 bit yani 4 bayt yer kaplar.(3.7 -567.9876 gibi)

double(ONDALIK) veri türü 64 bit yani 8 bayt yer kaplarki bu türle büyük sayılarda işlem yapılabilir.(hassas olarak)

long double(ONDALIK) veri türü taşınabilir olmadığı için pek tercih edilmez.80 bit yer kaplar 10 bayt.



İnt veri türünün 2 çeşidi vardır.işaretli(signed) ve işaretsiz(unsigned) olmak üzere.Yukarda belirttiğimiz int veri türlerinin hepsi işaretli(signed)tir.

İşaretli olması türün (-) eksi ve (+) artı değer alacağını İşaretsiz olması ise sadece artı değer (eksi değer alamayacağını) gösterir.

Peki eksi değer alamıyorsa nereye kayboldu eksi bölge dersiniz.İşte burda eksi değer artı değer tafına geçiyor.signed char değeri - 128 ile + 127 di ya hani.unsigned char ise sadece (+) artı değer alacağı için eksi bölge artı bölgeye geçirilir.Sınırı + 255 olur.Tamsayı türlerinin hepsinde geçerlidir.Ondalıklı sayılarda unsigned yoktur.


NOT=Bu verilerin değerlerinin hepsi işletim sistemi ve işlemcilerde farklı olabilir.Ama % 90 aynıdır.


 
sağolasın emeğine sağlık.
 
Geri
Üst