Bir cümlelik özet
Sözde kod, bir çözümün adımlarını herhangi bir programlama diline bağlı kalmadan, insanın kolayca okuyabileceği düzenli bir biçimde yazma yöntemidir.
Neden önemli?
Bir problemi çözerken iki iş aynı anda yapılır: önce ne yapacağımıza karar veririz, sonra bunu bir dile çeviririz. İkisini birden düşünmek zorlaştırıcıdır.
Sözde kod bu iki işi ayırır. Önce çözümün mantığını sade cümlelerle yazarız. Dilin noktalı virgülü, parantezi ya da kuralı bizi durdurmaz. Mantık netleştikten sonra Python, Scratch veya başka bir dile çevirmek çok daha kolay olur.
Ben de bir robot görevini kodlamadan önce çoğu zaman kâğıda sözde kod yazıyorum. Adımları önce sade cümlelerle görünce, hangi adımın eksik olduğunu daha rahat fark ediyorum.
Sözde kod nedir?
Sözde kod, algoritmayı günlük dile yakın ama düzenli bir biçimde yazmaktır. İngilizcesi pseudocodetur. "Sözde" kelimesi burada "gerçek koda benzeyen ama gerçek kod olmayan" anlamındadır.
Amacı bilgisayarın doğrudan çalıştırması değildir. Amacı, çözüm mantığını insanın kolayca görmesidir.
Dilden bağımsızlık
Sözde kodun en güzel yanı bir dile bağlı olmamasıdır. Aynı sözde kod hem Python'a hem Scratch'e hem de başka bir dile çevrilebilir.
Örneğin "iki sayıyı topla ve sonucu yaz" adımı her dilde geçerlidir. Sadece yazım biçimi değişir, fikir aynı kalır.
Yazım alışkanlıkları
Sözde kod için katı bir kural yoktur; ancak iyi alışkanlıklar okumayı kolaylaştırır:
- Her satırda tek bir işlem olsun.
- Belirsiz sözcükler yerine açık ifadeler kullan ("biraz" yerine "3 kez").
- Bir başlangıç ve bir bitiş koy.
- Bir adım başka adımların içindeyse onu girintili yaz.
Girinti ile yapı
Girinti, hangi adımın hangi adıma bağlı olduğunu gösterir. Bir koşulun ya da tekrarın içindeki satırları biraz sağa kaydırırız. Böylece "bu satır yalnız o durumda çalışır" fikri gözle görülür.
Eğer hava yağmurluysa
şemsiyeyi al
botları giy
Bitir
Buradaki iki girintili satır, yalnız hava yağmurluysa çalışır. Girinti olmasaydı bunu anlamak zorlaşırdı.
Temel anahtar sözcükler
Sözde kodda birkaç anahtar sözcüğü hep aynı anlamda kullanırız. Böylece herkes aynı biçimi okuyabilir.
Başla ve Bitir
Her sözde kod bir Başla ile açılır, bir Bitir ile kapanır. Bu iki sözcük, çözümün nerede başladığını ve nerede bittiğini gösterir.
Eğer ve Değilse
Eğer, bir koşul doğruysa çalışacak adımları belirtir. Değilse, koşul yanlışsa çalışacak adımları belirtir.
Eğer not 50'den büyük veya eşitse
"Geçti" yaz
Değilse
"Kaldı" yaz
tekrarla
tekrarla, aynı adımları birden çok kez çalıştırmak için kullanılır.
5 kez tekrarla
"Merhaba" yaz
Örnek 1: En büyük sayıyı bulma
Amaç: Üç sayı arasından en büyüğünü bulmak. Günlük hayatta bunu, üç arkadaşın boyunu karşılaştırıp en uzun olanı seçerken de yaparız.
Sözde kod
Başla
a, b, c sayılarını al
en_buyuk = a
Eğer b > en_buyuk ise
en_buyuk = b
Eğer c > en_buyuk ise
en_buyuk = c
en_buyuk değerini yaz
Bitir
Önce ilk sayıyı en büyük kabul ederiz. Sonra diğerlerini tek tek karşılaştırıp gerekirse en büyüğü güncelleriz.
Python karşılığı
a = int(input("1. sayı: "))
b = int(input("2. sayı: "))
c = int(input("3. sayı: "))
en_buyuk = a
if b > en_buyuk:
en_buyuk = b
if c > en_buyuk:
en_buyuk = c
print("En büyük sayı:", en_buyuk)
Sözde kodun mantığı ile Python'un mantığı birebir aynıdır. Yalnız yazım biçimi değişmiştir.
Örnek 2: Bir listedeki öğeleri sayma
Amaç: Bir sınıftaki öğrenciler arasında gözlüklü olanları saymak. Bunu günlük hayatta parmakla sayarken de yaparız: sıfırdan başlar, her gözlüklüde bir artırırız.
Sözde kod
Başla
sayac = 0
Listedeki her öğrenci için tekrarla
Eğer öğrenci gözlüklüyse
sayac = sayac + 1
sayac değerini yaz
Bitir
Burada bir sayaç kullanıyoruz. Sayaç, sıfırdan başlar ve koşul her sağlandığında bir artar.
Python karşılığı
ogrenciler = ["gözlüklü", "gözlüksüz", "gözlüklü", "gözlüksüz"]
sayac = 0
for ogrenci in ogrenciler:
if ogrenci == "gözlüklü":
sayac = sayac + 1
print("Gözlüklü öğrenci sayısı:", sayac)
Bu kod çalıştırıldığında sonuç 2 olur.
Mini uygulama
Bir markete gidiyorsun ve cebinde 50 lira var. Almak istediğin bir ürünün fiyatına bakıp yeterli paran olup olmadığını yazan bir sözde kod hazırla.
Şunları içermeye çalış:
- Bir Başla ve bir Bitir.
- Fiyatı ve paranı temsil eden iki değer.
- Bir Eğer / Değilse koşulu.
- Açık, tek işlemlik satırlar.
Hazırladıktan sonra kendine sor: Adımlarım açık mı? Girintiler doğru mu? Bir kişi bunu okuyup uygulayabilir mi?
Uygulama laboratuvarı: Sözde Kod Yazmak
Sözde Kod Yazmak 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 Sözde kod nedir? ile Yazım alışkanlıkları 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: spor antrenmanındaki tekrarları sayan bir karar akışı. Dersin ana hedefi “Bir çözümü programlama dilinden bağımsız, açık ve uygulanabilir sözde kodla yazmayı öğ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.
- Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
- En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
- Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
- Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
- 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
- Adımlar açık ve tek anlamlı mı?
- Başlangıç ve bitiş koşulu belli mi?
- Normal, sınır ve hatalı durumlar denendi mi?
- Gereksiz tekrar veya adım var mı?
- Başka biri algoritmayı aynı sonuçla uygulayabiliyor mu?
“Sözde Kod Yazmak” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın spor antrenmanındaki tekrarları sayan bir karar akışı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Sözde kod nedir? ve Yazım alışkanlıkları ilişkisini daha küçük adımlara bölerek düzelt.
Sık yapılan hatalar
Sözde kodu çalıştırılabilir kod sanmak
Sözde kod bilgisayarda doğrudan çalışmaz. O bir plandır, program değildir. Bilgisayarda çalıştırmak için önce gerçek bir dile çevirmen gerekir.
Adımları belirsiz bırakmak
"Sayıları karşılaştır" cümlesi belirsizdir. Hangi sayılar? Nasıl karşılaştırılır? Sonuç nereye yazılır? İyi sözde kod her adımı tek ve açık tutar.
Başlangıç ve bitiş koymamak
Başla ve Bitir olmadan, çözümün nerede başlayıp bittiği belirsiz kalır. Bu iki sözcük küçük görünür ama yapıyı netleştirir.
Sözde kodu tasarım incelemesinde kullanmak
Sözde kodun önemli bir yararı, çözüm daha programa çevrilmeden önce başkası tarafından incelenebilmesidir. İnceleyen kişi her koşulun iki yolunu, döngünün bitişini, girdilerin doğrulanmasını ve beklenmeyen durumda verilecek güvenli tepkiyi işaretleyebilir. Böylece yazım kurallarıyla uğraşmadan mantık hataları bulunur.
İyi bir incelemede her satıra “Bu adım hangi veriyi kullanıyor?”, “Bu kararın sınır değeri nedir?” ve “Bu işlem başarısız olursa ne olur?” soruları sorulur. Cevabı olmayan satır kodlanmadan önce açıklığa kavuşturulur.
Ders özeti
- Sözde kod, çözüm mantığını dile bağlı kalmadan düzenli biçimde yazma yöntemidir.
- Aynı sözde kod farklı programlama dillerine çevrilebilir; mantık değişmez.
- Başla, Bitir, Eğer, Değilse ve tekrarla temel anahtar sözcüklerdir.
- Girinti, hangi adımın hangi adıma bağlı olduğunu gösterir.
- Sözde kod bir plandır; çalıştırmak için gerçek bir dile çevrilmelidir.
Kontrol soruları
- Sözde kodun temel amacı nedir?
- "Sözde kod dilden bağımsızdır" ne demektir?
- En büyük sayıyı bulma örneğinde ilk adımda
en_buyukdeğişkenine neden ilk sayı atanır? - Girinti sözde kodda ne işe yarar?
- Sözde kod bilgisayarda doğrudan çalışır mı? Neden?
Cevaplar
- Çözüm mantığını, bir programlama dilinin kurallarıyla uğraşmadan, insanın kolayca okuyabileceği açık adımlarla yazmaktır.
- Aynı sözde kodun Python, Scratch veya başka herhangi bir dile çevrilebilmesi; fikrin aynı kalıp yalnız yazım biçiminin değişmesi demektir.
- Karşılaştırmaya bir başlangıç değeriyle başlamak gerekir. İlk sayıyı geçici olarak en büyük kabul ederiz, sonra diğerleriyle karşılaştırıp gerekirse güncelleriz.
- Bir adımın başka bir adıma (bir koşula veya tekrara) bağlı olduğunu gösterir; yapının gözle görülmesini sağlar.
- Hayır. Sözde kod bir plandır, program değildir. Çalıştırmak için önce Python gibi gerçek bir dile çevrilmesi gerekir.
Kaynak ve doğrulama notu
“Sözde Kod Yazmak” dersi için doğrulama odağı Sözde kod nedir? ile Yazım alışkanlıkları 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
Akış Şemaları: Aynı çözüm mantığını kutular, oklar ve karar sembolleriyle görselleştirmeyi öğreneceğiz.