Akademik - Bilimsel - Üniversite Ders Kitapları                             Farkımız kitaplarımızda...

 Ana Sayfa

Hakkımızda

Kitaplarımız

Hazırlanan Kitaplar

Satış/Dağıtım

Çalışmak

İletişim

Periyodik Dergi

Post-Edu Enstitüsü

Kitap Fuarları

Kurumsal Hizmetler

- bilgisayar -

C# Programlama Dili

 

- hukuk -

Borca Aykırılık ve Sonuçları

- hamilelik rehberi -

9 Ay 10 Gün

Çocuk Kitaplarında

dörtkardeş yayınevi

Edebiyat Kitaplarında

Toroslu Kitaplığı

Sektörel Eğitim Enstitüsü

üniversitenin de ötesi

Aradığınız kitaplar için:

- dağıtım -

İstanbul-Cağaloğlu

Tel: (212) 527 52 96

Faks: (212) 527 52 97

 

Adana-İstikal Cad.

Tel: (322) 432 00 73

Faks: (322) 432 00 74

 

İstanbul-Taksim (Gümüşsuyu)

Tel: (212) 245 37 40

Faks: (212) 245 37 41

Fiyat Listesi (Excel Dosyası)

C Programlama Dili 

Dr. Rifat ÇÖLKESEN

 

11. Basim; kitabimiz 53 ü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.

 

 

Ö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 egitmenler 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 ÖRENCIK

  

 

 

IÇINDEKILER

 

BÖLÜM 1. Giris

Tarihçe

Standart C ve ANSI C

Kitap Üzerine

Bölümler

C Dili Anahtar Sözcükleri

Ekler

 

BÖLÜM 2. C Fonksiyonlari

2.1. C Fonksiyonlarinin Genel Yapisi

2.2. main() Fonksiyonu

2.3. Özet

2.4. Sorular

 

BÖLÜM 3. Degiskenler, 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. Hazir Kütüphane Fonksiyonlari

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. Isaretç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

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. Yapisal 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ü Olusturmak

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) Çalismak

12.1. bit Düzeyinde Degisken Bildirimi

12.2. bitlere Erisim

12.3. Özet

12.4. Sorular

 

BÖLÜM 13. Disk Dosyalari

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 Önislemci Komutlari

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 Fonksiyonlari

15.1. Seri Iletisim Temeli ve C Fonksiyonlari

15.2. Örnek Program

15.3. Özet

15.4. Sorular

 

 BÖLÜM 16. Grafige Bir Bakis

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: Programin Derlenmesi ve Çalistirilmasi

EK B: ASCII Çizelgesi

KAYNAKÇA

DIZIN

 

 


Yayinevimizin konuyla ilgili eserleri:

Bilgisayar Mühendisligine Giris Ortak; bölüm yazarli (Editör: Dr. Rifat ÇÖLKESEN)

Veritabani ve Uygulamalari Yilmaz KAYA ve Ramazan TEKIN

Sistem Analizi ve Tasarimi (Bilgisayar Bilimlerinde) Prof.Dr. Oya KALIPSIZ ve ark.

Yazilim Mühendisligi   Dr.Erhan SARIDOGAN

C++ ve Nesneye Yönelik  Programlama   Dr.Erhan SARIDOGAN

Programlama Sanati Algoritmalar (C Uyarlamasi)  Dr.Cengiz UGURKAYA (Editör)

Programlama Sanati Algoritmalar (JAVA  Uyarlamasi)  Dr.Rifat ÇÖLKESEN (Editör)

C Programlama Dili - Iste C    Dr.Rifat ÇÖLKESEN

Uygulamali C Programlama Dili   Bora TUNCER

Veri Yapilari ve Algoritmalar  Dr.Rifat ÇÖLKESEN

Veri Yapilari Algoritma Temelleri Dr.Sefer KURNAZ

MATLAB KILAVUZU   Dr.Aslan INAN

JAVA ve Yazilim Tasarimi    Altug B. ALTINTAS

Linux Altinda Programlama   Ali VARDAR

GTK/GNOME Programlama   Ali VARDAR