soyluhack
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Turba C Hakkında Genel Bilgiler

Aşağa gitmek

Turba C Hakkında Genel Bilgiler Empty Turba C Hakkında Genel Bilgiler

Mesaj tarafından ufukkucukcavus Perş. Mayıs 01, 2008 10:44 am

Turbo C dili 1970’li yılların başında AT&T bell labaratuvarında Dennis M.Ritcheie tarafından yaratıldı. Dilin C olarak adlandırılmasının sebebi, kendinden önceki B dili üzerine kurulu bir yapı oluşturmasıdır. UNIX işletim sistemi için yaratılan C dili, ilk başlarda sadece bell labaratuvarında kullanıldı. Daha sonraları laboratuvardan dışarı çıkarak akadamik düzeydeki çalışmalarda ve büyük askeri projelerde kullanılmaya başlandı.

Programcılar tarafından kullanılmasıda yavaş yavaş oldu. C dilinin tanınmasında en önemli adım 1978’de Dennis M.Ritche ve Brain W.Kernighan tarafından "C Programing Language" adlı kitabın yayınlanması olmuştur. C dilinin gelişmesi gün geçtikçe artmıştır.

C’de diğer sistemlere adapte edilebilen büyük programlar hızlı bir şekilde kolaylıkla yazılabildiği için, C’nin kullanımı özelikle sistem programlamalarında önemli olmuştur.

Çogu işletim sistemi Assembler ile yazıldığı için makineye büyük ölçüde bağımlıdır. Buna karşın UNIX işletim sisteminin büyük bir kısmı C ile yazıdığından UNIX’in çeşitli uygulamaları çok sayıdaki bilgisayarlara uyarlanmış ve UNIX’in farklı farklı makinalara uygulanmasındaki makineye olan bağımlılık azaltılmıştır.

C dili nispeten küçük bir dilde güç ve verimliliği birleştirmek için planlanmıştır.C dili giriş ve çıkış, değerler için hafızada yer ayrılması, ekran işlemleri ve işlem kontrolü gibi işleri yerine getirmek için gerekli fonksiyonları içermez.

Yüksek seviyeli programlama dilerinin çoğunda proğramların yapılması sırasında bazı kısıtlamalar vardır. Proğramcının bu engeli aşması için ya yeni algoritmalar oluşturması ya da Assembler’a yakın komutları kullanması gerekir. Bu da bilgisayar başına büyük bir zaman kaybı meydana getirir.

C’de durum daha farklıdır. C dilinin esnek bir yapıya sahip olmasından dolayı yüksek seviyeli bir dilin yapabileceği işlemleri ve düşük seviyeli bir dil olan Assembler’in bir çok işlemlerini zengin işlemci grubu ve geniş fonksiyon kütüphaneleri vasıtasıyla kolaylıkla yerine getirilebilir.

C’de yapılan proğramlar Assembler’a göre daha kısa zamanda yazılabilir, daha anlaşılır ve hata daha azdır. Bu durum C dili Assembler yerine tercih edilmesi yeterli olmuştur.

1980’ne kadar hemen hemen tüm uygulama proğramları Assembler ile yazılmasına karşın, bugünlerde C’ye doğru hızlı bir yönelim vardır.

C dilinin önemli özelliklerinden bir diğeri ifadelerden , tasarruf sağlanmasıdır. Normal olarak matematiksel ifadeler C’nin zengin operatörleri vasıtasıyla çok daha kısa ve basit bir biçime getirilebilir. Böylelikle C proğramcıları klavyelerinin başında daha az zaman harcarlar.


Turbo C ye başlarken;

printfin kullanımı :

Turbo C’de bir değişkenin veya işlemin değerini ekrana yazmak için kullanılan fonksiyonların tümünün çıkış kaynağı printf fonksiyonudur. Bu fonksiyonun yapısı basitçe aşagıdaki gibidir...

printf(format stringi,değer listesi) >> yazdırmayı sağlar.

Çıkış Format Karakterleri :

%d....: İşaretli tamsayıyı ifade eder.
%u....: İşaretsiz tamsayıyı ifade eder,

%f.....: Gerçel sayıları ifade eder.
%e....: Üssel gerçel sayıyı ifade eder.
%/d ..: Long tamsayıyı ifade eder.
%/f....: Double gerçel sayıyı ifade eder.
%c.......: Tek karakteri ifade eder.
%s.......: String karakteri ifade eder



Bir de kullanılan kütüphaneler vardır örneğin maths.h kütüphanesi matematiksel işlem yaptığımızda programın başına #include "maths.h" diye yazılır böylece o kütüphane içindeki işlemler programımıza eklenir.

Örnek program:

#include
main()
{printf("aa program girişi aan")
printf("x = %dty =%u n",x,y)
printf("123456789r 987654321n")
printf("101 = x041 = %c n",65)
}

scanf : >> girilen ifadelerin okunmasını sağlar sonra printf ile bunları yazdırırız.

C’de bir değişken alanlarına bir değer okumak için kullanılan fonksiyonların tümü scanf() fonksiyonuna benzer. Bu fonksiyonun yapısı basitçe aşagıdaki gibidir.

scanf(format stringi, adres listesi)

Örnek program >> programı derleyiciye yazıp ne yapmayı çalıştığını anlayın.

#include
float i,j;
main()
{printf("x değerini girin");scanf("%f",&i);
printf("y değerini girin");scanf("%f,&j);
printf("x+1=%f,y-1=%f",i+1,j-1);
}

Operatörler :

Operatörler belli bir amaca yönelik olarak bir bilgiyi daha değişik bir forma sokan veya iki bilgiden yeni bir bilgi elde etmesini sağlayan sembolik araçlardır. Bunların en yaygın olarak olarak kullanılanı matemetiksel operatörler olan toplama, çıkartma, bölme, çarpmadır. Turbo C’de operatörler genel olarak üç ana guruba ayrılabilir.

Aritmetiksel Operatörler :

Bu operatörler nümerik değerlerin işlenmesinde kullanırlar.

*,/,%,+,-,++,--,&,|,^,~,<<,>>,+=,-=,*=,/=,%=,>>=,

Aritmetiksel Operatörler :

Yukarıdaki iki guruba ek olarak C’de bazı özel operatörler vardır.

= Atama operatörü
?: Üçlü koşul operatörü

& Adres operatörü
* Dolaylı operatörü
; İfade sonu operatörü
, Virgül operatörü

Örnekler....:

a=4,b=5 ise
c=a++ +b; c=9,a=5,b=5
c=++a +b--; c=10,a=5,a=5
c=--a +b--; c=8,a=3,b=5
c=a+ ++a-b--; c=4,a=5,b=5
c=a+ a++ -b--; c=3,a=4,b=5

a=++a +a= 10
a=++a +a--= 9
a=++a*--a= 12
a=a++/a--= 1

Pointerlar:

Turbo C’ye yeni başlayanlar için pointerlerin kullanılması çok karmaşık ve sıkıcı görünmektedir. Bunlar proğramcıların pointerlarla deneyimlerinin olmayışı veya kullanılan bilgilerin işlenmesinde pointerların kullanımının gereksiz olduğunun düşünülmesinden kaynaklanmaktadır. C ile çalışan kişilerde belli bir c proğram mantığı oluştuktan sonra profesyonel proğramcılığa geçişte pointerlerların kullanımına büyük bir gereksinim vardır. Bu yüzden pointerların çok iyi bir şekilde bilinmesi gerekir. Her bilgisayar dili bir pointera sahiptir.

Tanım olarak bir pointer bir değişkenin adresini içeren değişkendir. Tipik bir bilgisayar ayrı ayrı veya bitişik guruplar halinde idare edilebilen ardışık olarak sayılaştırılmış veya adreslenmiş hafıza hücrelerinin bir dizisine sahiptir. Her pointer bir başka bellek hücresini gösteren bir hafıza alanıdır.

char c=’a’;
char *p;

Burada c char tipinde bir değişken ve p char tipinde bir pointer tanımlanmıştır. Pointer tanımlamaları daima değişken isminin soluna (*) asteriks işareti konarak yapılır.

Program Kontrol İfadeleri:

If İfadeleri:

If ifadesinin en basit yapısı aşğıdaki gibidir.

if (şart testi) ifade;

Örneğin...:
if (a>10) printf("a>10");

Burada "a>10" stringinin ekrana basılması için gerekli şart (a>10) a degerinin 10 dan büyük omasıdır. Eğer a=10 veya a<10 olursa şart yanlış olacak ve "a>10" ekrana basılmayacaktır.

If-Else İfadeleri:

Yukarıdaki if ifadesinde şart testinin doğru olması durumunda ifade veya ifade bloğu icra görülüyor. Yanlış olması durumunda if’den sonra gelen ifade işleme alınıyordu.

if (sart testi) ifade_1;
else ifade_2;
Örneğin...:

if (a>0) sonuc = log(a);
else printf("a için hatalı giriş, log(%f) hesaplanamaz",a);

if-else if
if (şart testi)
{ ifade bloğu }
else if (şart testi)
{ ifade bloğu }
else if (şart testi)
:
:
else {ifade bloğu}

şifre proğramı
#include
#include
#define sifre 4040
int tahmin;
main()
{ tekrar;
printf("şifre için bir şey giriniz");
scanf("%d",&tahmin);
if (tahmin==sifre)
{printf("şifre doğru");
}
else if (tahmin>sifre)
{printf("tahmininiz şifreden büyük");
goto tekrar;
}
else
{printf("tahmininiz şifreden büyük");
}
return0;
getch();
}

[/b] Döngü Komutları: [/b]

For Döngüsü:

Bu döngü şart doğru olduğu sürece döngüyü sürdürüyor. yanlış olduğu zaman döngüden çıkıyor.

For (başlangıç ; şart ; artım ;

for (i=3; ;++i)
{
if(şart )break;
}

While döngüsü:

While döngüsünde şart testi döngü başındadır. Bu yüzden döngü içersine girmeden şart testi kontrol edilir. Şart testi doğru ise döngüye girilir ve döngü içersindeki ifade veya ifade bloğunun icrası yapılır. Bu ifadelerin icrasından sonra tekrar şart testinin yapıldığı döngü başına gidilir. Bu işlemler şart testinin yanlış olmasına kadar devam eder. Şart testi yanlış olduğunda döngüden çıkılır. While döngüsünün basit yapısı aşağıdaki gibidir.

while(şart testi) ifade;
örneğin...:
#include (stdio.h)
#include (conio.h)
char ch;
main()
{
while (ch=getch())!=’e’)
printf("döngünün içindesin");
printf("döngünün dışındasın");
return0;
}

Do-While Döngüsü:

Eğer ifade bloğu en az bir defa işlem görecekse veya kontrol parametreleri, işlem gören ifadelerden elde edilecekse do-while yapısı kullanılabilir. Bu ifadenin basit yapısı aşagıdaki gibidir.

do
ifade
while(şart testi);

Şart testi döngünün sonunda yapıldığı, için bu döngüdeki yani do-while arasındaki ifade en az bir defa icra görür. Bu döngüden şart testi yanlış olduğu zaman çıkılabilir. Eğer do-while arasında birden fazla ifade yazılması gerekiyorsa o zaman aşağıdaki genel formu kullanılır.

do {
ifade_1;
ifade_2;
:
:
ifade_n;
} while (şart testi);

örneğin.....:
#include
int x,y;
main()
{
x=y=0;
do { ++x; ++y
printf("%d+%d=%dn",x,y,++y);
}
while(x<=5);
return0;
}

Break İfadesinin kullanımı

Break ifadesi sadece do-while, while,for ve switch ifade bloğundaki işlemi belirli bir yerde kırmak için kullanılır. Break’in kullanılması ile işlem sırası, kırılan ifade bloğundan sonra gelen ifadeye geçer.

for (başlangıç ; şart ; artım)
{
:
:
if(şart)break;
:
}
ifade;

Burada döngü sonuna ulaşmadan önce istenilen önce istenilen diğer bir şartın sağlanması ile döngüden break kullanılarak çıkılır.

Örneğin....:
#include
int a,b,i;
float oran;
main()
{
for (i=0;i<=5;++i)
{
printf("a ve b değerlerini girin");
scanf("%d %d",&a,&b);
if (b==0) break;
oran=a/b;printf("a/b=%dn",oran);
}
return0;
}

ÖRNEKLER:

#include
int i,k,fak;
float e;
main()
{
e=o;
printf("bir sayı gir");scanf("%d",&k)
for (i=0;i<=k;++i)
{
for (j=0;j<=i;++j)
{
if (j==0)fak=1;
}
e=e+(1/fak);
}
return0;
}


#include
#include
int i,k;
float e,m;
main()
{
k=34;
for (i=1,e=m=1,i<=k;++i);
e+=1/(m*=i);
printf("e=%fn",e);
getch() return0;
}


#include
int i,j,a,b,c;
int topla()
{
i++;j--;return i*a-j*b;
}
main()
{
i=0;j=10;a=2;b=3;
while(j)
c=topla();
printf("%dn",c);
}
return0;
}


#include
void max(int a;int b);
{
printf("max=%dn",(a>b)?(a) : (b));
}
int i,j,k;
main()
{
i=10;j015;max(i,j);
return0
}


#include
int x=5;
void a();
{
statik int x=0;
printf("statik x’in şuanki değeri:%dn",x);
x--;
a();

}

ufukkucukcavus
Admin

Mesaj Sayısı : 780
Kayıt tarihi : 30/04/08
Yaş : 32
Nerden : Regedit

https://soyluhack.yetkin-forum.com

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

Sayfa başına dön

- Similar topics

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