KOD DERSLERİ

Algoritma ve Akış Şemaları

Algoritma, bir problemi çözmek için izlenecek adımların sıralı ve mantıklı bir şekilde yazılmasıdır. Günlük hayatta farkında olmadan birçok algoritma kullanırız. Örneğin, yemek tarifleri, bir mobilyanın kurulum kılavuzu veya okula gitmek için izlediğimiz yol birer algoritmadır.

Algoritma Kavramı

Algoritmanın Temel Özellikleri

Özellik Açıklama Örnek
Kesinlik Her adım açık ve net olmalıdır "Biraz bekle" yerine "5 dakika bekle"
Sonluluk Belirli sayıda adımdan sonra sonlanmalıdır Sonsuz döngüye girmemeli
Genellik Benzer problemlere uygulanabilir olmalıdır Tüm sayıların karesini alabilen algoritma
Giriş/Çıkış En az bir girdi ve bir çıktı olmalıdır Sayı alıp karesini veren algoritma

Akış Şeması Sembolleri ve Anlamları

Temel Semboller

Akış Şeması Sembolleri
  • Başla/Bitir: Oval
  • İşlem: Dikdörtgen
  • Karar: Eşkenar dörtgen
  • Giriş/Çıkış: Paralelkenar

İleri Seviye Semboller

İleri Seviye Akış Şeması Sembolleri
  • Alt Süreç: İç içe dikdörtgen
  • Veri Tabanı: Silindir
  • Doküman: Dalgalı dikdörtgen
  • Hazırlık: Altıgen

Örnek Akış Şemaları

1. Sayının Tek/Çift Olduğunu Bulan Algoritma
Tek Çift Sayı Akış Şeması
1. Başla
2. Sayıyı al (N)
3. Eğer N % 2 = 0 ise
4.    "Çift Sayı" yaz
5. Değilse
6.    "Tek Sayı" yaz
7. Bitir
2. Faktöriyel Hesaplayan Algoritma
Faktöriyel Akış Şeması
1. Başla
2. Sayıyı al (N)
3. Sonuc = 1
4. i = 1'den N'e kadar
5.    Sonuc = Sonuc * i
6. Sonucu yaz
7. Bitir

Algoritma Geliştirme Teknikleri

Problem Çözme Adımları

  1. Problemi Anlama
    • Problemin net tanımı
    • Girdi ve çıktıların belirlenmesi
    • Kısıtlamaların tespiti
  2. Strateji Geliştirme
    • Çözüm yollarının belirlenmesi
    • En uygun yöntemin seçimi
    • Kaynakların değerlendirilmesi
  3. Algoritma Yazma
    • Adımların belirlenmesi
    • Akış şemasının çizilmesi
    • Sözde kodun yazılması
  4. Test ve Doğrulama
    • Algoritmanın test edilmesi
    • Hataların düzeltilmesi
    • Optimizasyon yapılması

Pratik Örnekler ve Alıştırmalar

Başlangıç Seviyesi

  • İki sayının toplamını bulan algoritma
  • Üç sayının ortalamasını hesaplayan algoritma
  • Dairenin alanını hesaplayan algoritma

Orta Seviye

  • Bir sayının asal olup olmadığını bulan algoritma
  • Fibonacci serisini hesaplayan algoritma
  • En büyük ortak böleni bulan algoritma

İleri Seviye

  • Sıralama algoritmaları (Bubble, Selection, Insertion)
  • Arama algoritmaları (Linear, Binary)
  • Graf algoritmaları (DFS, BFS)