PAPATYAYAYINCILIKEĞİTİM

   - akademik, bilimsel ve üniversite ders kitapları, bizim asıl işimiz -

 Ana Sayfa

Hakkımızda


e-Kitap Projesi


Kitap Listesi

Hazırlanan Kitaplar

Satış/Pazarlama


Çalışmak


İletişim/Bize Ulaşın


Periyodik Dergi

Post-Edu Enstitüsü

Kitap Fuarları

Kurumsal Hizmetler

Türkiye'nin İnternet Kitapçısı'nda tüm akademik kitaplar

www.tdk.com.tr

Yayınevimiz

www.ebandrol.net

üyesidir.

Fiyat Listesi (PDF)

Op. Dr. Kağan KOCATEPE

- Hamilelik Kitapları  -

Op. Dr. Kağan KOCATEPE

Kitapların Tüm Listesi

Açıklamalı Kitap Listesi

e-Kitap Çalışmalarımız

 

Türkiye'de "e-Kitap/e-Book" Araştırması ve Uygulaması. Ayrıntılı Bilgi için tıklayınız.

Akademik/periyodik dergi çıkartıyoruz. Ayrıntı için buraya tıklayınız.

- Kitap Dağıtım -

İstanbul-Cağaloğlu

Tel: (212) 527 52 96

Faks: (212) 527 52 97

C Programlama Dili 

Dr. Rifat ÇÖLKESEN

 

 

13. Basim; kitabimiz 59 üniversitede ders kitabi seçilmistir.

 

 

C dilini ögrenmenin en kolay yolu...

 

Bu kitap C dilini ögretmek üzere tasarlanmis olup X3J11 grubunun belirledigi standart olan ANSI C temel alinmistir; standart C içerisinde tanimli bütün C fonksiyonlari ayrintili olarak ele alinarak, ayni zamanda bir basvuru kitabi olma özelligi kazandirilmistir. Kitap, hangi programlama diliyle olursa olsun program gelistiren yazilimcilarin basvuru kitabi gibi yararlanabilecegi; ve üniversitelerin Bilgisayar, Elektronik, Elektrik, Fizik, Matematik ve Endüstri bölümlerinde okutulan C programlama dersi için ders kitabi olabilecek niteliktedir.  

Kitap herbiri farkli konulara odaklanmaya çalisilan 16 Bölüm ve 2 Ekten olusmaktadir. C dilinin bu kitapla ögrenilmesi için bütün bölümler sirayla okumali, örnek olarak verilen programlar dikkatle incelenmeli ve sorular yanitlanmaya çalisilmalidir. Verilen örnekler ANSI C'yi destekleyen herhangi bir derleyicide derlenebilir sekildedir.

Kitabin ilk dört bölümünde, C’yi yeni ögrenenler için degiskenler, sabitler, operatörler ve program denetim deyimleri gibi C dilinin temel yapi taslari verilmektedir; 5. Bölüm ise C fonksiyon yapisini ayrintili olarak ele almakta ve Bölüm 6’da Standart C’de tanimli bütün fonksiyonlar açiklanmaktadir. Sirasiyla 7, 8, 9, 10, 11 ve 12. Bölümlerde Diziler, Isaretçiler (pointers) Katarlar (strings) ve Yapisal Veri Tipleri ele alinmistir. Onüçüncü bölümde ise Disk Dosyalari  üzerinde durulmustur; dosyanin açilmasi, dosyaya erisilmesi ve kapatilmasi için kullanilan standart fonksiyonlar ve UNIX isletim sisteminin disk dosyasi için kullanilan sistem çagrilari da bu bölümde verilmistir. Ondördüncü bölümde esnek ve tasinabilir program tasarimina imkan veren önislemçi komutlari, onbesinci bölümde ise seri haberlesme için gerekli program yapisi ele alinmistir. Onaltinci bölümde, gerçeklenmesi C derleyicisi hazirlayanlara birakilan, bir standart belirlenmeyen Grafik Fonksiyonlar üzerinedir. Bu bölümde grafikle ilgili  bazi kavramlar verilmis ve Turbo C 2.0 paketinin grafik fonksiyonlari tanitilmistir.

Eklerde ise, önce bir C programinin nasil derlenecegi/çalistirilacagi üzerinde durulmus ve ardindan ASCII çizelge verilmistir. Bir C programinin PC tabanli bir isletim sisteminde ve UNIX isletim sisteminde nasil derlenecegi ve çalistirilacagi açiklanmistir.

Bölüm 10’da büyükçe sayilabilecek 3 tane örnek verilmis ve adim adim açiklanmistir; hemen hemen C dilinin tüm özellikleri kullanilmaya çalisilmistir. Ayni uygulama, dizi, baglantili liste ve ikili agaç modeline göre uygulanarak adim adim açiklanmis ve aralarindaki farklara deginilmistir. Bu içerigiyle kitap, C dilini ögrenmek isteyenler ve C dilinde basvuru kitabina ihtiyaç duyacak programcilar ve sistem yöneticileri için ciddi bir kitap niteligindedir.

 


Türkiye'nin İnternet kitapçısı ---> www.tdk.com.tr    Şimdi satın al


 

ÖNSÖZ

Sanirim C dilinin varligini UNIX isletim sistemine borçluyuz. Bu isletim sistemini uygun bir yüksek düzey dil kullanarak yazmak isteyen Dennis Ritchie, bundan 20 yil kadar önce Bell Laboratuvarlarinda C adini verdigi yepyeni bir dili yaratti. C dili ilk kez yazarin "The C Programming Language" isimli yayiniyla tanitildi (1978). Geçen zaman içinde C, dünyanin hemen tüm dil­lerinde pek çok kitaba konu oldu.

Bugün C derleyicisinin mikro sistemlerden süper bilgisayarlara kadar her düzeydeki mimari için, kullaniciya makinenin dogal ve vazgeçilmez bir parçasi olarak sunulduguna tanik olmaktayiz. Önceleri çok övülen ve parlak bir gelecek öngörülen pek çok dil bugün yavas yavas solarken, C'nin belki yaraticisinin bile düslemedigi yükselisi, acaba neden?

* Sistem programcilarina düsüncelerini çok kisa ve öz biçimde kodlamayi saglayan bir araç oldugu için mi?

*  Içerdigi güçlü operatörler nedeniyle mi?

* Basarili standartlasma sonucu program tasinabilirliliginin çok büyük ölçüde saglanmis olmasindan mi?

*  Gerektiginde donanima kolayca ve dogrudan erisebilmeyi olanakli kilmasindan mi?

* Ya da UNIX'in yazildiktan hemen sonra üniversitelerde sinirsizca kullanilmaya ve didiklenmeye özendirilmesinin bir sonucu mu?

Saydigim etkenlerin mutlaka herbirinin, C dilinin bugünkü durumuna ulasmasinda az ya da çok katkisi oldu.

Günümüz bilgisayar kullanicisi, eristigi sistem boyutu ve sistemi kullanmadaki amaci ne olursa olsun, mutlaka öyle ya da böyle C dilinde program yazmaktan kaçinamayacaktir. O halde, C dilinin kurallarini çok iyi özümsemek zorundayiz. C derleyicilerinin basvuru kitap­larinin bunun için dogru bir baslangiç noktasi oldugunu hiç sanmiyorum. Bu kitaplarin buz gibi soguk diline ancak profesyoneller katlanabilir. Herhalde bu dili ögrettigini savlayan bir ders kitabi ile ise baslamak çok daha iyi bir yaklasim sayilmalidir. Ama acaba hangisi ile? Geçerli yabanci dillerde titizlikle hazir­lanmis bir çok C kitabi var. Ancak bu kitaplar insanin kendi dilinde yazili bir kitaptan alacagi hazzi, hele kisi o dile yeterince hakim de degilse verebilecek mi? Daha da ötesi bizler C üzerinde tartismalarimizi yabanci bir dilde mi yapacagiz?

Bugün teknik dallardaki eğitmenler Türkçe kitap yazmaktan çekiniyor, çünkü Türkçe karsiligi belirli olmayan onlarca sözcüge ya benimsenecegi pek süpheli karsiliklar önermek, ya da "save etmek" gibi gariplikler türetmek ikilemiyle karsi karsiya gelmek istemiyor. Elinizdeki kitap gelecekte pek çok basarili yayinlara da imza atacagina inandigim, çok sevdigim bir genç meslektasim tarafindan hazirlandi. Bu meslektasim büyük bir titizlikle pek çok kaynagi tarayarak, kitabin düzenlenisi, örneklerin seçimi, uygun Türkçe sözcüklerin türetilmesi alanlarinda, çevresindeki pek çok bilgili ve deneyimli kisi ile de yakin bir diyalog kurarak, bence çok kapsamli bir eser hazirladi. Kendisini kutlar, bu kitabin alanindaki bir boslugu doldurduguna yürekten inandigimi belirtmek isterim. - Prof.Dr. Bülent ÖRENCİK

  


 

 

IÇINDEKILER

 

BÖLÜM 1. Giriş

Tarihçe

Standart C ve ANSI C

Kitap Üzerine

Bölümler

C Dili Anahtar Sözcükleri

Ekler

 

BÖLÜM 2. C Fonksiyonları

2.1. C Fonksiyonlarinin Genel Yapisi

2.2. main() Fonksiyonu

2.3. Özet

2.4. Sorular

 

BÖLÜM 3. Degişkenler, Sabitler ve Operatörler

3.1. Degiskenler

3.1.1. Temel Degisken Tipleri

3.1.2. Degiskenlerin Bildirim Yerleri ve Türleri

Yerel Bildirim

Genel Bildirim

Formal Bildirim

Dissal (Extern) Bildirim

Statik (Static) Degisken Bildirimi

Saklayici Tipli (Register) Degisken Bildirimi

volatile Tipli Degisken Bildirimi

3.1.3. Degiskenlere Baslangiç Degeri Verilmesi

3.2. Sabitler ve Sabit Degerler

Sabit Bildirimi

Sabit Degerler

Tamsayilar

Gerçel Sayilar

Karakterler

3.3. Operatörler

3.3.1. Aritmetik Operatörler

3.3.2. Karsilastirma Operatörleri

3.3.3. Mantiksal Operatörleri 46

3.3.4. Bitler üzerinde islem yapan (bitwise) Operatörler

3.3.5. Diger Operatörler

( atama, bitisik atama, ?, *, & ve sizeof )

Atama Operatörleri

?: Karsilastirma Operatörü

& ve * Isarteçi Operatörleri

sizeof Operatörü

3.4. Operatörlerin Öncelikleri ve Bagintilar

3.5. Bagintilarda Tip Dönüsümleri

3.6. Özet

3.7. Sorular

 

BÖLÜM 4. Program Denetim Deyimleri

4.1. Karsilastirma Deyimleri

4.1.1. if, if-else

4.1.2. switch

4.2. Döngü Deyimleri

4.2.1. while

4.2.2. do...while

4.2.3. for

4.3. break ve continue Deyimleri

4.3.1. break

4.3.2. continue

4.4. goto Deyimi ve Etiket

4.5. Özet

4.6. Sorular

 

BÖLÜM 5. Fonksiyonlar

5.1. Fonksiyonlarin Ayrintilari

Fonksiyonlarin Tanimlanmasi ve Bildirimi

Fonksiyona Parametre Aktarimi

main() Fonksiyonuna Parametre Aktarimi

Fonksiyonlarin Isaretçiyle Çagrilmasi

Ayni Fonksiyona Farkli Sayida Arguman Aktarimi

5.2. Rekürsif Fonksiyonlar

5.3. Baslik Dosyalari (*.h)

5.3.1. Makro ile Kütüphane Fonksiyonu Arasindaki Fark

5.3.2. Standart Baslik Dosyalari

5.3.3. Özel Baslik Dosyasi Olusturma

5.4. Özet

5.5. Sorular

 

BÖLÜM 6. Hazır Kütüphane Fonksiyonları

6.1. Karakterler Üzerinde Islem Yapan Fonk. <ctype.h>

6.2. Katarlar Üzerinde ve Bellek A. Isl. Yapan Fonksiyonlar <string.h>

6.3. Standart Giris Çikis Fonksiyonlari <stdio.h>

6.4. Matematiksel Fonksiyonlar <math.h>

6.5. Genel Amaçli Fonksiyonlar <stdlib.h>

6.6. Esnek Arguman Fonksiyonlari <stdarg.h>

6.7. Zaman ve Tarih Fonksiyonlari <time.h>

6.8. Yerel Olmayan Dallanma Fonksiyonlari <setjmp.h>

6.9. Ayricalikli Durum Kontrolu <signal.h>

6.10. Hata Ayiklama Fonksiyonlari <assert.h>

6.11. Yerellestirme Fonksiyonlari <locale.h>

6.12. Özet

6.11. Sorular

 

BÖLÜM 7. Diziler

7.1. Bir Boyutlu Diziler

7.2. Matrisler

7.3. Çok Boyutlu Diziler

7.4. Dizilere Baslangiç Degeri Verilmesi

7.5. Dizilerin Fonksiyona Aktarilmasi

7.6. Dizi Uygulama Örnekleri

Kabarcik Siralamasi (Bubble Sort) , Hizli Siralama (Quicksort)

Ikili Arama (Binary Search), Matris Toplama

Mat. Satirlarini Toplayip Vektöre Atama, Matris Çarpma

Yigin / Kuyruk Yapisi

Varyans / Standart Sapma

7.7. Özet

7.8. Sorular

 

BÖLÜM 8. Işaretçiler

8.1. Isaretçi Bildirimi ve Kullanimi

8.2. Isaretçi Aritmetigi

8.3. Isaretçilerin Karsilastirilmasi

8.4. Isaretçi ve Diziler Arasindaki Iliski

8.5. Dinamik Diziler

8.6. Tipi Isaretçi Olan Fonksiyonlar

8.7. Özet

8.8. Sorular

 

BÖLÜM 9. Katarlar (Strings)

9.1. Katar Bildirimi

9.2. Katarlara Baslangiç Degeri Verilmesi

9.3. Katar Dizileri

9.4. Bazi Katar Fonksiyonlarin Tanimlanmasi

9.5. Özet

9.6. Sorular

 

BÖLÜM 10. Yapısal Veri Tipleri

10.1. typedef Deyimi

10.2. Topluluk (struct) Deyimi

Topluluk Bildirimi ve Kullanimi

Topluluk Üyelerine Baslangiç Degeri Verilmesi

Toplulugun Fonksiyonlar ile Kullanimi

10.3. Büyükçe Örnek 1: struct Dizisi Kullanimi

10.4. Büyükçe Örnek 2: Dogrusal Baglantili Liste Uyg.

10.5. Büyükçe Örnek 3: Ikili Agaç Uygulamasi

10.6. Ortaklik (union) Deyimi

10.7. Özet

10.8. Sorular

 

BÖLÜM 11. Yeni Veri Türü Oluşturmak

11.1. Yeni Veri Türü  Tanimlamak

11.2. Yeni Kümenin Elemanlari ve Atama

11.3. Özet

11.4. Sorular

 

 BÖLÜM 12. bit Düzeyinde (bitwise) Çalışmak

12.1. bit Düzeyinde Degisken Bildirimi

12.2. bitlere Erisim

12.3. Özet

12.4. Sorular

 

BÖLÜM 13. Disk Dosyaları

Metin Dosyasi – Ikili Dosya

13.1. Üst Düzey Dosya Yapisi

Dosyanin Açilmasi

Dosyanin Kapatilmasi

Dosyaya Karakter Düzeyinde Erismek

Dosyaya Karakter Katari Düzeyinde Erismek

Dosyaya Formatli Erisim

Dosyaya Toplu Erisim

Dosya Içeriklerine Dogrudan Erisim

13.2. Alt Düzey (UNIX Benzeri) Dosya Yapisi

Dosyanin Açilmasi

Dosyanin Kapatilmasi

Dosyaya Erisme

Dosya Içindekilere Dogrudan Erisim

13.3. Standart Giris Çikislar

13.4. Özet

13.5. Sorular

 

BÖLÜM 14. C Dili Önişlemci Komutları

14.1. #define Önislemci Komutu

14.2. #undef Önislemci Komutu

14.3. #include Önislemci Komutu

14.4. #if, #endif, #elif, #ifdef, #ifndef Önislemci Komutu

14.5. #line Önislemci Komutu

14.6. #error ve #pragma Önislemci Komutlari

14.7. Özet

14.8. Sorular

 

 BÖLÜM 15. Seri Iletisim Fonksiyonları

15.1. Seri Iletisim Temeli ve C Fonksiyonlari

15.2. Örnek Program

15.3. Özet

15.4. Sorular

 

 BÖLÜM 16. Grafige Bir Bakış

Renk Kümesi, Sayfa, En Son Parlatilan Nokta

16.1. Çizim Moduna Geçmek

16.2. Grafik Fonksiyonlar

16.2.1. Çizim Fonksiyonlari

16.2.2. Taramali Çizim Fonksiyonlari

16.2.3. Durum Degiskenlerini Degistirme Fonksiyonlari

16.2.4. Sorgulama Fonksiyonlari

16.2.5. Yazim Fonksiyonlari

16.2.6. Hata Yönetimi Fonksiyonlari

16.2.7. Diger Fonksiyonlar

16.3. Özet

16.4 Sorular

  

EK A: Programın Derlenmesi ve Çalıştırılması

EK B: ASCII Çizelgesi

KAYNAKÇA

DIZIN