C/C++ ve Java Dilleri ile Algoritma ve Programlama İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input Unit) 4 Çıkış Birimi (Output Unit) 4 Mikroişlemci / Merkezi İşlem Birimi (CPU 5 Hafıza Birimleri (RAM / ROM Bellek) 5 Depolama Birimleri ( Sabit disk, CDROM, DVDROM) 5 Yazılım ve donanım arasındaki ilişki 6 Yazılım (Software) 6 Derleyici ve Yorumlayıcı 8 Derleyici (Compiler) 9 Yorumlayıcı (Interpreter) 9 Derleyici İle Yorumlayıcının Farkı 10 Kaynak Program (Source Program) 10 Java ve C++ için kod derleme aşamaları 10 Amaç Program (Object Program) 11 Bağlayıcı (Linker) 11 Bazı Programlama Dilleri Ve Özellikleri 12 Çoktan Seçmeli Değerlendirme Soruları 22 2. Algoritma Giriş 25 Bilgisayar Ortamında Problem Çözüm Basamakları 28 Algoritmayı İfade Şekilleri 31 Metinsel Olarak Düz İfade 31 Sözde-Kod (Pseudo-Code) 31 Akış Şemaları (Flow Charts) 32 UML Diyagramları 34 Aktivite Diyagramı (Activity Diagram) 35 C/C++ ve Java Dilleri ile Algoritma ve Programlama Çoktan Seçmeli Değerlendirme Soruları 37 3. Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Sayısal Hesaplamalarla ilgili Algoritma Örnekleri 45 Başlangıçta Değişkenlere Değer Aktarmanın Mantığı 49 İki Değişkenin İçeriğini Birbirine Aktarma (Yer değiştirme İşlemi) 51 Tekrarlı İşlemler – Sayaç Kontrollü Döngüler) 52 Döngüsel Akış Şeması 53 Program Takibi ve Akış Şeması Takip Örnekleri 62 Çoktan Seçmeli Değerlendirme Soruları 65 4. Sayı Sistemleri Giriş 67 Onlu (Decimal) Sayı Sistemi 68 İkili (Binary) Sayı Sistemi 69 Sekizli (Octal) Sayı Sistemi 69 Onaltılı (Hexadecimal) Sayı Sistemi 69 Onlu Sayı Sistemini İkili Sayı Sistemine Dönüştürme 70 Sekizli Sayı Sistemini Diğer Sayı Sistemlerine Dönüştürme 70 Onaltılı Sayı Sistemini Diğer Sayı Sistemlerine Dönüştürme 71 Kesirli Sayıları Dönüştürme 72 Sayı Sistemlerini Birbirine Dönüştüren Algoritma Örnekleri 73 Bit ve Byte Kavramları 77 Çoktan Seçmeli Değerlendirme Soruları 78 5. C/C++ ve Java Program Yapısı Giriş 80 C/C++ Programı ve Yapısı 81 C/C++ Kütüphane (Başlık-Header) Dosya Tanımlaması (#include deyimi) 81 Program Sonlandırma Komutları 82 Açıklama / Yorum Satırları 82 Bazı C Derleyicilerinin Türkçe Karakter Sorununun Çözümü 83 C/C++ ve Java Dilleri ile Algoritma ve Programlama Code::Bloks C/C++ Editörü ile Program Yazımı 84 Java Programı ve Yapısı 86 Java Kütüphane Dosya Tanımlaması (import deyimi) 86 Eclipse Editörünün Kurulumu ve Program Yazımı 89 C/C++ Programlama Dilleri için Eclipse Kurulumu 95 Çoktan Seçmeli Değerlendirme Soruları 98 6. Veri Tipleri ve Değişken Kavramı Giriş 102 Komutlar 103 Mesajlar 104 Değişkenler 104 Değişkenlerin Tanımlanması 105 Değişkenlere Değer Aktarma Operatörü { = } 106 Değişkenlere İsim Verme Kuralları 107 Değişkenlerin Faaliyet Alanları Ve Ömürleri 108 Yerel (Local) Değişken Faaliyet Alanı 109 Genel (Global) Değişken Faaliyet Alanı 109 Veri Tipleri 110 Unicode ve ASCII Kod 110 Java Dili Temel Veri Tipleri ve Değer Aralıkları 111 C/C++ Dili Temel Veri Tipleri ve Değer Aralıkları 112 Mantıksal Veri Tipinde Java – C/C++ Farkı 114 Metinsel (String) Veri Tipleri 115 Veri Tipi Dönüşümü 116 Büyük Veri Tipinden Küçük Veri Tipine Dönüşüm 117 Sabitler 117 Enum Sabiti (Enumeration constant) 118 Çoktan Seçmeli Değerlendirme Soruları 120 7. Operatörler ve Matematiksel İfadelerin Bilgisayar Ortamında Gösterimi Operatörler 123 Aritmetiksel Operatörler 123 Artırma ve Azaltma Operatörleri 129 C/C++ ve Java Dilleri ile Algoritma ve Programlama Şüpheli Kodlar: Java ve C/C++ Farkı 129 Aritmetiksel Atama Operatörleri 130 Karşılaştırma Operatörleri 132 Mantıksal Operatörler 134 Bit İşlem Operatörleri 136 Genel Olarak Operatörlerin Öncelik Sıraları 140 Çoktan Seçmeli Değerlendirme Soruları 141 8. Algoritmadan Kodlamaya Geçiş Giriş 146 Veri girişi ve ekran çıktısı işlemleri 147 Ekrana Yazdırma (Çıktı işlemi) Komutları 147 printf komutu 149 Çıkış (Escape) Karakterleri 150 Java dilinde printf komutu ile kullanılan Tarih-Saat Fonksiyonları 152 Veri Girişi (Girdi işlemi) komutları 153 C/C++ dili veri giriş komutları 153 Java dili veri giriş komutları 154 Giriş-Çıkış İşlemleri ile İlgili Program Örnekleri 156 Çoktan Seçmeli Değerlendirme Soruları 164 9. Karar Yapıları (if-else, switch case) Giriş 168 Seçimli - Karar Yapıları (Selectıon Structures) 168 Tek Seçimli Yapı ( If Deyimi) 169 Çift Seçimli Yapı ( If / Else Deyimi ) 173 Koşul Operatörü (?:) 173 Çok Seçimli Yapı ( İç İçe If ya da Switch Case Yapısı ) 178 İç içe if / else yapısı 178 switch case deyimi 179 break deyimi 180 Çoktan Seçmeli Değerlendirme Soruları 194 10. Döngüler (Tekrarlı Yapılar) C/C++ ve Java Dilleri ile Algoritma ve Programlama Giriş 200 Sayaç ve Döngü Mantığı 200 Tekrar Sayısı Belli Olan Döngüler(for Döngüleri) 202 for döngüsü kullanım örnekleri 214 Tekrar Sayısı Koşula Bağlı Döngüler(while / do-while Döngüleri) 215 Döngü kontrolünün başta ya da sonda yapılmasının farkı 216 Eşdeğer döngüler 216 break ve continue komutları 222 Fibonacci Serisi ve Altın Oran (Phi Sayısı) 225 Çoktan Seçmeli Değerlendirme Soruları 228 11. İç İçe Döngüler Giriş 234 Asal Sayı Programı 243 Armstrong Sayıları Programı 244 Çoktan Seçmeli Değerlendirme Soruları 246 12. C/C++’da Fonksiyonlar Java’da Metotlar Giriş 248 Fonksiyon/Metot Tanımlama 249 Geri Dönüş Değeri Olmayan (void tipli) Fonksiyon Örneği 250 Geri Dönüş Değeri Olan Fonksiyon Örneği 252 return komutu 253 Fonksiyon Prototipi Tanımlama 254 Fonksiyon/Metotlara Değer/Parametre Aktarımı 255 static Belirteci 257 Özyinelemeli Fonksiyonlar (Recursive Functıon) 261 Ackermann fonksiyonu 263 Rasgele Sayı Üretimi 264 Sayı Tahmin Oyunu 267 Matematiksel Fonksiyonlar 269 Çoktan Seçmeli Değerlendirme Soruları 271 13. Diziler (Arrays) C/C++ ve Java Dilleri ile Algoritma ve Programlama Giriş 274 Tek Boyutlu Diziler (Vektörler) 275 İndis (Index) 276 Dizi elemanlarına değer aktarımı 277 Dizi elemanlarının dışarıdan (klavyeden/konsoldan) girilmesi 281 Fonksiyonlara parametre olarak dizi aktarımı 285 Dizi Elemanlarını Başka Bir Diziye Kopyalamak 286 Dizi Elemanlarını Sıralama 288 Dizilerde Arama 293 Luhn Algoritması 296 Histogram Programı 298 Lucas ve Fibonacci Dizileri 299 Çoktan Seçmeli Değerlendirme Soruları 300 14. İki Boyutlu Diziler (Matrisler) Giriş 304 Matris Oluşturma Örnekleri 305 Matrislere Otomatik İlk Değer Verme İşlemi 309 Matris Toplamı 309 Matris Çarpımı 310 Matrislerin Fonksiyonlara İletilmesi 321 Çok Boyutlu Diziler 322 Çoktan Seçmeli Değerlendirme Soruları 324 15. Karakter Dizileri ve String İşlemleri Giriş 331 Bir karakter dizisinin elemanlarına (tek bir stringin ifadenin karakterlerine) erişmek 332 String/Karakter dizilerini ekrana yazdırmak 333 Programlama Dillerine Göre String İşlem Fonksiyonları 335 C/C++ string işlem fonksiyonları 335 C/C++ String/Sayısal Dönüşümleri 336 C++ diline özgü string işlem fonksiyonları 336 Java string işlem metotları 336 Java StringBuilder Sınıfı 338 C/C++ ve Java Dilleri ile Algoritma ve Programlama Java String/Sayısal Dönüşümleri 338 Thue-Morse dizisi 341 Türkçe-İngilizce Sözlük 342 Şifre/password sorgulaması 343 Programlama Dillerine Göre Karakter İşlem Fonksiyonları 344 C/C++ karakter işlem fonksiyonları 344 Java karakter işlem fonksiyonları 345 Palindrom Uygulaması 346 Fibonacci Karakter Dizisi 348 Takvim Uygulaması 350 Çoktan Seçmeli Değerlendirme Soruları 353 16. Bölüm Dosyalama Dosya Kavramına Giriş 356 Klasik Dosya Giriş- Çıkış İşlemleri 357 Stream Kavramı 358 Java Stream Kavramı 359 C++ Stream Kavramı 362 C/C++ Klasik Dosya İşlemleri 363 Metin Dosyasına Veri Yazmak 365 Metin Dosyasından Veri Okumak 366 Metin Dosyasına Veri Eklemek 369 Rastgele Erişimli Dosyalar (Random Access Files) 371 Rasgele Erişimli ve Sıralı Erişimli Dosya Farkı 372 Java Dili Rasgele Erişimli Dosya İşlemleri 373 C/C+ Dili Rasgele Erişimli Dosya İşlemleri 375 Yapılar ve Kayıt Deseni Oluşturma 376 İkili Dosyalar (Binary Files) 382 Çoktan Seçmeli Değerlendirme Soruları 383 17. Bölüm Nesne Yönelimli Programlama Giriş 385 Nesne Yönelimli Programlama Temel Kavramları 385 Sınıf (Class) 385 C/C++ ve Java Dilleri ile Algoritma ve Programlama Nesne(Object) 386 Bir Sınıftan Nesne Türetme 387 Nesne Üyelerine Erişim Belirteçleri 387 Kalıtım (Inheritance) 389 Sarmalama (Encapsulation) 391 Çok biçimlilik (Polymorphism) 392 Çoktan Seçmeli Değerlendirme Soruları 394