İçeriğe geç

Menü

Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Algoritma El İle İzleme Nasıl Yapılır? Dry Run Örneği

algoritma-el-ile-izleme-dry-run-ornegi
Bu yazıda neler var?
  1. Algoritma el ile izleme nasıl yapılır?
  2. Dry run sırasında hangi adımlar ve değişkenler izlenir?
  3. Sayıları toplayan algoritmayı üç turda nasıl izlersin?
  4. İzleme tablosunda sık yapılan hatalar nasıl önlenir?
  5. Sık Sorulan Sorular

Algoritma el ile izleme, kodu bilgisayarda çalıştırmadan adım adım takip etmektir. Bunun için başlangıç değerlerini yazılır, komutlar kodda görünen sırayla uygulanır ve her adımda değişkenlerin yeni değerleri tabloya kaydedilir. Böylece bir dry run örneği üzerinden ara değerleri, koşul sonuçlarını ve beklenen çıktıyı kontrol edebilirsin.

Bu yöntem özellikle döngülerde, sayaçlarda ve birden fazla değişkenin birlikte değiştiği algoritmalarda kullanışlıdır. Sonucu tahmin etmek yerine algoritmanın hangi adımlardan geçerek o sonuca ulaştığını görünür hâle getirir.

Algoritma el ile izleme nasıl yapılır?

Algoritma el ile izleme nasıl yapılır?

Önce algoritmanın başlangıç durumunu belirle. Değişkenlerin ilk değerlerini, varsa listenin içeriğini ve döngünün başlangıç koşulunu yaz. Ardından ilk komuttan başlayarak her satırı sırayla uygula. Bir değişkenin değeri değiştiğinde eski değeri silmek yerine yeni değeri izleme tablosuna kaydetmek, süreci daha anlaşılır kılar.

“Dry run, algoritmayı çalıştırmak yerine her adımın değişkenler üzerindeki etkisini kâğıt üzerinde takip etmektir.”

Dry run sırasında amaç yalnızca son çıktıyı bulmak değildir. Ara toplam, sayaç değeri, işlenen veri ve koşul sonucu da izlenir. Böylece bir algoritmanın beklenen çıktıyı verip vermeyeceği, döngünün kaç kez çalışacağı ve hangi noktada duracağı daha kolay anlaşılır.

Dry run sırasında hangi adımlar ve değişkenler izlenir?

  1. Başlangıç durumunu yaz: Değişkenlerin ilk değerlerini ve kullanılacak verileri kaydet.
  2. Koşulu değerlendir: Döngü koşulunun doğru mu, yanlış mı olduğunu gövdeye girmeden önce kontrol et.
  3. Döngü gövdesini yürüt: Koşul doğruysa komutları yazıldıkları sırayla uygula.
  4. Değerleri güncelle: Önce işlenen değeri ve toplamı, ardından kodda yer alıyorsa sayacı güncelle.
  5. Sonraki turu kontrol et: Güncellenen sayaçla koşulu yeniden değerlendir. Koşul yanlışsa döngüyü durdur.

Koşulun gövdeden önce değerlendirilmesi önemlidir. Örneğin sayaç belirli bir sınıra ulaştıysa, döngü gövdesindeki toplama işlemi bir kez daha yapılmaz. Ayrıca değişkenleri kodda görünenden farklı bir sırayla güncellemek sonucu değiştirebilir. Bu nedenle bir satırda toplam güncelleniyor, sonraki satırda sayaç artırılıyorsa izleme tablosu da aynı sırayı korumalıdır.

Bu sırayı farklı örneklerle uygulamak ve algoritmik düşünme becerini bağımsız olarak denemek için algoritmik düşünme becerini ölçmeye yardımcı olan testi kullanabilirsin.

Üç turluk kısa dry run örneği

Aşağıdaki algoritma, listedeki üç sayıyı toplar. Koşul satırı döngünün her turunun başlangıcında çalışır.

1. SAYILAR ← [4, 7, 2]
2. TOPLAM ← 0
3. SAYAÇ ← 0
4. WHILE SAYAÇ < UZUNLUK(SAYILAR)
5.     TOPLAM ← TOPLAM + SAYILAR[SAYAÇ]
6.     SAYAÇ ← SAYAÇ + 1
7. END WHILE
8. YAZ TOPLAM
sayilar = [4, 7, 2]
toplam = 0
sayac = 0

while sayac < len(sayilar):
    toplam = toplam + sayilar[sayac]
    sayac = sayac + 1

print(toplam)
Tur Başlangıç satırı Sayaç İşlenen değer Toplam Koşul sonucu Son koşul kontrolü
1 4. satır 0 4 4 0 < 3, doğru 1 < 3, doğru
2 4. satır 1 7 11 1 < 3, doğru 2 < 3, doğru
3 4. satır 2 2 13 2 < 3, doğru 3 < 3, yanlış

Üçüncü turdan sonra sayaç 3 olur ve koşul yanlış sonuçlandığı için döngü yeniden çalışmaz. Beklenen çıktı: 13

Sayıları toplayan algoritmayı üç turda nasıl izlersin?

Sayıları toplayan algoritmayı üç turda nasıl izlersin?

Sayıları toplayan bir algoritmayı el ile izlemek için her turda sayaç değerini, işlenen liste elemanını, güncellenen toplamı ve bir sonraki koşulun sonucunu yazmalısın. Dry run, bir algoritmayı veya kodu çalıştırmadan adım adım elle takip etme işlemidir.

Önce sözde kodu sadeleştir

liste ← [4, 7, 2]
toplam ← 0
sayaç ← 0

WHILE sayaç < uzunluk(liste)
    toplam ← toplam + liste[sayaç]
    sayaç ← sayaç + 1
END WHILE

toplamı yazdır

Bu akışta sayaç, listenin hangi konumundaki değerin işleneceğini gösterir. Sayaç 0'dan başladığı için ilk değer 4, ikinci değer 7, üçüncü değer ise 2 olur. Her turda önce değer toplama eklenir, ardından sayaç 1 artırılır.

Aynı algoritmanın Python kodu

numbers = [4, 7, 2]
total = 0
counter = 0

while counter < len(numbers):
    total = total + numbers[counter]
    counter = counter + 1

print(total)

İlk turda 4, ikinci turda 7, üçüncü turda 2 toplama eklenir. Böylece toplam 13 olur.

Tur Sayaç İşlenen değer Toplam Koşul sonucu
Başlangıç 0 Yok 0 0 < 3, doğru
1 0 4 4 1 < 3, doğru
2 1 7 11 2 < 3, doğru
3 2 2 13 3 < 3, yanlış

Tabloda sayaç sütunu, tur başlarken kullanılan değeri gösterir. Koşul sonucu ise toplam güncellendikten ve sayaç artırıldıktan sonra yapılan bir sonraki kontrolü gösterir. Üçüncü turdan sonra sayaç 3'e çıkar. Listenin uzunluğu da 3 olduğu için 3 < 3 koşulu yanlıştır ve döngü durur. Beklenen çıktı 13'tür.

İzleme tablosunda sık yapılan hatalar nasıl önlenir?

Elle izleme sırasında amaç yalnızca sonucu bulmak değil, sonuca hangi adımlarla ulaşıldığını göstermektir. Bu nedenle her satırın algoritmadaki gerçek işlem sırasını yansıtması gerekir.

Başlangıç satırını atlamamak

Tabloya doğrudan ilk turdan ve toplamı 4'ten başlayarak yazmak, başlangıçtaki toplamın 0 olduğunu gizler. Oysa ilk koşul 0 < 3 şeklindedir. Başlangıç satırı, değişkenlerin döngüye girmeden önceki hâlini gösterir ve ilk turun hangi değerlerden başladığını netleştirir.

Koşulu değerlendirmeden döngü gövdesine geçmemek

Her turda önce koşul kontrol edilir, yalnızca sonuç doğruysa döngü gövdesi çalışır. Üçüncü turdan sonra sayaç 3 olur ve 3 < 3 yanlış olduğu için yeni bir liste değeri okunmaz. Bu kontrol yapılmadan devam edilirse listede bulunmayan dördüncü elemana erişilmeye çalışılmış gibi hatalı bir izleme yapılır.

Güncelleme sırasını kodda yazıldığı gibi takip etmek

Bu örnekte önce toplam güncellenir, sonra sayaç artırılır. Toplamı güncellemeden sayacı artırırsan sayaç 1'e geçer ve 4 yerine 7 okunuyormuş gibi bir sonuç çıkabilir. Kodda olmayan bir güncelleme sırası varsaymak, özellikle sayaç ve toplam birlikte değiştiğinde tabloyu yanlış yönlendirir.

Son koşul kontrolünü yapmadan çıktıyı kabul etmemek

Toplamın 13 çıkması tek başına yeterli değildir. Son turdan sonra sayaç ile listenin uzunluğu karşılaştırılmalıdır. Sayaç 3, listenin uzunluğu 3 olduğu için döngünün durması gerekir. Ardından 4 + 7 + 2 işlemini elle yeniden yapmak, toplamın doğru hesaplandığını kontrol etmeyi sağlar.

Farklı algoritmaları kendi başına izlemek ve temel konulardaki bilgini denemek için bilgi testleri merkezini kullanabilirsin.

Son kontrol listesi

  • Başlangıç değerleri yazıldı mı?
  • İşlenen değer doğru mu?
  • Sayaç ve toplam doğru sırada güncellendi mi?
  • Son koşul kontrol edildi mi?
  • Çıktı elle yeniden hesaplandı mı?

Sık Sorulan Sorular

Dry run ile kodu çalıştırmak arasındaki fark nedir?

Dry run, kodu çalıştırmadan değişkenleri ve işlemleri adım adım kâğıt üzerinde ya da bir tabloda takip etmektir. Kodu çalıştırmada ise işlemleri bilgisayar yürütür ve sonuç program tarafından üretilir.

İzleme tablosunda başlangıç satırı neden yazılır?

Başlangıç satırı, döngü başlamadan önce değişkenlerin hangi değerlerde olduğunu gösterir. Böylece ilk koşul, ilk işlem ve ilk güncelleme birbirinden ayrılabilir.

Döngüde koşul hangi sırayla kontrol edilir?

Koşul, döngü gövdesinden önce kontrol edilir. Sonuç doğruysa gövde çalışır, değişkenler güncellenir ve koşul yeniden değerlendirilir. Sonuç yanlış olduğunda döngü gövdesi tekrar çalışmaz.

Algoritmayı el ile izlerken başlangıç durumunu, işlem sırasını ve son koşul kontrolünü birlikte yazmak, beklenen çıktıyı gerekçeli biçimde bulmanı sağlar.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara