Papatya Yayıncılık Eğitim AŞ      e-Kitap Projesi: Ar-Ge grubu Post-Edu Enstitüsü, Papatya Yayıncılık, İnternet kitapçısı TDK

 Ana Sayfa

Hakkımızda


e-Kitap Projesi


Kitaplarımız

Hazırlanan Kitaplar

Satış/Dağıtım


Çalışmak


İletişim


Periyodik Dergi

Post-Edu Enstitüsü

Kitap Fuarları

Kurumsal Hizmetler

 

İnternet Kitapçısı

www.tdk.com.tr

Kitapların Tüm Listesi

Açıklamalı Kitap Listesi

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

- Hamilelik Rehberi -

Dr. Kağan KOCATEPE

- Hafta Hafta Gebelik -

Dr. Kağan KOCATEPE

 

- Kitap Dağıtım -

İstanbul-Cağaloğlu

Tel: (212) 527 52 96

Faks: (212) 527 52 97

Adana-Baraj Yolu 6.5 Durak

Tel: (322) 225 14 32

Faks: (322) 225 14 33

İstanbul-Merkez

Tel: (212) 245 37 40

Faks: (212) 527 52 97

 

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

 

Fiyat Listesi (Excel Dosyası)

 

 

Programlama Sanatı Algoritmalar

- C Programlama Dili Uyarlaması -

Dr. Rifat ÇÖLKESEN -Yazar

Dr.Cengiz UGURKAYA -Editör

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

 

 

Bu kitabımız program tasarımına yeni başlayanlar için programlama temelleri ve mantığını kazandırmak amacıyla hazırlanmıştır. Bilindiği gibi programlama dilleri öğrenilmeden önce programlama tekniği ve algorıtma tasarımı mantığı öğrenilmedir. Programlama Sanatı Algorıtmalar adlı bu kitabımız öğrencilerimize bol bol akış şeması örnekleri vererek kendi kendilerine programlama yapabilme ve algorıtma oluşturabilme becerisi ve yeteneği kazandırmaya çalışmaktadır.

Üniversitelerde ilk yıllarda verilen “Bilgisayar Programlama”, “Programlama Teknikleri”, “Programlamaya Giriş” ve “Programlama Mantığı” gibi derslerin ana kitabı veya yardımcı kitabı olma özelliğindedir.

Güçlü bir temel kazanmak program tasarımı için en önemli başlangıç adımıdır denilebilir...

Programlama tekniğini ve mantığını öğrenmek  ve bol örneklerle geliştirmek isteyen öğrencilerimize yararlı bir kaynak özelliğindedir.

 

İÇİ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 tasarımı/yazılım geliştirme işlemi, kanımca ve deneyimlerime göre  gerçekten bir sanat işi; hem konuyla ilgili bilgilere evrensel düzeyde sahip olacaksın hem de ürününe yansıtabileceğin hayal gücün olacak; hem de birşeyler üretme hırsın/isteğin olacak.

Her ne kadar bu kitabın yazarı gibi görünsem de, meslek yaşamımda, mesleki anlamda son kitabım “Veri yapıları ve Algoritmalar”dır; bu kitap üzerine çok ugraştım, tabii ki arka plada, ancak kitap konusunda istediğim birçok şeyi yapabildiğimi sanıyorum. Şu ana kadar tarafıma gelen eleştiriler/öneriler de bu yönde...

“Programlama Sanatı Algorıtmalar” adlı bu eser, daha önceki kitaplarımdan ve sayın Dr.Sefer Kurnaz’ın “Veri Yapıları ve Algoritma Temelleri” adlı kitabından toparlanmış ve bir miktarda yeni şeyler eklenmiş konuları itibariyle pek te yeni olmayan bir kitaptır. Bu kitabın hazırlanmasındaki amacımız, programlamaya yeni başlayanlara iyi bir başlangıç yaptırmak ve iyi bir temel kazandırmaktır. Çünkü doğada da herşey temel üzerine/kök üzerine kurulmuştur. Herşeyde olduğu gibi temeli atmak zor gelebilir; ancak güçlü temelin üzerine yapı çok kolay ve güvenli kurulur. 

Kitabımızda dile çok önem verilmiştir; hangi dil olursa olsun, onunla konuşuyor onunla yazıyor isek kurallarına özen göstermeli, gelişmesine ve zenginleşmesine destek olmalıyız. Dolayısıyla, Türkçe olan bu kitabımızda Türk Dili kurallarına özen göstermeye aşırı gayret ettik. Üstelik uzun süredir pek karşılığı üretilemeyen İngilizce “string” sözcüğüne karsılık dilcimiz sayın Yusuf Çotuksöken ile birlikte “sözce” karşılığını bulduk; gerçekten de çok uygun oldu...

Bu kitabımızın genç meslektaşlarımıza, bilgisayar konusunda öğrenci olan gençlerimize yararlı olacağını umuyorum. Sizlerin, ileride, daha iyilerini üretmeniz dileğiyle...

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