Bir cümlelik özet
Hemen her program ve robot; dışarıdan bir bilgi alır (girdi), onu işler (işlem) ve bir sonuç üretir (çıktı).
Neden önemli?
Bir programın ne yaptığını anlamak istediğimizde şu üç soruyu sorabiliriz: Bu program neyi alıyor? Onunla ne yapıyor? Sonunda ne veriyor? Bu üçlüye girdi–işlem–çıktı modeli denir. İngilizcede Input–Process–Output olduğu için kısaca IPO diye de anılır.
Bu model çok basit görünür ama güçlüdür. Bir hesap makinesinden bir robot süpürgeye kadar aklına gelen her sistemi bu üç kutuya ayırabilirsin. Karışık bir problemi bu üç parçaya bölmek, çözümü nereden başlatacağını gösterir.
Girdi, işlem ve çıktı nedir?
Üç kutu
Bir sistemi tek bir kutu gibi düşünelim. Soldan bir bilgi girer, kutunun içinde bir şeyler olur, sağdan bir sonuç çıkar.
[ Girdi ] -> [ İşlem ] -> [ Çıktı ]
- Girdi: Programın dışarıdan aldığı bilgi. Klavyeden yazılan bir sayı, bir sensörün ölçtüğü mesafe, bir düğmeye basılması.
- İşlem: Girdiyle yapılan hesap veya karar. Toplama, karşılaştırma, "bu değer küçükse şunu yap" gibi kurallar.
- Çıktı: İşlemin sonucu. Ekrana yazılan bir mesaj, yanan bir LED, dönen bir motor.
Günlük hayattan örnek: Tost makinesi
Bir tost makinesini düşün. Girdi içine koyduğun ekmek ve seçtiğin kızartma süresidir. İşlem telin ısınıp ekmeği belirli süre pişirmesidir. Çıktı ise dışarı çıkan kızarmış tosttur. Süreyi (girdiyi) değiştirirsen çıktı da değişir.
Günlük hayattan örnek: Otomatik kapı
Bir markette otomatik kapı da aynı modeli kullanır. Girdi, hareket sensörünün önüne birinin gelmesidir. İşlem, "sensör birini görüyorsa kapıyı aç" kararıdır. Çıktı, kapının açılmasıdır. Kimse yoksa girdi de yoktur, kapı kapalı kalır.
Robotik sistemlerde IPO
Robotlar bu modeli çok net gösterir. Bir robotu üç parçaya ayırabiliriz:
| IPO parçası | Robotta karşılığı | Örnek |
|---|---|---|
| Girdi | Sensör | Mesafe sensörü, ışık sensörü, düğme |
| İşlem | Kontrol kartı | Arduino, micro:bit gibi kartın çalıştırdığı program |
| Çıktı | Eyleyici | Motor, LED, ekran, zil |
Örnek: Mesafe sensörü → karar → motor
Bir engelden kaçan robot düşünelim. Sensör (girdi) önündeki mesafeyi ölçer, kontrol kartı (işlem) bir karar verir, motor (çıktı) buna göre davranır.
Başla
mesafe ← ön sensörden oku
Eğer mesafe 10 santimetreden küçükse
motorları durdur
kırmızı LED'i yak
Değilse
ileri git
Bitir
Burada girdi mesafe, işlem Eğer ... Değilse kararı, çıktı ise motor ve LED'dir. Önceki derste öğrendiğin karşılaştırma operatörünü (<) tam da bu karar noktasında kullanıyoruz.
Girdiyi doğrulamak
Girdinin her zaman beklediğimiz gibi geleceğini varsayamayız. Kullanıcı yanlış bir şey yazabilir, bir sensör bozuk bir değer okuyabilir. Bu yüzden iyi bir program girdiyi doğrular: kullanmadan önce mantıklı mı diye kontrol eder.
Örnek: Kullanıcıdan bir yaş isteyip iki katını yazmak istiyoruz. Ama kullanıcı sayı yerine harf yazarsa program çöker. Önce girdinin gerçekten sayı olup olmadığını kontrol etmek gerekir.
metin = input("Bir sayı gir: ")
if metin.isdigit():
sayi = int(metin)
print("İki katı:", sayi * 2)
else:
print("Lütfen sadece rakam gir.")
Bu programda üç parça da var: girdi input, işlem sayi * 2, çıktı print. Arada eklediğimiz if metin.isdigit() satırı ise girdi doğrulamasıdır. Sadece geçerli girdide hesap yaparız, aksi halde nazik bir uyarı veririz.
Mini uygulama
Aşağıdaki görevi Python'da yaz veya önce sözde kod olarak tasarla.
Bir "bilet fiyatı" programı yap:
- Kullanıcıdan yaşını gir olarak al.
- Girdinin rakam olduğunu kontrol et (doğrulama).
- Yaş 12'den küçükse ekrana "Çocuk bileti: 50 TL", değilse "Tam bilet: 100 TL" yaz.
Bitirdiğinde kendine sor: Programımın girdisi ne, işlemi ne, çıktısı ne? Girdi yanlış gelirse ne oluyor?
Uygulama laboratuvarı: Girdi, İşlem ve Çıktı
Girdi, İşlem ve Çıktı 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 Girdi, işlem ve çıktı nedir? ile Günlük hayattan örnek: Tost makinesi 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 “Girdi–işlem–çıktı modelini; sensör, kontrol ve çıktı arasındaki ilişkiyi örneklerle öğ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?
“Girdi, İşlem ve Çıktı” ç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, Girdi, işlem ve çıktı nedir? ve Günlük hayattan örnek: Tost makinesi ilişkisini daha küçük adımlara bölerek düzelt.
Kavramı başka bir bağlama taşı
Girdi, İşlem ve Çıktı yalnız bu dersteki örnekle sınırlı değildir. Aynı düşünme biçimini okul, spor, ev düzeni veya başka bir robotik çalışmada kullanabilirsin. Yeni bağlam seçerken önce değişmeyen kuralı bul: Girdi, işlem ve çıktı nedir? hangi durumda aynı kalır, Günlük hayattan örnek: Tost makinesi hangi koşulda değişir? Bu ayrım, ezberlenen örneği gerçek problem çözme becerisine dönüştürür.
Karar günlüğü
Bir tablo oluştur ve üç satır kullan: “ilk kararım”, “testte gördüğüm”, “değiştirdiğim”. Her satıra kısa ama ölçülebilir bir cümle yaz. “Daha iyi oldu” yerine “üç denemenin ikisinde doğru sonuç verdi” gibi gözlenebilir ifadeler seç. Böylece sonraki sürümde hangi değişikliğin işe yaradığını unutmazsın.
Kendi sorunu üret
Dersin sonundaki kontrol sorularından farklı bir soru yaz ve cevabını iki yolla doğrula. Birinci yol, adımları elle izlemek; ikinci yol ise kodu, devreyi veya modeli test etmektir. İki sonuç uyuşmuyorsa önce girdileri ve varsayımları karşılaştır. Bu çalışma, yalnız cevabı bulmayı değil, cevabın güvenilirliğini sorgulamayı öğretir.
Sık yapılan hatalar
Girdiyi kontrol etmemek
Kullanıcının hep doğru veri gireceğini varsaymak en sık hatadır. int(input(...)) satırına harf gelirse program hata verip durur. Önce doğrulamak programı sağlam yapar.
Çıktı biçimini düşünmemek
Doğru sonucu üretmek yetmez; onu anlaşılır göstermek de gerekir. 72000000 yazmak yerine "İki katı: 72" gibi açıklayıcı bir mesaj daha iyidir. Çıktı, onu okuyan kişi için yazılır.
Girdi ile çıktıyı karıştırmak
Sensör bir girdidir, motor bir çıktıdır. Bunları karıştırınca "sistem neyi alıp neyi üretiyor?" sorusu bulanıklaşır. Her zaman bilginin hangi yöne aktığını düşün.
Güvenlik notu
Motorlu ve elektronik bir sistemde çıktıyı denerken robotu sabit bir yüzeye koy ve tekerlekleri havada bırak; ilk denemede beklenmedik biçimde hareket edebilir. Motor, pil ve devre bağlantılarını bir yetişkinle birlikte yap ve şebeke elektriğiyle çalışma.
Ders özeti
- Hemen her sistem girdi, işlem ve çıktı olmak üzere üç parçaya ayrılır (IPO modeli).
- Girdi dışarıdan gelen bilgidir; işlem onunla yapılan hesap veya karardır; çıktı üretilen sonuçtur.
- Robotikte sensör girdidir, kontrol kartı işlemdir, motor/LED/ekran çıktıdır.
- İyi bir program girdiyi kullanmadan önce doğrular.
- Çıktı, onu okuyan kişi için anlaşılır biçimde hazırlanmalıdır.
Kontrol soruları
- IPO modelinin üç parçası nedir?
- Bir mesafe sensörü IPO modelinde hangi parçaya karşılık gelir?
- Robotta motor girdi mi çıktı mı? Neden?
- Girdiyi doğrulamak ne demektir ve neden önemlidir?
int(input("Sayı: "))satırına kullanıcı "abc" yazarsa ne olur?
Cevaplar
- Girdi (dışarıdan alınan bilgi), işlem (bilgiyle yapılan hesap veya karar) ve çıktı (üretilen sonuç).
- Girdiye karşılık gelir; sensör dış dünyadan bilgi toplar.
- Çıktıdır; motor, programın verdiği kararın sonucunu fiziksel harekete dönüştürerek dışarıya bir sonuç üretir.
- Girdiyi doğrulamak, kullanmadan önce mantıklı ve beklenen türde olup olmadığını kontrol etmektir. Önemlidir çünkü yanlış girdi programı çökertebilir veya hatalı sonuç ürettirebilir.
- Program hata verir ve durur, çünkü "abc" bir tam sayıya çevrilemez. Bu yüzden önce girdiyi doğrulamak gerekir.
Kaynak ve doğrulama notu
“Girdi, İşlem ve Çıktı” dersi için doğrulama odağı Girdi, işlem ve çıktı nedir? ile Günlük hayattan örnek: Tost makinesi 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
Sözde Kod Yazmak: Bir problemi programlama diline geçmeden önce açık ve düzenli adımlarla nasıl anlatacağımızı öğreniyoruz.