Önsöz Giriş İçindekiler V VII IX 1.1. Algoritma 1.1.1. Algoritma Nasıl Hazırlanır? 1.1.2. Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular 2.1. Programın Akış Yönü 2.2. Başlama ve Bitiş 2.3. Ekran Gösterimi 2.4. Veriş Girişi 2.5. İşlem Gösterimi 2.6. Akış Diyagramlarının Kodlara Dönüştürülmesi 2.7. Karar Alma Gösterimi 2.8. Döngü Gösterimi 2.9. İç İçe Döngülerin Gösterimi 19 19 20 23 25 29 36 41 44 3.1. Yazılım Geliştirme Süreci 3.2. Hata Yakalama ve Ayıklama 3.3. Sayaç Mekanizması 3.4. Döngü Mantığı 3.5. Veri Tipleri 3.6. Değişkenler 3.7. Karakter 3.8. İşlem Sırası 3.9. Matematiksel ve Mantıksal İfadelerin Yazımı 3.10. Sayı Sistemleri IX 49 51 52 53 54 55 56 57 58 58 4.1. Ekran Komutları 4.2. Program Öncesi Tanımlama Komutları 4.3. Atama Komutları ve Rastgele Sayı Üretme 4.4. Matematiksel Fonksiyonlar 4.5. Döngüler 4.6. Karaktersel Fonksiyonlar 4.7. Yönlendirme ve Sonlandırma Komutları 4.8. Prosedür ve Fonksiyonlar 4.9. Grafik Ekran Komutları 4.10. Dosyalama Komutları 63 69 72 74 79 81 89 95 98 101 5.1. QBasic Çalışma Ortamı 5.1.1. QBasic Editörü 5.1.2. Akıllı Editör 5.2. QBasic Menüleri 5.2.1. File Menüsü 5.2.1.1. New (Yeni Bir Program) Komutu 5.2.1.2. Open (Program Aç) Komutu 5.2.1.3. Save (Kaydetme) Komutu 5.2.1.4. Print (Yazdırma) Komutu 5.2.1.5. Exit (Çıkış) Komutu 5.2.2. Edit Menüsü 5.2.2.1. Cut, Copy, Paste, Clear Komutları 5.2.2.2. New SUB ve New FUNCTION Komutları 5.2.3. View Menüsü 5.2.3.1. SUBs Komutu 5.2.3.2. Split Komutu 5.2.3.3 Output Screen Komutu 5.2.4. Search Menüsü 5.2.4.1. Find (Ara) Komutu 5.2.4.2. Repeat Last Find Komutu 5.2.4.3. Change (Değiştir) Komutu 5.2.5. Run Menüsü 5.2.5.1. Start (Başla) Komutu 5.2.5.2. Restart (Yeniden Başla) Komutu 5.2.5.3. Continue (Devam) Komutu 5.2.6. Debug Menüsü 5.2.6.1. Step (Adım) Komutu 109 109 110 110 111 111 113 114 114 115 115 116 117 117 118 118 119 119 119 120 120 120 121 121 121 121 122 X 5.2.6.2. Procedure Step Komutu. 5.2.6.3. Trace On (Geriye İzleme) Komutu 5.2.6.4. Toggle Breakpoint Komutu 5.2.6.5. Clear All Breakpoints Komutu 5.2.6.6. Set Next Statement Komutu 5.2.7. Options Menüsü 5.2.7.1. Display Komutu 5.2.7.2. Help Path Komutu 5.2.7.3. Syntax Cheking (Yazım Kontrölü) Komutu 5.2.8. Help Menüsü 5.2.8.1. Index Komutu 5.2.8.2. Contents Komutu 5.2.8.3. Topic Komutu 5.2.8.4. Using Help Komutu 5.2.8.5. About Komutu 6.1. İlginç Sorular ve QBasic'te Hazırlanan Programları 6.2. Gösteri Programları 6.2.1. Text Ekran 6.2.2. Grafik Ekran 6.3. İstatistiksel Fonksiyonlar 6.4. İstatistik Programları 6.4.1. Aritmetik Ortalama ve Standart Sapma 6.4.2. Ki-Kare. 6.4.3. Basit Regresyon 6.5. Matrisler 6.5.1. Matrisin Bir Sabitle Çarpımı. 6.5.2. Bir Matrisin Transpozesinin Alınması 6.5.3. İki Matrisin Toplamı 6.5.4. Bir Matrisin Gauss Jordan Metodu İle Tersinin Bulunması 6.6. Sayısal Çözümleme 6.6.1. Bir Polinomun Lineer Faktöre Bölümü 6.6.2. Bairstow Metodu İle Bir Polinomun Quadratik Fak. Bölümü 6.6.3. Trapezodial Yöntemi İle Belirli İntegral Hesabı. 6.7. Denklem Takımlarının Çözümü. 6.7.1. Gauss Eliminasyon Yöntemi 6.7.2. Gauss Jordan Yöntemi 6.8. Harf Notlarının Hesabı 6.9. Menü Sistemi 6.10. Dosyalama Programları XI 122 122 122 122 122 123 123 123 123 124 124 124 124 124 124 125 128 128 130 134 136 136 136 138 140 140 140 141 142 143 143 144 145 145 145 146 148 151 153 6.10.1. Telefon Rehberi (Rastgele Erişimli) 6.10.2. Müşteri Takip Programı (Sıralı Erişimli) 6.11. Oyun Programı 6.12. Paket Programlar 6.12.1. Hesap Makinesi 6.12.2. Çizim Programı 6.13. Ses Programları 6.13.1. Telefon 6.13.2. Katibim 6.13.4. Gülpembe 153 155 158 159 159 162 164 164 165 165 7.1. Java’nın Kısa Tarihi 7.2. Java için IDE’ler 7.3. Java’da Veri Tipleri, Değişkenler, Tip Dönüşümleri 7.4. Java’da Operatör Kavramı ve Kullanımı 7.5. Mantıksal İfadelerin Kullanımı 7.6. Equals() Kullanımı 7.7 If ve If/Else Kullanımı 7.8. Switch Case Kullanımı 7.9. Sınıf, Nesneler ve Metotlar 7.10. Veri Yapıları 7.11. Karaktersel İşlemler 7.12. Dosya ve Klasör İşlemleri 7.13. Dosya Dönüşümleri 7.14. Dosya İzinleri 7.15. Dosyalama İşlemleri 7.16. İnternet Adresleri URL() Nesnesinin Kullanımı 167 168 169 172 174 187 188 191 195 212 227 235 244 246 247 249 8.1. Java Derleyicileri 8.2. Eclipse Nedir? 8.3. Genel Kullanıma Açık Eclipse Lisansı 8.4. Eclipse’nin Bilgisayara Kurulması 8.4.1. Eclipse’nin Java Gereksinimleri 8.4.2. Java’nın Yüklenmesi 8.4.3. Eclipse’nin İndirilmesi 8.4.4. Eclipse’nin Yüklenmesi 8.5. Eclipse’nin Başlatılması XII 257 257 257 257 257 257 258 260 260 8.6. Eclipse’nin Önemli Terimleri 8.6.1. Workspace 8.6.2. View ve Editör Bölümleri 8.6.3. Perspective 8.7. Eclipse Java Perspective 8.7.1. Toolbar 8.7.2. Outline View 8.7.3. Java Editör 8.8. İlk Java Programının Oluşturulması 8.8.1. Projeyi Oluşturma 8.8.2. Paket Oluşturma 8.8.3. Java Sınıfı Oluşturma 8.8.4. Projenin Eclipse’de Çalıştırılması 8.9. Java Programlarının Eclipse Dışında Çalıştırılması 8.9.1. Jar Dosyası Oluşturmak 8.9.2. Programın Eclipse Dışında Çalıştırılması 8.10. Projeleri İçe ve Dışa Aktarmak 8.10.1. Projeleri Dışa Aktarmak 8.10.2. Projeleri İçe Aktarmak 8.11. İçerik Yardımı ve Hızlı Düzeltme 8.11.1. İçerik Yardımı 8.11.2. Hızlı Düzeltme 8.12. Kod Üretme 8.13. Refactoring 8.14. Güncellemelerin ve Eklentilerin Yüklenmesi 263 263 264 264 266 266 266 266 267 267 268 269 271 273 273 275 275 275 276 278 278 278 278 281 281 9.1. Sorular ve Java Dilinde Çözümleri 9.2. Sıralama Algoritmaları 9.2.1 Bubble Sıralama Algoritması 9.2.2. Selection Sıralama Algoritması 9.2.3. Insertion Sıralama Algoritması 9.2.4. Quick Sıralama Algoritması 9.2.5. Merge Sıralama Algoritması 9.3.Arama Algoritmaları 9.3.1. Doğrusal Arama Algoritması 9.3.2. Implement Binary Arama Algoritması 9.3.3. Özyineli Binary Arama Algoritması 285 287 287 288 288 289 291 293 293 294 295 XIII Ek. Algoritmik Çözümleri 297 325 XIV