Akış Şemalarını Kodlara Dönüştürme

Akış şemalarını kodlara dönüştürme

Algoritmayı kurduk, akış şemasını çizdik. Sırada ne mi var? Onu bilgisayarın anlayacağı dile çevirmek. Akış şemasındaki sık kullanılan sembollerin kod karşılığını, basit örnekle ve sade bir dille anlatalım.

Derslerde sık sık derim: "Algoritmayı kağıt üzerinde kurmadıkça, kod yazmaya başlama." Ama sonra gelen soru hep aynıdır: "Peki hocam, bu çizdiğim şeyi nasıl koda çevireceğim?" İşte bu yazı tam da bu sorunun cevabı.

Akış şeması, sizin düşünce sürecinizin görsel halidir. Kod ise bu düşünceyi bilgisayara anlatan dildir. Aslında ikisi arasında birebir bir eşleşme var. Hangi sembol hangi kod yapısına karşılık gelir, bunu öğrendiğinizde işiniz çok kolaylaşır.

Akış Şeması Sembollerinin Kod Karşılıkları

En temel 5 sembolle başlayalım. Bunları öğrenince gerisi kendiliğinden gelir.

1. Başla / Bitir (Elips)

Kod karşılığı: Programın başlangıcı ve bitişidir. Çoğu dilde özel bir kod yazılmaz, program zaten baştan başlar, sona gelince biter. Bazı dillerde main() fonksiyonu başlangıç noktasıdır. Ama temelde başlangıç ve bitiş için ekstra bir kod yazmazsınız.

2. İşlem Kutusu (Dikdörtgen)

Kod karşılığı: Atama işlemleri, hesaplamalar, fonksiyon çağrıları.

Örnek:

Akış şemasındaki: toplam = sayı1 + sayı2

Kod hali (Python):

toplam = sayi1 + sayi2

Kod hali (C#):

int toplam = sayi1 + sayi2;

3. Karar Kutusu (Eşkenar Dörtgen)

Kod karşılığı: Karar yapıları (if-else, switch-case). En çok kullanılan yapı budur.

Akış şemasındaki: sayı 5'ten büyük mü?
- Evet → "Büyük" yaz
- Hayır → "Küçük veya eşit" yaz

Kod hali (Python):

if sayi > 5:
    print("Büyük")
else:
    print("Küçük veya eşit")

4. Veri Giriş / Çıkış (Paralelkenar)

Kod karşılığı: Kullanıcıdan veri alma (input, ReadLine) veya ekrana yazdırma (print, WriteLine).

Akış şemasındaki: kullanıcı adını gir

Kod hali (Python):

isim = input("Adınızı girin: ")

Kod hali (C#):

Console.Write("Adınızı girin: ");
string isim = Console.ReadLine();

Akış şemasındaki: sonucu yazdır

Kod hali (Python):

print(sonuc)

5. Döngü Sembolleri (Özel Durum)

Akış şemasında döngüler genellikle karar kutusuyla gösterilir. Koşul sağlandığı sürece geri döner. Bu da kodda for, while gibi döngü yapılarına karşılık gelir.

Şimdi Bol Örnekle Pekiştirelim

Örnek 1: Kullanıcıdan Alınan İki Sayıyı Toplama

Akış Şeması:
- Başla
- sayı1'i oku
- sayı2'yi oku
- toplam = sayı1 + sayı2
- toplamı yazdır
- Bitir

Kod hali (Python):

sayi1 = int(input("1. sayıyı girin: "))
sayi2 = int(input("2. sayıyı girin: "))
toplam = sayi1 + sayi2
print("Toplam:", toplam)

Örnek 2: Girilen Sayının Pozitif mi, Negatif mi, Sıfır mı Olduğunu Bulma

Akış Şeması:
- Başla
- sayıyı oku
- sayı > 0 mı?
- Evet → "Pozitif" yaz → Bitir
- Hayır → sayı < 0 mı?
- Evet → "Negatif" yaz → Bitir
- Hayır → "Sıfır" yaz → Bitir

Kod hali (Python):

sayi = int(input("Bir sayı girin: "))

if sayi > 0:
    print("Pozitif")
elif sayi < 0:
    print("Negatif")
else:
    print("Sıfır")

Örnek 3: 1'den 10'a Kadar Sayıları Toplama (Döngü)

Akış Şeması:
- Başla
- toplam = 0
- i = 1
- i ≤ 10 mu?
- Evet → toplam = toplam + i → i = i + 1 → (geri dön)
- Hayır → toplamı yazdır → Bitir

Kod hali (Python) - For Döngüsü:

toplam = 0
for i in range(1, 11):
    toplam = toplam + i
print("1'den 10'a kadar toplam:", toplam)

Kod hali (Python) - While Döngüsü:

toplam = 0
i = 1
while i <= 10:
    toplam = toplam + i
    i = i + 1
print("1'den 10'a kadar toplam:", toplam)

Örnek 4: Kullanıcı Doğru Şifreyi Girinceye Kadar Sorma

Akış Şeması:
- Başla
- doğru_şifre = "1234"
- girilen = oku
- girilen = doğru_şifre mi?
- Evet → "Hoş geldiniz" yaz → Bitir
- Hayır → "Yanlış şifre" yaz → (geri dön)

Kod hali (Python):

dogru_sifre = "1234"

while True:
    girilen = input("Şifreyi girin: ")
    if girilen == dogru_sifre:
        print("Hoş geldiniz!")
        break
    else:
        print("Yanlış şifre, tekrar deneyin.")

Akış Şemasından Koda Geçişin İpuçları

Kağıt üzerinde akış şeması çizerken bazen kodu doğrudan yazmak daha kolay gelir. Ama öğrenme aşamasında bu adımı atlamayın. Birkaç deneyimden sonra kendiniz fark edeceksiniz:

  • Her kutuyu kod satırına dönüştürün: Akış şemasındaki her bir kutu, kabaca bir kod satırı veya küçük bir kod bloğudur.
  • Karar kutuları if-else yapısına dönüşür: Her eşkenar dörtgen, programlama dilinde bir karar mekanizmasıdır.
  • Döngüler geri beslemedir: Akış şemasında yukarı dönen oklar, kodda döngü anlamına gelir.
  • Paralelkenarlar input/outputtur: Kullanıcıyla iletişim kuran tüm işlemler buraya gelir.

Öğrencilerin En Çok Zorlandığı Nokta

Sınıfta en sık karşılaştığım durum şudur: Öğrenci akış şemasını çizer, çizdiği şey mantıklıdır. Koda geçince "Nasıl yazacağım?" diye takılır. Oysa ikisi arasında birebir ilişki var. Akış şemasını satır satır okuyun, her adım için uygun kod yapısını seçin. Önce en basitinden başlayın, sonra detaylandırın.

Sonuç

Algoritma → Akış Şeması → Kod sürecini doğru kurarsanız, hangi programlama dilini öğrenirseniz öğrenin zorlanmazsınız. Çünkü mantık hep aynıdır, değişen sadece yazım şeklidir. Bu üç aşamayı birbirine bağlamayı öğrendiğinizde, kod yazmak sizin için sadece bir tercüme işine dönüşür.

Sıradaki yazıda, bu öğrendiklerimizi somut bir programlama diliyle pekiştirelim ve gerçek projelere başlayalım. O zamana kadar, elinizin altında kağıt kalem bulundurun ve her problemi önce kağıt üzerinde çözmeyi deneyin.