ALGORİTMA MUTFAĞI

MASTER ŞEFLER İŞ BAŞINDA

20. HAFTA: PROBLEMİ PARÇALARA BÖLME & FONKSİYONLAR

GÜNÜN MENÜSÜ

  • Karmaşık Problem Nedir?
  • Parçalara Bölme (Decomposition)
  • Örnek: Oda Toplama
  • Örnek: Parti Organizasyonu
  • Fonksiyonlar (Mutfak Robotları)
  • Giriş ve Çıkış Değerleri
  • Alt Problemler ile Kodlama
  • Lezzetli Sınavlar
Chef Cooking

KARMAŞIK PROBLEM NEDİR?

Tek bir hamlede çözülemeyen, birden fazla adımı olan büyük sorunlardır.


"Kocaman bir ekmeği tek lokmada yutabilir misin? Hayır! Dilimlemen gerekir."

1. ADIM: PARÇALARA BÖLME (DECOMPOSITION)

Pizza Slices

Büyük bir problemi, daha küçük ve yönetilebilir parçalara ayırma işlemidir.

Buna bilgisayar biliminde Decomposition denir.


"Bir pizzayı dilimlemek gibi!"

ÖRNEK: ODAYI TOPLAMAK

"Odanı topla!" dendiğinde bu büyük bir iş gibi görünür. Hadi bölelim:

1. KIYAFETLER

Kirlileri sepete at, temizleri dolaba as.

2. MASANIN ÜSTÜ

Kitapları rafa diz, çöpleri at.

3. YERLER

Oyuncakları kutuya koy, halıyı süpür.

Parçalara bölünce iş daha kolay görünür!

ÖRNEK: DOĞUM GÜNÜ PARTİSİ

Büyük Problem: Parti Hazırlamak.

1
DAVETİYE: Listeyi hazırla, kartları gönder.
2
YİYECEK: Pastayı sipariş et, içecekleri al.
3
SÜSLEME: Balonları şişir, bayrakları as.
4
MÜZİK: Çalma listesi oluştur.

FONKSİYON (FUNCTION) NEDİR?

Belirli bir görevi yapan, tekrar tekrar kullanılabilen kod parçalarıdır.

Mutfaktaki MİKSER gibidir.


Mikserin görevi bellidir: Karıştırmak. Her seferinde yeni mikser yapmayız, var olanı kullanırız.

Kitchen Mixer

NEDEN FONKSİYON KULLANIRIZ?

TEKRAR KULLANIM

Kodu bir kere yaz, istediğin kadar kullan.

KISA KODLAR

Programımız daha kısa ve düzenli olur.

KOLAY DÜZELTME

Hata varsa sadece fonksiyonu düzeltirsin, her yeri değil.

FONKSİYON MAKİNESİ: BLENDER

Bir fonksiyonun 3 aşaması vardır:

Meyveler + Süt

GİRİŞ (Input)

KARIŞTIR()

İŞLEM (Process)

Meyve Suyu

ÇIKIŞ (Output)

FONKSİYON MAKİNESİ: FIRIN

Giriş (Parametre): Hamur

Fonksiyon: Pişir()

Çıkış (Return): Ekmek


Fırına ne verirsen (kek hamuru, börek, tavuk) onu pişirir. Görevi "Pişirmek"tir.

GİRİŞ VE ÇIKIŞ DEĞERLERİ

Giriş (Input): Fonksiyona dışarıdan gönderilen malzemelerdir. (Örn: Sayılar, İsimler)


Çıkış (Output): Fonksiyonun işlemi yaptıktan sonra ürettiği sonuçtur. (Örn: Toplam, Mesaj)

KODLAMADA ALT PROBLEMLER

Büyük bir oyun yaparken her şeyi tek seferde yazmayız. Küçük parçalara böleriz:

HAREKET

Karakterin yürümesi ve zıplaması.

PUANLAMA

Altın toplayınca skorun artması.

DÜŞMANLAR

Canavarların hareket etmesi.

Bunların hepsi ayrı birer FONKSİYON olabilir.

ÇÖZÜM AĞACI

ROBOTU DAN ET
MÜZİK AÇ()
KOLLARI SALLA()
DÖN()

Ana görev, küçük görevlerin birleşmesiyle tamamlanır.

SENARYO 1: SANDVİÇ ROBOTU

Sandwich

Robotumuza "Sandviç Yap" komutu verdik. O bunu anlamaz. Parçalara bölmeliyiz:

  1. EkmekAl()
  2. PeynirKoy()
  3. DomatesEkle()
  4. Kapat()

SENARYO 2: KARE ÇİZMEK

Bir çizim robotuna kare çizdireceğiz. Tek tek "Git, Dön, Git, Dön..." yazmak yerine:

FONKSİYON KareCiz() {

  TEKRARLA 4 KEZ:

    İleri Git(100);

    Sağa Dön(90);

}

Artık ne zaman kare lazım olsa sadece KareCiz() dememiz yeterli!

SENARYO 3: MATEMATİK MAKİNESİ

Matematikteki f(x) fonksiyonları gibidir.

Fonksiyon: 2 Katını Al


  • Giriş: 3 -> Çıkış: 6
  • Giriş: 5 -> Çıkış: 10
  • Giriş: 100 -> Çıkış: 200

SIRA ÖNEMLİDİR! (SEQUENCING)

Tarifteki adımların sırasını karıştırırsan yemek yenmez olur.

YANLIŞ SIRA

1. Yumurtayı pişir.

2. Kabuğunu kır.

(Olmaz!)

DOĞRU SIRA

1. Kabuğunu kır.

2. Yumurtayı pişir.

(Leziz!)

KODLAMADA

Kodlar yukarıdan aşağıya doğru sırayla çalışır.

MUTFAK TESTİ 1

Büyük ve karmaşık bir problemi, daha küçük parçalara ayırma işlemine ne denir?

A) Birleştirme
B) Parçalara Bölme (Decomposition)
C) Karıştırma
D) Kodlama

MUTFAK TESTİ 2

Belirli bir görevi yapan ve tekrar tekrar kullanılabilen kod bloğuna ne ad verilir?

A) Değişken
B) Döngü
C) Fonksiyon
D) Sabit

MUTFAK TESTİ 3

Bir fonksiyona dışarıdan gönderilen verilere ne denir?

A) Giriş (Input)
B) Çıkış (Output)
C) İşlem
D) Sonuç

MUTFAK TESTİ 4

"Okula Gitme" problemini alt adımlara bölerken hangisi GEREKSİZDİR?

A) Çantayı Hazırla
B) Kıyafetlerini Giy
C) Televizyon İzle
D) Evden Çık

KENDİ TARİFİNİ YAZ!

Computer Code

Görev: "Diş Fırçalama" algoritmasını yaz.

  1. Fırçayı al.
  2. Macunu sür.
  3. ...
  4. ...

(Bu adımları bir kağıda yazın ve arkadaşınızla kontrol edin. Eksik adım var mı?)

HESAP FİŞİ (ÖZET)

DECOMPOSITION

Böl ve Yönet. Büyük sorunları küçük parçalara ayır.

FONKSİYON

Tekrar eden işleri yapan kod robotları.

GİRİŞ/ÇIKIŞ

Malzeme girer, yemek çıkar.

GELECEK HAFTA

ALGORİTMA TASARIMI

Akış şemaları (Flowchart) çizmeyi öğreneceğiz.

MUTFAK KAPANIYOR!

Harika bir iş çıkardın şef.