Ana Sayfa · Akademi · Robotik ve Kodlama · Algoritmalar · Akış Şemaları

Akış Şemaları

Bir algoritmayı sembol ve oklarla akış şemasına dökmeyi; kararları ve döngüleri göstermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

Akış şeması, bir algoritmanın adımlarını ve kararlarını standart şekiller ve oklarla çizerek çözümü gözle görülebilir bir harita hâline getirir.

Üretilecek kanıt

Aşağıdaki sözde kodu al ve metin/ASCII biçiminde kendi akış şemana çevir. Başla Kapıyı kontrol et Eğer kapı kilitliyse anahtarı çevir Kapıyı aç İçeri gir Bitir Şemanı çizerken şunlara dikkat et: “Başla” ovalinden başladın mı? Kilitli olma durumunu bir eşkenar dörtgenle mi gösterdin? Karar kutusundan iki ok çıkıyor mu (kilitliyse anahtarı çevir, değilse…

Kontrol tuzağı

Her yolu bitişe bağlamamak Bir karar kutusu iki yol açar. Bazen “Evet” yolunu çizip “Hayır” yolunu boşta bırakırız. O boş ok hiçbir yere gitmezse programın o durumda ne yapacağı belirsiz kalır. Kural: her ok bir yere, her yol da sonunda bir “Bitir”e bağlanmalıdır. Karar kutusundan tek çıkış vermek Eşkenar dörtgen bir…

Sonraki bağlantı

Hata Ayıklama: Bir algoritma veya kod beklediğimiz gibi çalışmadığında hatayı adım adım bulup düzeltmenin yöntemleri.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulSözde Kod Yazmak
İçerikStandart ders · 1.322 kelime
Son güncelleme

Bir cümlelik özet

Akış şeması, bir algoritmanın adımlarını ve kararlarını standart şekiller ve oklarla çizerek çözümü gözle görülebilir bir harita hâline getirir.

Neden önemli?

Sözde kod bir algoritmayı satır satır anlatır. Fakat karar ve tekrar sayısı arttıkça “şimdi hangi yola gidiliyor?” sorusuna cevap vermek zorlaşır. Akış şeması burada işe yarar: adımları yukarıdan aşağıya bir harita gibi çizeriz ve okları takip ederek programın izleyebileceği her yolu görürüz.

Bu beceri sadece kod yazarken değil, bir problemi başkasına anlatırken de işe yarar. Bir sınıf arkadaşına “şu durumda şunu yap, öbür durumda bunu yap” demek yerine tek bir şema gösterebilirsin. Ben de yeni bir fikri koda dökmeden önce çoğu zaman önce kâğıda kaba bir akış şeması çiziyorum; hataları koddan değil şemadan yakalamak daha kolay oluyor.

Akış şeması sembolleri

Akış şemasının gücü, herkesin aynı şekilleri aynı anlamda kullanmasından gelir. Beş temel sembol var.

Kısa hatırlatma: Şekil ne yapıldığını, ok ise sıradaki adımın hangisi olduğunu söyler.

Sözde kod ile ilişkisi

Akış şeması ve sözde kod aynı algoritmanın iki farklı görünümüdür. Sözde koddaki “Eğer … Değilse” satırı, akış şemasında bir eşkenar dörtgene; sıradan bir komut satırı ise bir dikdörtgene karşılık gelir. Biri metin, diğeri resimdir; mantık aynıdır.

Karar dallanmasını çizmek

Bir karar, akış şemasını ikiye ayırır. Eşkenar dörtgenden çıkan iki oku “Evet” ve “Hayır” diye etiketleriz; her ok ayrı bir yola gider ve o yolların ikisi de sonunda “Bitir”e bağlanmalıdır.

Günlük örnek: “Yağmur yağıyor mu?”

Amaç: Dışarı çıkmadan önce şemsiye alıp almayacağına karar vermek.

        [Başla]
           |
   <Yağmur yağıyor mu?>
      /            \
    Evet           Hayır
     |               |
[Şemsiye al]   [Şemsiye alma]
      \             /
        \          /
         [Bitir]

Bu şemada karar kutusundan iki ok çıkıyor. İki yol da farklı bir işlem yapıyor, ama ikisi de aynı “Bitir” noktasında birleşiyor. Böylece hava nasıl olursa olsun programın nerede biteceğini biliyoruz.

Döngüyü çizmek

Tekrar (döngü), akış şemasında geriye giden bir okla gösterilir. Bir karar kutusu döngünün ne zaman biteceğini kontrol eder: koşul sağlandığı sürece ok bizi geriye, işlemlere döndürür; koşul bozulunca ok bizi ileri, “Bitir”e taşır.

Günlük örnek: 1’den 5’e kadar saymak

   [Başla]
      |
  [sayac = 1]
      |
  <sayac <= 5?> <-------+
    /       \           |
  Hayır     Evet        |
   |          |         |
[Bitir]  [sayac'ı yaz]  |
              |         |
        [sayac = sayac+1]
              |         |
              +---------+

Buradaki geriye dönen ok döngünün kalbidir. Her turda sayac bir artar; sayac 5’i geçince karar kutusu “Hayır” yolunu seçer ve döngü biter. Eğer o artırma adımını unutursak sayac hep 1 kalır ve döngü hiç bitmez — buna sonsuz döngü denir.

Sözde koddan akış şemasına: “Sayı çift mi?”

Aynı algoritmayı üç biçimde görelim: sözde kod, gerçek Python ve akış şeması. Üçünün mantığı birebir aynıdır.

Sözde kod:

Başla
Bir sayı al
Eğer sayı 2'ye bölündüğünde kalan 0 ise
  "Çift sayı" yaz
Değilse
  "Tek sayı" yaz
Bitir

Python:

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

if sayi % 2 == 0:
    print("Çift sayı")
else:
    print("Tek sayı")

Akış şeması:

       [Başla]
          |
   /bir sayı al/
          |
  <sayı % 2 == 0?>
     /         \
   Evet        Hayır
    |            |
/"Çift" yaz/  /"Tek" yaz/
     \          /
       [Bitir]

Buradaki paralelkenarlar (/…/) girdi ve çıktıyı gösterir: sayıyı almak bir girdi, sonucu yazmak bir çıktıdır. Karar kutusu ise if/else satırının resmidir.

Mini uygulama

Aşağıdaki sözde kodu al ve metin/ASCII biçiminde kendi akış şemana çevir.

Başla
Kapıyı kontrol et
Eğer kapı kilitliyse
  anahtarı çevir
Kapıyı aç
İçeri gir
Bitir

Şemanı çizerken şunlara dikkat et:

  1. “Başla” ovalinden başladın mı?
  2. Kilitli olma durumunu bir eşkenar dörtgenle mi gösterdin?
  3. Karar kutusundan iki ok çıkıyor mu (kilitliyse anahtarı çevir, değilse doğrudan aç)?
  4. İki yol da “Kapıyı aç” adımında yeniden birleşip “Bitir”e ulaşıyor mu?

Ekstra: Şemanı bir kâğıda çizip bir arkadaşına ver ve senin şeman olmadan sadece okları takip ederek adımları söylemesini iste. Takıldığı yer, şemanın belirsiz olduğu yerdir.

Uygulama laboratuvarı: Akış Şemaları

Akış Şemaları konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada Akış şeması sembolleri ile Karar dallanmasını çizmek arasındaki ilişkiyi kullanarak açık bir algoritma, sözde kod ve test tablosu hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: bir robotu sınıfta güvenli biçimde hedefe götüren rota. Dersin ana hedefi “Bir algoritmayı sembol ve oklarla akış şemasına dökmeyi; kararları ve döngüleri göstermeyi öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Akış Şemaları” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın bir robotu sınıfta güvenli biçimde hedefe götüren rota senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Akış şeması sembolleri ve Karar dallanmasını çizmek ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Her yolu bitişe bağlamamak

Bir karar kutusu iki yol açar. Bazen “Evet” yolunu çizip “Hayır” yolunu boşta bırakırız. O boş ok hiçbir yere gitmezse programın o durumda ne yapacağı belirsiz kalır. Kural: her ok bir yere, her yol da sonunda bir “Bitir”e bağlanmalıdır.

Karar kutusundan tek çıkış vermek

Eşkenar dörtgen bir sorudur; sorunun her zaman iki olası cevabı vardır. Karar kutusundan tek ok çıkarırsan aslında orada karar yok demektir; onu düz bir dikdörtgen (işlem) yapmalıydın. Karar kutusundan daima iki ok (Evet ve Hayır) çıkmalı.

Okları etiketlememek

İki ok çıkıyor ama hangisi “Evet” hangisi “Hayır” belli değilse şema okunamaz. Karar kutusundan çıkan okları her zaman etiketle.

Şekilleri karıştırmak

İşlemi eşkenar dörtgenle, kararı dikdörtgenle çizmek okuyanı yanıltır. Şekil bir dildir: soru sormak istiyorsan eşkenar dörtgen, iş yaptırmak istiyorsan dikdörtgen kullan.

Ders özeti

Kontrol soruları

  1. Akış şemasında başlangıç ve bitiş hangi sembolle gösterilir?
  2. Bir eşkenar dörtgenden kaç ok çıkmalıdır ve neden?
  3. Ekrana bir mesaj yazdırmak hangi sembolle gösterilir?
  4. Döngü bir akış şemasında hangi öğeyle gösterilir?
  5. “Her yolu bitişe bağlamamak” neden bir hatadır?

Cevaplar

  1. Oval sembolüyle gösterilir. Her şema bir “Başla” ovaliyle açılır, bir veya daha fazla “Bitir” ovaliyle kapanır.
  2. İki ok çıkmalıdır: biri “Evet”, biri “Hayır”. Çünkü karar, evet/hayır cevabı olan bir sorudur ve her iki cevabın da bir yolu olmalıdır.
  3. Paralelkenar (girdi/çıktı) sembolüyle gösterilir; ekrana bilgi vermek bir çıktıdır.
  4. Geriye giden bir okla gösterilir; bu ok, bir karar kutusu koşulu bozana kadar akışı önceki adımlara döndürür.
  5. Çünkü bir yol hiçbir yere bağlı değilse, program o duruma düştüğünde ne yapacağı belirsiz kalır; iyi bir şemada her yol tanımlı bir sonda biter.

Kaynak ve doğrulama notu

“Akış Şemaları” dersi için doğrulama odağı Akış şeması sembolleri ile Karar dallanmasını çizmek arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. Bu dersteki algoritmalar, örnek girdiler elle izlenerek ve beklenen çıktılarla karşılaştırılarak doğrulanmıştır. Sözde kod, belirli bir programlama diline bağlı kalmadan düşünme sırasını görünür kılmak için kullanılır.

Sonraki ders

Hata Ayıklama: Bir algoritma veya kod beklediğimiz gibi çalışmadığında hatayı adım adım bulup düzeltmenin yöntemleri.

Quiz’i BaşlatAlgoritmalar bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.