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.