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ı)

 

Programlama Sanatı Algoritmalar

- C Programlama Dili Uyarlaması -

Dr. Rifat ÇÖLKESEN -Yazar

Dr.Cengiz UGURKAYA -Editör

Kitabımız 37 üniversitede ders kitabı olarak seçilmiştir.

 

 

Bu kitabımız program tasarimina yeni baslayanlar için programlama temelleri ve mantigini kazandirmak amaciyla hazirlanmistir. Bilindigi gibi programlama dilleri ögrenilmeden önce programlama teknigi ve algoritma tasarimi mantigi ögrenilmedir. Programlama Sanati Algoritmalar adli bu kitabimiz ögrencilerimize bol bol akis semasi örnekleri vererek kendi kendilerine programlama yapabilme ve algoritma olusturabilme becerisi ve yetenegi kazandirmaya çalismaktadir.

Üniversitelerde ilk yillarda verilen “Bilgisayar Programlama”, “Programlama Teknikleri”, “Programlamaya Giris” ve “Programlama Mantigi” gibi derslerin ana kitabi veya yardimci kitabi olma özelligindedir.

Güçlü bir temel kazanmak program tasarimi için en önemli baslangiç adimidir denilebilir...

Programlama teknigini ve mantigini ögrenmek  ve bol örneklerle gelistirmek isteyen ögrencilerimize yararli bir kaynak özelligindedir.

 

İÇİNDEKİLER

Bölüm 1. Program TasarImInda Temel Kavramlar

Program, Yazilim, Program kodu

Degisken, Diziler, Operatör, Deyim/Ifade, Atama deyimi, Donanim

Bellek, Saklama birimi, Islemci, Makina kodu, Assembly dili

Isletim sistemi

Dosya, Dosya sistemi, Karakter tablosu

Sözce (String), Dinamik/statik bellek kullanimi, Veri yapisi, Veri modeli

Böl ve yönet yaklasimi, Çevrimli ve rekürsif yaklasim, Programlama dilleri ve C/C++/JAVA

Veritabani ve SQL, Alt-program/yordam, Sinif/nesne

Kullanici/sunucu mimarisi, Ag programlama

Program zaman ve bellek maliyetleri

Kiyaslama (Benchmarking), Kümeleme

Karakterleri

Sorular

 

Bölüm 2. algoritma tasarImI ve aKIŞ ŞemalarI 

2.1. Algoritmada Olmasi Gereken Özellikler

2.2. Algoritma Tasarimi

2.3. Akis Semalari

2.3.1. Akis Semasi Simgeleri

2.3.2. Tipik Akis Semasi Parçalari

2.4. Akis Semasi Örnekleri

2.5. Akis Semasi Disinda Sekilsel Tasarim

2.6. Özet

2.7. Sorular

 

Bölüm 3. c diliNE GIRIS

Yeni Baslayanlarin C Dilinde Bilmesi Gerekenler

C Dili Anahtar Sözcükleri (keywords)

3.1. Bir C programi

3.2. main() Fonksiyonu

3.3. C Dilinde Fonksiyonun Genel Yapisi

3.4. printf() ve scanf() Fonksiyonlari

3.5. Fonksiyona Parametre Aktarimi/Alis-Verisi

Dizilerin Fonksiyona Aktarilmasi

3.6. Özet

3.7. Sorular

 

Bölüm 4. c dili TEMEL VERI TÜRLERI VE DEGISKENLER

4.1. Temel Veri Türleri

4.1.1. Karakter (Character)

ASCII Karakter Tablosu

Ünikod

4.1.2. Tamsayi

4.1.3. Gerçel Sayi

4.1.4. Sözce/Karakter Dizisi

4.1.5. Dizi/Matris

4.2. Türetilmis/Tanimlamali Veri Türleri

4.3. Degisken Bildirim Yerleri

Yerel Bildirim

Genel (Global) Bildirim

Formal Bildirim

Dissal (Extern) Bildirim

Statik (Static) Degisken Bildirimi

Saklayici Türden (Register) Degisken Bildirimi

volatile Türden Degisken Bildirimi

4.4. Sabitler

4.5. Özet

4.6. Sorular

 

Bölüm 5. c dili OPERATÖRLERI 

5.1. Aritmetik Operatörler

5.2. Karsilastirma/Iliski Operatörleri

5.3. Mantiksal Operatörler

5.4. Bitler Üzerinde Islem Yapan (bitwise) Operatörler

5.5. Diger Operatörler

5.5.1. Atama Operatörleri

5.5.2. ?: Karsilastirma Operatörü

5.5.3. & ve * Isaretçi Operatörleri

5.5.4. sizeof Operatörü

5.6. Operatörlerin Öncelikleri ve Bagintilar

5.7. Bagintilarda Tür Dönüsümleri

5.8. Özet

5.9. Sorular

 

Bölüm 6. DÖNGÜ VE DENETIM DEYİMLERİ

6.1. Döngü Deyimleri

6.1.1. while Deyimi

6.1.2. do-while Deyimi

6.1.3. for Deyimi

6.1.4. Döngü Deyimlerinin Içiçe Kullanilmasi

6.2. Denetim Deyimleri

6.2.1. Karsilastirma Deyimleri

if-else Deyimi

switch Deyimi

6.2.2. Dallanma/Kirma Deyimleri

goto Deyimi ve Etiket, break

continue

6.3. Özet

6.4. Sorular

 

Bölüm 7. GİRİŞ/ÇIKIŞ İŞLEMLERİ

7.1. Standart Giris Çikis Kütüphanesi

7.2. Temel Giris Çikis Islemleri

7.2.1. getchar( ) - putchar( ) Ikilisi

7.2.2. gets( ) - puts( ) Ikilisi

7.2.3. scanf( ) - printf( ) Ikilisi

7.2.4. Diger Giris/Çikis Fonksiyonlari

7.3. Dosya Giris Çikis Islemleri

7.3.1. getch( ) - putc( ) Ikilisi

7.3.2. fgetc( ) - fputc( ) Ikilisi

7.3.3. fgets( ) - fputs( ) Ikilisi

7.3.4. fscanf( ) - fprintf( ) Ikilisi

7.3.5. fread( ) - fwrite( ) Ikilisi

7.3.6. fopen( ) - fclose( ) Ikilisi

7.3.7. Diger Dosya Fonksiyonlari

7.4. Diger G/Ç Fonksiyonlari

7.5. Özet

7.6. Sorular

 

Bölüm 8. diZİLER ve matrisler

8.1. Dizi Türleri ve C Dili

8.2. Vektör Diziler

8.3. Matris Diziler

8.4. Uzay Diziler

8.5. Dizilere Baslangiç Degeri Verilmesi

8.6. Dizi Ile Isaretçi Arasindaki Iliski

8.7. Dinamik Dizi Kullanimi

8.8. Dizilerin Fonksiyona Aktarilmasi

8.9. Dizi Uygulama Örnekleri

Kabarcik Siralama

Hizli Siralama, Ardisil Siralama

Ikili Arama

Matris Toplama

Matris Çarpma

Varyans/Standart Sapma

8.10. Hazir Dizi Fonksiyonlari

bsearch()

qsort()

8.11. Özet

8.12. Sorular

 

Bölüm 9. ÇEVRİMLİ ve rekürsif programlama

9.1. Çevrimli Programlama

9.2. Rekürsif Programlama

9.3. Çevrimli mi ? - Rekürsif mi?

9.4. Özet

9.5. Sorular

 

Bölüm 10. veri yapIlarI ve TanImlamalI Veri Türleri 

Ham Veriden Bilgiye Dönüsüm

10.1. Temel Veri Yapilari

10.2. Tanimlamali Veri Yapilari

10.3. Topluluk (struct) Deyimi

10.4. Ortaklik (union) Deyimi

10.5. Yeni Veri Sinifi ve enum

10.5.1. Yeni Kümenin Elemanlari ve Atama

10.6. Özet

10.7. Sorular

BÖLÜM 11. dosyalama/saklama

11.1. Metin (Text) Dosyasi - Ikili (Binary) Dosya Ne Demektir?

11.2. Üst Düzey Dosya Erisimleri Örnek Uygulamalar

11.3. Alt Düzey Dosya Erisimleri Örnek Uygulamalari

11.4. Özet

11.5. Sorular

 

BÖLÜM 12. VERİ MODELLERİ

12.1. Baglantili Liste Veri Modeli

Ekleme Islemi

Listeleme Islemi

Arama Islemi, Silme Islemi

Baglantili Liste Uygulamasinin Tam Kodu

12.2. Agaç Veri Modeli

Agaca Dügüm Ekleme

Agaci Dolasma/Dügümleri Listeleme/Arama Algoritmasi

Dügüm Silme/Çikartma Algoritmasi

Dügüm Bilgisini Hazirlama

Ikili Agaç Uygulamasinin Tam Kodu

12.3. Graf Veri Modeli

12.4. Durum Makinasi Veri Modeli

12.5. Veri-tabaninda Iliskisel Veri Modeli

12.6. Ag Veri Modeli

12.7. Özet

12.8. Sorular

 

BÖLÜM 13. C DİLİNE HAS ÖZELLİKLER

13.1. Isaretçiler (Pointers)

13.1.1 Isaretçi Degiskenler Üzerinde Aritmetik Islemler

13.1.2. Isaretçilerin Karsilastirilmasi

13.1.3. Isaretçi ve Diziler Arasindaki Iliski

13.1.4. Isaretçiyle Fonksiyon Çagirma

13.2. Arka Planda Denetimsizlik

13.3. Kütüphane Ekleme Kolayligi

13.4. Özet

13.5. Sorular

 

BÖLÜM 14. SÖZCE (STRING) VE KARAKTER FONKSİYONLARI

14.1. Sözce Fonksiyonlari 

14.1.1. Sözce Karsilastirma

14.1.2. Sözce Kopyalama

14.1.3. Sözce Birlestirme

14.1.4. Sözce Içerisinde Sözce veya Karakter Arama

14.1.5. Sözceden Sayisala Dönüsüm

14.1.6. Diger Sözce Fonksiyonlari

14.2. Bellek Fonksiyonlari

14.3. Karakter Fonksiyonlari

14.4. Özet

14.5. Sorular

 

BÖLÜM 15. C FONKSİYONLARI ÜZERİNE AYRINTI

15.1. Fonksiyon Tanimi ve Bildirimi

15.2. Fonksiyonlara Parametre Aktarimi

15.3. Fonksiyona Degisik Sayida Parametre Aktarimi

15.4. Ana Programa/main()'e Parametre Aktarimi

15.5. Fonksiyonlarin Isaretçiyle Çagrilmasi

15.6. Baslik (Header) Dosyalari (*.h)

15.6.1. Standart Baslik Dosyalari

15.6.2. Makro Fonksiyon/Kütüphane Fonksiyonu?

15.6.3. Özel Baslik Dosyasi Olusturma

15.7. Özet

15.8. Sorular

 

BÖLÜM 16. MATEMATİK FONKSİYONLARI VE UYGULAMALARI

16.1. Matematiksel Fonksiyonlar

16.1.1. Trigonometrik Fonksiyonlar

16.1.2. Yuvarlatma Fonksiyonlari

16.1.3. Logaritmik ve Üssel Fonksiyonlar

16.1.4. Mutlak Deger, Bölme, Karekök v eRasgele Sayi Fonksiyonlari

16.2. Çesitli UUygulamalar

. Faktöriyel Hesabi

Ikinci Dereceden Denklemin Kökleri

OBEB Bulunmasi, OKEK Bulunmasi

Aritmetik/Geometrik Ortalama

Seri Hesabi

Integral Hesabi

Basit Differansiyel Denklem Hesabi

16.3. Özet

16.4. Sorular

 

BÖLÜM 17. DENETIM VE HATA AYIKLAMA FONKSİYONLARI 

17.1. Ayricalikli Durum Denetimi

17.2. Hata Ayiklama Fonksiyonlari

17.3. Yerel Olmayan Dallanma Fonksiyonlari

17.4. Özel Amaçli Fonksiyon Sonlandirma Fonkisyonlari

17.5 Özet

17.6. Sorular

BÖLÜM 18. TARIH/ZAMAN VE YERELLESTIRME FONKSIYONLARI

18.1. Tarih/Zaman Fonksiyonlari

18.2. Yerellestirme Fonksiyonlari

18.3. Özet

18.4. Sorular

 

BÖLÜM 19. İŞLETIM SISTEMINE DAYALI UYGULAMALAR

19.1. Isletim Sistemiyle Etkilsen Birkaç Fonksiyon

19.1 Ag Programlama

19.3. Sorular

 

BÖLÜM 20. c dİLİ ÖNIŞLEMCİLERİ (prePROCESSOR) 

20.1. Önislemci #define

20.2. Önislemci #undef

20.3. Önislemciler #include

20.4. Önislemciler #if, #else, #endif, #elif, #ifdef ve #ifndef

20.5. Önislemci #line

20.6. 20.2. Önislemciler #error ve #pragma

20.7. Özet

20.8. Sorular

BÖLÜM 21. PROGRAM TASARIMINDA ÇOK KARŞILAŞILAN HATALAR  

KAYNAKÇA

DIZIN

 

 

 ÖNSÖZ

 

Program tasarimi/yazilim gelistirme islemi, kanimca ve deneyimlerime göre  gerçekten bir sanat isi; hem konuyla ilgili bilgilere evrensel düzeyde sahip olacaksin hem de ürününe yansitabilecegin hayal gücün olacak; hem de birseyler üretme hirsin/istegin olacak.

Her ne kadar bu kitabin yazari gibi görünsem de, meslek yasamimda, mesleki anlamda son kitabim “Veri yapilari ve Algoritmalar”dir; bu kitap üzerine çok ugrastim, tabii ki arka plada, ancak kitap konusunda istedigim birçok seyi yapabildigimi saniyorum. Su ana tarafima gelen elestiriler/öneriler de bu yönde...

“Programlama Sanati Algoritmalar” adli bu eser, daha önceki kitaplarimdan ve sayin Dr.Sefer Kurnaz’in “Veri Yapilari ve Algoritma Temelleri” adli kitabindan toparlanmis ve bir miktarda yeni seyler eklenmis konulari itibariyle pek te yeni olmayan bir kitaptir. Bu kitabin hazirlanmasindaki amacimiz, programlamaya yeni baslayanlara iyi bir baslangiç yaptirmak ve iyi bir temel kazandirmaktir. Çünkü dogada da hersey temel üzerine/kök üzerine kurulmustur. Herseyde oldugu gibi temeli atmak zor gelebilir; ancak güçlü temelin üzerine yapi çok kolay ve güvenli kurulur. 

Kitabimizda dile çok önem verilmistir; hangi dil olursa olsun, onunla konusuyor onunla yaziyor isek kurallarina özen göstermeli, gelismesine ve zenginlesmesine destek olmaliyiz. Dolayisiyla, Türkçe olan bu kitabimizda Türkçe Dili kurallarina özen göstermeye asiri gayret ettik. Üstelik uzun süredir pek karsiligi üretilemeyen Ingilizce “string” sözcügüne karsilik dilcimiz sayin Yusuf Çotuksöken ile birlikte “sözce” karsiligini bulduk; gerçekten de çok uygun oldu...

Bu kitabimizin genç meslektaslarimiza, bilgisayar konusunda ögrenci olan gençlerimize yararli olacagini umuyorum. Sizlerin, ileride, daha iyilerini üretmeniz dilegiyle...; bayrak yarisinda görevimizi yaptigimiza inaniyorum. Bayrak artik sizin ellerinizde,

Sevgilerimle,

Dr.Rifat ÇÖLKESEN  

 

 

Yine en iyisi, yine Papatya Yayıncılık Eğitimden...

 

Yayinevimizin konuyla ilgili eserleri:

Veri Madenciligi (teori ve uygulamasiyla) Dr. Gökhan SILAHTAROGLU

Veri Madenciligi Yöntemleri Dr. Yalçın ÖZKAN

Bilgisayar Mühendisligine Giris Ortak Yazarli (Editör: Dr. Rifat ÇÖLKESEN)

Elektronik Mühendisligine Giris Ortak Yazarli (Editör: Dr. Cengiz UGURKAYA)

Endüstri Mühendisligine Giris Ortak Yazarli (Editör: Prof. Dr. Ercan ÖZTEMEL)

Bilgisayar Mimarisi Ortak Yazarlı

Modern Sezgisel Teknikler ve Uygulamalari Ortak Yazarlı

Elektronik Mühendisligine Giris Ortak Yazarli (Editör: Dr. Cengiz UGURKAYA)

Endüstri Mühendisligine Giris Ortak Yazarli (Editör: Prof. Dr. Ercan ÖZTEMEL)

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  C 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