İşte C Programlama Dili 

Temel Konular - ANSI C - Disk Dosyaları - Grafik Fonksiyonlar - Sistem Çağrıları

Toros Rifat ÇÖLKESEN

 

 

 

 

 

 

 

 

 C dilini öğrenmenin en kolay yolu...

 

ISBN: 978-975-6797-03-7  16. basım  Şubar 2020

376 sayfa, (16,5x24 cm2), 80 gr 1. hamur kağıt.      hemen al         in the best seller list


Bu kitabımız 112 üniversitede ders kitabı olarak kullanılmaktadır.


Ülkemizde büyük kabul gören ve hemen hemen herkesin referans olarak gösterdiği bu eser “C programlama Dili”ni öğretmek üzere hazırlanmıştır.  Amacı, bu konuda bir standart ANSI C’yi temel alarak, günümüzdeki bütün modern programlama dillerine yol gösteren C Programlama Dili’ni öğretmek ve ciddi bir temel kazandırmaktır.

 Kitapta, C Programlama Dili’nin değişkenleri, veri türleri, operatörleri, döngü deyimleri ve karşılaştırma deyimleri gibi konularda temel bilgiler verilmiş, sonra ileri düzey sayılabilecek konular ve sistem programlamada kullanılan kütüphane fonksiyonları (sistem çağrıları) da ele alınmıştır. Örneğin, ANSI C’de bulunan tüm kütüphane fonksiyonlarına ek olarak UNIX işletim sisteminin disk dosyalarında kullanılan sistem çağrıları, bir C derleyici paketinin grafik ve port erişim fonksiyonları da incelenmiştir. 

 Bu kitap, “C Programlama Dili”ni hem öğrenmek hem de bu konuda derinlemesine bilgi edinmek isteyenlere önerilmektedir.


http://www.tdk.com.tr/images_buyuk/f67/Algoritma-Gelistirme-ve-Veri-Yap_5767_1.jpg


Kitap hakkında...

"C Programlama Dili" adlı kitabımız herbiri farklı konulara odaklanmaya çalışılan 16 Bölüm ve 2 Ek olarak düzenlenmiştir. C dilinin bu kitapla öğrenilmesi için bütün bölümler sırayla okumalı, örnek olarak verilen programlar dikkatle incelenmeli ve sorular yanıtlanmaya çalışılmalıdır. Verilen örnekler ANSI C'yi destekleyen herhangi bir derleyicide derlenebilir şekildedir.

Kitabın ilk dört bölümünde, C’yi yeni öğrenenler için değişkenler, sabitler, operatörler ve program denetim deyimleri gibi C dilinin temel yapı taşları verilmektedir; 5. Bölüm ise C fonksiyon Yapısını ayrıntılı olarak ele almakta ve Bölüm 6’da Standart C’de tanınmlı bütün fonksiyonlar açıklanmaktadır. Sırasıyla 7, 8, 9, 10, 11 ve 12. Bölümlerde Diziler, İşaretçiler (pointers) Katarlar/Sözceler (strings) ve Yapısal Veri Tipleri ele alınmıştır. Onüçüncü bölümde ise Disk Dosyaları  üzerinde durulmustur; dosyanın açılması, dosyaya erişilmesi ve kapatılması için kullanılan standart fonksiyonlar ve UNIX işletim sisteminin disk dosyası için kullanılan sistem çağriları da bu bölümde verilmiştir. Ondördüncü bölümde esnek ve taşınabilir program tasarımına imkan veren önişlemçi komutları, onbesinci bölümde ise seri haberleşme (seri port, RS232) için gerekli program yapısı ele alınmıştır. Onaltıncı bölümde, gerçeklenmesi C derleyicisi hazırlayanlara bırakılan, bir standart belirlenmeyen Grafik Fonksiyonlar üzerinedir. Bu bölümde grafikle ilgili  bazı kavramlar verilmiş ve ilgili fonksiyonlar tanıtılmıştır.

Eklerde ise, önce bir C programinin nasil derleneceği/çalıştırılacağı üzerinde durulmuş ve ardından ASCII çizelge verilmiştir. Bir C programının PC tabanlı bir işletim sisteminde ve UNIX işletim sisteminde nasıl derleneceği ve çalıştırılacağı açıklanmıştır.

Bölüm 10’da büyükçe sayılabilecek üç tane örnek verilmiş ve adım adım açıklanmıştır; hemen hemen C dilinin tüm özellikleri kullanilmaya çalışılmıştır. Ayni uygulama dizi, bağlantılı liste ve ikili ağaç modeline göre uygulanarak adım adım açıklanmış ve aralarındaki farklara değinilmiştir. Bu içerigiyle kitap, C dilini öğrenmek isteyenler ve C dilinde başvuru kitabına ihtiyaç duyacak programcılar ve sistem yöneticileri için ciddi bir kitap niteligindedir.


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


 

ÖNSÖZ

(...) Günümüz bilgisayar kullanıcısı, eriştiği sistem boyutu ve sistemi kullanmadaki amacı ne olursa olsun, mutlaka öyle ya da böyle C dilinde program yazmaktan kaçınamayacaktır. O halde, C dilinin kurallarını çok iyi özümsemek zorundayız. C derleyicilerinin başvuru kitaplarının bunun için doğru bir başlangıç noktası olduğunu hiç sanmıyorum. Bu kitapların buz gibi soğuk diline ancak profesyoneller katlanabilir. Herhalde bu dili öğrettigini savlayan bir ders kitabi ile işe başlamak çok daha iyi bir yaklaşım sayılmalıdır. Ama acaba hangisi ile? Geçerli yabancı dillerde titizlikle hazır­lanmış birçok C kitabı var. Ancak bu kitaplar insanın kendi dilinde yazılı bir kitaptan alacağı hazzı, hele kişi o dile yeterince hakim de değilse verebilecek mi? Daha da ötesi bizler C üzerinde tartışmalarımızı yabancı bir dilde mi yapacağız?

Bugün teknik dallardaki eğitmenler Türkçe kitap yazmaktan çekiniyor, çünkü Türkçe karşılığı belirli olmayan onlarca sözcüğe ya benimsenecegi pek şüpheli karşılıklar önermek, ya da "save etmek" gibi gariplikler türetmek ikilemiyle karşı karşıya gelmek istemiyor. Elinizdeki kitap gelecekte pekçok başarılı yayınlara da imza atacağına inandığım, çok sevdiğim bir meslektaşım tarafından hazırlandı. Bu meslektaşım büyük bir titizlikle pekçok kaynağı tarayarak, kitabın düzenlenişi, örneklerin seçimi, uygun Türkçe sözcüklerin türetilmesi alanlarında, çevresindeki pekçok bilgili ve deneyimli kişi ile de yakın bir diyalog kurarak, bence çok kapsamli bir eser hazırladı. Kendisini kutlar, bu kitabın alanındaki bir boşluğu doldurduğuna yürekten inandığımı belirtmek isterim. - Prof.Dr. Bülent ÖRENCİK


 

İÇİNDEKİLER

 

 

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 Fonksiyonlarınin Genel Yapısı

2.2. main() Fonksiyonu

2.3. Özet

2.4. Sorular

 

BÖLÜM 3. Değişkenler, Sabitler ve Operatörler

3.1. Değişkenler

3.1.1. Temel Değişken Tipleri

3.1.2. Değişkenlerin Bildirim Yerleri ve Türleri

Yerel Bildirim

Genel Bildirim

Formal Bildirim

Dışal (Extern) Bildirim

Statik (Static) Değişken Bildirimi

Saklayıcı Tipli (Register) Değişken Bildirimi

volatile Tipli Değişken Bildirimi

3.1.3. Değişkenlere Başlangıç Değeri Verilmesi

3.2. Sabitler ve Sabit Değerler

Sabit Bildirimi

Sabit Değerler

Tamsayılar

Gerçel Sayılar

Karakterler

3.3. Operatörler

3.3.1. Aritmetik Operatörler

3.3.2. Karşılaştırma Operatörleri

3.3.3. Mantiksal Operatörleri 46

3.3.4. Bitler üzerinde işlem yapan (bitwise) Operatörler

3.3.5. Diğer Operatörler

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

Atama Operatörleri

?: Karsilaştırma Operatörü

& ve * Işarteçi Operatörleri

sizeof Operatörü

3.4. Operatörlerin Öncelikleri ve Bağıntılar

3.5. Bağıtılarda Tip Dönüşümleri

3.6. Özet

3.7. Sorular

 

BÖLÜM 4. Program Denetim Deyimleri

4.1. Karşılaştırma 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. Fonksiyonların Ayrıntıları

Fonksiyonların Tanımlanması ve Bildirimi

Fonksiyona Parametre Aktarımı

main() Fonksiyonuna Parametre Aktarimi

Fonksiyonların İşaretçiyle Çağrılması

Aynı Fonksiyona Farkli Sayıda Arguman Aktarımı

5.2. Rekürsif Fonksiyonlar

5.3. Başlık Dosyaları (*.h)

5.3.1. Makro ile Kütüphane Fonksiyonu Arasındaki Fark

5.3.2. Standart Başlık Dosyaları

5.3.3. Özel Başlık Dosyası Oluşturma

5.4. Özet

5.5. Sorular

 

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

6.1. Karakterler Üzerinde Işlem Yapan Fonk. <ctype.h>

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

6.3. Standart Giriş Çikis Fonksiyonları <stdio.h>

6.4. Matematiksel Fonksiyonlar <math.h>

6.5. Genel Amaçlı Fonksiyonlar <stdlib.h>

6.6. Esnek Arguman Fonksiyonları <stdarg.h>

6.7. Zaman ve Tarih Fonksiyonları <time.h>

6.8. Yerel Olmayan Dallanma Fonksiyonları <setjmp.h>

6.9. Ayrıcalıklı Durum Kontrolu <signal.h>

6.10. Hata Ayiklama Fonksiyonları <assert.h>

6.11. Yerelleştirme Fonksiyonları <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 Başlangıç Değeri Verilmesi

7.5. Dizilerin Fonksiyona Aktarılması

7.6. Dizi Uygulama Örnekleri

Kabarcık Sıralaması (Bubble Sort) , Hızlı Sıralama (Quicksort)

Ikili Arama (Binary Search), Matris Toplama

Mat. Satırlarını Toplayıp Vektöre Atama, Matris Çarpma

Yigin / Kuyruk Yapısı

Varyans / Standart Sapma

7.7. Özet

7.8. Sorular

 

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

8.1.  İşaretçi Bildirimi ve Kullanımı

8.2.  İşaretçi Aritmetiği

8.3.  İşaretçilerin Karsilastirilmasi

8.4.  İşaretçi ve Diziler Arasındaki İlişki

8.5.  Dinamik Diziler

8.6.  Tipi İşaretçi Olan Fonksiyonlar

8.7.  Özet

8.8.  Sorular

 

BÖLÜM 9. Katarlar / Sözceler (Strings)

9.1.  Katar/Sözce Bildirimi

9.2.  Katarlara Başlangıç Değeri Verilmesi

9.3.  Katar Dizileri

9.4.  Bazı Katar Fonksiyonların Tanımlanması

9.5.  Özet

9.6.  Sorular

 

BÖLÜM 10. Yapısal Veri Türleri

10.1. typedef Deyimi

10.2. Topluluk (struct) Deyimi

  Topluluk Bildirimi ve Kullanımı

  Topluluk Üyelerine Baslangiç Degeri Verilmesi

  Toplulugun Fonksiyonlar ile Kullanımı

10.3. Büyükçe Örnek 1: struct Dizisi Kullanımı

10.4. Büyükçe Örnek 2: Doğrusal Baglantılı Liste Uygulaması

10.5. Büyükçe Örnek 3: İkili Ağaç Uygulaması

10.6. Ortaklık (union) Deyimi

10.7. Özet

10.8. Sorular

 

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

11.1. Yeni Veri Türü  Tanımlamak

11.2. Yeni Kümenin Elemanları ve Atama

11.3. Özet

11.4. Sorular

 

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

12.1. bit Düzeyinde Değişken Bildirimi

12.2. bitlere Erişim

12.3. Özet

12.4. Sorular

 

BÖLÜM 13. Disk Dosyaları

Metin Dosyası – İkili Dosya

13.1. Üst Düzey Dosya Yapısı

Dosyanın Açılması

Dosyanın Kapatılması

Dosyaya Karakter Düzeyinde Erişmek

Dosyaya Karakter Katarı Düzeyinde Erişmek

Dosyaya Formatlı Erişim

Dosyaya Toplu Erişim

Dosya Içeriklerine Doğrudan Erişim

13.2. Alt Düzey (UNIX Benzeri) Dosya Yapısı

Dosyanın Açılması

Dosyanın Kapatılması

Dosyaya Erişme

Dosya İçindekilere Doğrudan Erişim

13.3. Standart Giriş Çıkışlar

13.4. Özet

13.5. Sorular

 

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

14.1. #define Önişlemci Komutu

14.2. #undef Önişlemci Komutu

14.3. #include Önişlemci Komutu

14.4. #if, #endif, #elif, #ifdef, #ifndef Önişlemci Komutu

14.5. #line Önişlemci Komutu

14.6. #error ve #pragma Önişlemci Komutları

14.7. Özet

14.8. Sorular

 

 BÖLÜM 15. Seri İletişim Fonksiyonları

15.1. Seri İletişim (Seri Port) Temeli ve C Fonksiyonları

15.2. Örnek Program

15.3. Özet

15.4. Sorular

 

 BÖLÜM 16. Grafiğe Bir Bakış

Renk Kümesi, Sayfa, En Son Parlatılan Nokta

16.1. Çizim Moduna Geçmek

16.2. Grafik Fonksiyonlar

16.2.1. Çizim Fonksiyonları

16.2.2. Taramalı Çizim Fonksiyonları

16.2.3. Durum Değişkenlerini Değiştirme Fonksiyonları

16.2.4. Sorgulama Fonksiyonları

16.2.5. Yazim Fonksiyonları

16.2.6. Hata Yönetimi Fonksiyonları

16.2.7. Diğer Fonksiyonlar

16.3. Özet

16.4 Sorular

  

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

EK B: ASCII Çizelgesi

KAYNAKÇA

Dizin


 Akademik bilimsel ve üniversite kitapları; bilişim ve bilgisayar kitapları