Anasayfa > Programlama > Turbo C

Turbo C




C++ PROGRAMLAMA DİLİ

 

 

GİRİŞ

 

C, 1970’li yılların başlarında AT&T Bell laboratuarlarında geliştirilmiş bir programlama dilidir. Kendisinden önceki B dili üzerine kurulu olmasından dolayı bu isim verilmiştir. Kısa sürede özellikle üniversite ve askeri çalışmalarda büyük projelerde kullanılmaya başlandı. C’nin en büyük özelliği sistem programlarının geliştirilmesinde kullanılmasıdır. İşletim sistemlerinin hazırlanmasında makine dili olan Assembler tercih edilmiştir. En yaygın işletim sistemlerinden olan UNIX ise büyük bir oranda C dili kullanılarak hazırlanmıştır. Bu da C dilinin önemini oldukça arttırmıştır.

 

C programlama dili yapısal bir dildir. Yapısal programlama dilleri yapı ve temel komutlar bakımından birbirlerine benzerler. Tüm yapısal programlama dillerinde olduğu gibi, C’de yazılan programlar da bloklar halinde yazılırlar. Buna en büyük örnek Turbo Pascal’dır. Turbo Pascal ile C/C++ arasında çok benzerlikler bulunmaktadır. Turbo Pascal kullanıcıları için C’de program yazmak çok daha kolaydır.

 

 

ÖZEL SEMBOLLER VE C KELİMELERİ

 

 

  • Bir C programı içerisinde, A’dan Z’ye büyük harfler , a’dan z’ye küçük harfler (Türkçe karakterler hariç) ve 0’dan 9’a kadar rakamlar kullanılır.
  • Program içerisinde tek başına kullanılan özel karakterler.

 

.      !     ~    +    -    &    *     /     %    ^     |     =

 

 

  =

Eşitliğin sağ tarafında verilen ifadeyi sol taraftaki değişkene aktarır.

 &

Bit seviyesinde AND(VE) operatörü

  |

Bit seviyesinde OR(VEYA) operatörü

  ^

Bit seviyesinde XOR operatörü

  +

Toplama operatörü

  -

Çıkarma operatörü

  /

Bölme operatörü

  %

Modüler bölme operatörü. Bölme işleminde kalanı verir.

 ~

Bit seviyesinde komplementini ( 0 bitini 1,1 bitini 0 yapar) alma

 !

Mantıksal değil(NOT)

 

 

 

 

 

 

TANITICI İSİMLERİ

 

Program içerisinde kullanılan değişken, sabit, fonksiyon gibi isimleri için kullanılan ve programcı tarafından belirlenen özel isimlerdir. Özellikleri aşağıda verilmiştir.

 

  1. Harf veya _(alt çizgi karakteri) ile başlamalıdır.
  2. İlk karakterden sonra rakam ve altçizgi karakterleri kullanılabilir.
  3. İçerisinde Türkçe karakter, boşluk ve özel karakter bulunamaz.
  4. Bir C kelimesi olamaz.
  5. Küçük harf ve büyük harf ayırımı yapılmaktadır. X ile x değişkenleri aynı değildir. Aynı şekilde maas ve Maas değişkenleri de aynı değildir. Bu ifadelerin her biri faklı hafıza alanlarına karşılık gelir.

 

TEMEL VERİ TİPLERİ

 

C programlama dilinde kullanılan temel veri tipleri char, int, Float ve double’dır. Ancak bu veri tiplerinin önüne short , unsigned ve long kelimeleri kullanılarak değişik veri tipleri meydana getirilebilir.

C ve C++ derleyicilerinde kullanılan veri tipleri arasında bazı faklılıklar olmakla birlikte, kullanılan temel veri tipleri aşağıdaki tabloda verilmiştir.

 

Tip Adı

Uzunluk

Sınırlar

Alt Sınır

Üst sınır

Enum

16 bit

-32,768

32,767

Unsigned int

16 bit

0

65,535

Short int

16 bit

-32,768

32,767

Int

16 bit

-32,768

32,767

Unsigned long

32 bit

0

4,294,967,295

Long

32 bit

-2,147,483,648

2,147,483,647

Float

32 bit

3.4 x 10-38

3.4 x 10 +38

Double

64 bit

1.7 x 10 -308

1.7 x 10  +308

Long double

80 bit

3.4 x 10 -4932

1.1 x 10 +4932

Unsigned char

8 bits

0

255

char

8 bits

-128

127

 

 

int ……………….: Tamsayı tipte bilgiler için kullanılır. Sınırları kullanılan C Derleyicisine göre farklılık gösterebilir. Sıralı bir tiptir.

 

long ……………...: Tamsayı tipte bilgiler için kullanılır. Sıralı bir tiptir. Long int tipi ile aynıdır.

 

float………………: Ondalıklı sayılar için kullanılır. Tek inceliklidir.

 

double……………: Ondalıklı sayılar için kullanılır. Çift inceliklidir.

 

char………………: ASCII karakterleri ve çok küçük sayılar için kullanılır. (String bilgiler için dizi olarak kullanılır.)

unsigned…………: Unsigned belli veri tiplerinin işaretsiz değerler almasını sağlamak için kullanılır. Örneğin; unsigned int veri tipi 0-65,535 arasında değerler alır. Dikkat edilecek olunursa negatif kısım pozitif kısma eklenmiş. Unsigned char , int ve long türleri için uygulanabilir.

 

 

 

DEĞİŞKEN TANIMLAMA

 

Değişken, bilgileri tutmak için kullanılan ve programcı tarafından tanıtıcı isimleri özelliklerine göre verilen özel isimlerdir. Her değişken belirli bir veri tipine (int,long,char,…) sahip olmalıdır.

 

Değişkenleri tanımlamak için aşağıdaki yazılım şekli kullanılır:

 

Veri Tipi   Değişken Adı1[, Değişken Adı2,…];

 

Örnek:

 

int sayı;

int x,y;

char c;

float maas;

double faktoryel,toplam,kup;

 

DEĞİŞKENLERE DEĞER ATAMA

 

Bir değişkene değer atamak için = operatörü kullanılır. Değişkene değer atama işlemleri tanımlama sırasında yapılabileceği gibi, programın uygun yerlerinde de yapılabilir. Tanımlama sırasında yapılan atama ‘İlk değer atama’  olarak kabul edilir.

 

Tanımlama sırasında değer atama işlemleri aşağıdaki gibi yapılabilir:

 

char cevap=’E’;

int sayi=100;

 

Aynı anda birden fazla değişkene değer ataması yapılabilir:

 

int i , j , k;

:

int i = j = k = 6354;

 

 

 

 

 

 

SABIT TANIMLAMA

 

Program başından sonuna kadar değeri değişmeyen isimlerdir. Değişkenlerin sahip oldukları değerler program içerisinde istenildiği gibi değiştirilebilir.Ancak sabitlerin değerleri program içerisinde değiştirilemez.

 

Sabit tanımlamak için const kelimesi kullanilir. Bunun yazilimi;

 

Const tipadi = deger;

 

Örnek:

 

const float pi=3.14285;

const char sifre[ ] = “Sakarya”;

const int elsay=20;

 

OPERATORLER

 

Bir veya daha fazla bilgi uzerinde ilsem yapilmasini ve sonucta yeni degerler uretilmesini saglayan programlama diline ozgu sembollere operator denir. Operatorler bir veya daha fazla karakterden olusabilir. C programlama dilinde kullanim amaclarina gore aritmetik, mantiksal , karsilastirma ve bit seviyesinde ilsem yapan oparetorler vardir.

 

 

Atama operatoru(=)

 

Bir degiskene, bir ifadeyi (ilsem,sabit veya degisken ) atamak icin kullanilir. = operatoru, sag taraftaki ifadeyi sol taraftaki degiskene aktarir.

 

m=63;   è  m degiskenin degeri 63 olur.

 

m=x+5;  è m degiskenin degeri m+5 isleminin sonucu olur.

 

Aritmetik operatorler

 

Temel aritmetik islemelrin yapilmasini saglayan operatorlerdir.

 

Operator        Tanimi                                    Operator        Tanimi

 

      +               Toplama                                        %              Bölme işleminde kalan

     -               Çıkarma                                       +=              Ekleyerek atama

              *            Çarpma                                        -=               Çıkararak atama         

                  /                 Bölme                                          *=              Çarparak atama

                 ++              Bir arttırma                                    /=              Bölerek atama

                  --               Bir azatma                                    %=             Bölerek kalanını atama

 

 

 

 

Karsilastirma operatorleri

 

Karsıilastirma islemlerinin yapilmasini saglayan operatorlerdir.

 

            Operator                    Tanimi

              

               = =                           Eşit

               ! =                            Farkli

                <                             Kucuk

                >                             Buyuk

   <=                            Kucuk esit

   >=                            Buyuk esit

 

Mantiksal (lojik) operatorler

 

Mantiksal islemlerde sart sayisinin birden fazla olmasi durumunda bu sart ifadeleri arasina mantiksal operatorler kullanilarak tek sart durumuna getirilir ve sartin tumleyeneni alir.

 

 

            &&         : VE(AND)  anlamindadir.

            ||              : VEYA(OR)  anlamindadir.

!           : DEGİL(NOT) anlamindadir. Sartin dogru olmasi durumunda yanlis, yanlis olmasi durumunda ise dogru sonuc uretir.

 

Bit seviyesinde ilsem yapan operatorler

 

Bir bitin degeri ya  0(sifir)  yada 1’dir

 

& Operatoru  : Bit seviyesinde AND(VE) islemi yapar.

|   Operatoru  : Bit seviyesinde OR(VEYA) islemi yapar.

^  Operatoru  : Bit seviyesinde XOR islemi yapar.

~  Operatoru  : Bit seviyesinde NOT(degil) islemi yapar.

<< Operatoru :  Sola kaydirma (left shift) operatoru olarak kullanilir.

>> Operatoru :  Saga kaydirma (right shift) operatoru olarak kullanilir.

 

GIRIS- CIKIS FONKSIYONLARI

 

printf                                                                                                                                          

 

Belirtilen sabit, degisken veya islem sonuclarini standart cikis birimine gondermek amaciyla kullanilir.  

 

Yazılımı:

 

            int printf(const  * format [, argı,umanlar,….] )

 

 

Örnek:

 

void  main()

{

            printf(“C programlama ogreniyorum\n”);

}

 

 

Kontrol

karakteri

 

İslevi

 

\n

\t

\r

\v

      \b

\f

 

 

Imlecin bir sonraki satira gecmesini saglar (newline)

Imlecin ayni satir uzerinde bir sonraki tab noktasina gitmesini saglar.

Ayni satir uzerinde satir basina donmeyi saglar.

        Imlecin uzerinde bulundugu satir degistirilmeden bir sonraki satira gecmesini saglar.

        Imlecin bir karakter geri gelmesini saglar.

        Bir sonraki sayfanin basina gidilmesini saglar.Sayfa atlama.

 

 

 

sprintf

 

Formatlanmış bilgiyi ekran yerine belirtilen string değişkene aktarır. Kullanım olarak printf fonksiyonu gibi işlem görür.

 

Yazılımı :

 

            int sprintf(char *degisken1, const char *degisken2 [,argument,…] );

 

Örnek :

 

            #include

            #include

            main()

            {

                        char str[80];

                        int x=63;

                        sprintf(“str,”x değişkeninin değeri %d\n “, x”);

                        printf(“%s”, str);

                        getch();

            }

 

 

puts

 

Belirtilen bilgiyi standart çıkış aygıtına gönderir. \n (yeni satır) karakterini ilave eder. İşlemin başarılı olması durumunda en son yazılan karakteri verir. Hata oluşması durumunda ise EOF değerini döndürür.

Yazılımı :

 

            int puts ( cost char *degisken)

 

Örnek :

 

            # include

# include

main ()

{

            char str [80];

            char num[] = “9905010231”;

            int vize = 63, final = 55;

            float ort;

 

            ort = (vize+final)  / 2.0;

            sprintf ( str,“Öğrencinin Numarası:%s”,num);

           

            puts (str);

            sprintf ( str,”Vize notu  : %d”, vize);

            puts (str) ;

            sprintf ( str,”Final notu : %d”, vize);

            puts (str);

            sprintf ( str,”Ortalama  : %d”, vize);

            puts (str);

            getch();

}

 

scanf

 

Standart giriş aygıtından (klavye , ekran) bilgi okumak için kullanılır.Bu  fonksiyon karakterleri tek tek okur ve herhangi birini veya herhangi bir kombinasyonunu verilen formata göre düzenleyerek belirtilen argümanlara aktarır.

 

Yazılımı :

 

            int  scanf (const char * degisken [, argüman1,…..] );

 

Örnek :

 

#include

#include

main ()

{

            char ad [20] ;

            printf (“Adınız :”);   scanf (“%s”,ad);

            printf (  “Merhaba %s Nasılsın \n”,ad) ;

            getch();

}

 

Örnek :

 

#include

#include

main ()

{

            int x,y,t;

            printf (“İki sayı giriniz :”); scanf (“%d   %d”, &x ,&y);

            printf (“ 1. sayı             : %d \n ”,x);

            printf (“ 2. sayı             : %d \n ”,y);

            t= x+y ;

            printf (“Toplam            : %d \n” , t );

            getch();

}

 

gets

 

Bu fonksiyon ile standart giriş biriminden \n (yeni satır ) karakteri girilinceye kadar karakter okumak için kullanılır.

 

Scanf fonksiyonu ile bilgi okuma işlemleri yapılabilir. Ancak scanf fonksiyonu ile bilgi okuma işlemi sadece bir kelime ile sınırlıdır. Örneğin , bir ad soyad, adres veya açıklama gibi bilgiler içerisinde mutlaka boşluk bulunmalıdır. Cgets fonksiyonu ise belirtilen sayıda karakter okumak mümkündür. Okuma işlemi yeni satır işaretine (\n) kadardır.

 

Yazılımı :

 

            char *gets ( char *string)

           

Örnek :

 

#include

#include

main ()

{

            char adsoy [30];

            char adres [50];

           

            printf( “Ad soyad  :”); gets (adsoy);

            printf(“Adres         :”); gets (adres);

 

            printf(“Girilen Ad soyad : %s \n”, adsoy);

            printf(“Girilen  Adres      : %s \n”, adres);

 

            getch();

}

 

cgets

 

Girilecek  karakter sayısını kontrol ederek, string bilgi okumak için kullanılır

Yazılımı :

 

·                                char * cgets  (char * degisken) ;

·                     

·                    Örnek :

·                     

#include

#include

main ()

{

·                                char isim [30] ;

·                                char *p ;

·                                isim[0] = 10 ;

·                               

·                    printf (“Ad soyad giriniz : ”);

·                    p= cgets (isim);

·                    printf (“\n”);

·                    printf (“Girilen ad soyad   : %s \n ”,isim);

·                    printf (“Fonksiyon değeri : %s \n ”, p);

·                    printf (“Karakter sayısı     : %d \n”, isim[0] );

·                    printf (“İzmir”);

·                     

·                                getch();

·                    }

·                     

·                     

PROGRAM KONTROL DEYİMLERİ

·                     

·                    Bazı ifade ya da ifadelerin yerine getirilmesi belirli şart ya da şartlara bağlı olabilir. Bu durumda program içerisinde bu tip ifadeleri işlemeden önce gerekli şartların kontrol edilmesi gerekir. Yapılan kontrolle şartın doğru ya da yanlış olup olmadığı araştırılır, bu sonuca göre ifadeler çalıştırılır ya da çalıştırılmaz.

·                     

IF Deyimi

 

 

if (şart)  ifade

 

if (a>10) printf( “activate 10’dan büyüktür.”);

 

 

 

 

 

if (şart)

{

ifade 1

ifade 2

……..

      }          

 

 

                   if (şart)                                            if (a> 0 || a= =0 )     

                     {                                                        {

                         ifade 1                                               printf (“ a sıfırdan büyük”) ;

                         ifade 2                                               a = 1;

                      }                                                        }

                            else                                                 else

                     {                                                        {

                         ifade 3                                               printf (“ a sıfırdan küçük”);

                         ……..                                                a= -1;

                      }              &nbs