canlı ~/duyurular $
Algoritma müfredatı
ünite 6 · Problem Çözme · ders 6.1

Parçalara ayırma ve metotlar

Büyük problemi küçük, adı olan parçalara böl; her parçayı ayrı çöz, ayrı test et.

8 dk 20 / 22

"Not takip programı yaz" ürkütücü. "Not oku", "ortalama hesapla", "harf ver", "listeyi yazdır" — dördü de tanıdık. Parçalara ayırma (decomposition), büyük problemi zaten çözebildiğin küçük problemlere indirmektir.

Metot: adı olan algoritma

Her parça bir metot olur: girdisi (parametre), işlemi, çıktısı (dönüş değeri) vardır. ortalama(notlar) çağırdığında içini düşünmezsin — bir kez doğru yazdın, her yerde kullanırsın.

Test edilebilirlik

Metot küçük olunca test kolay: ortalama([80, 90, 100]) 90 vermeli. Bütün program çalışmadan parçayı doğrulayabilirsin.

Bir metot ekrana sığmıyorsa muhtemelen iki iş yapıyordur. Böl.
akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A([Ana program]) --> B[notlar = notlariOku]
  B --> C[ort = ortalama notlar]
  C --> D[harf = harfVer ort]
  D --> E[/sonucu yaz/]
  E --> F([Bitir])
sözde kod adımlar
1METOT ortalama(liste)2  toplam ← 03  her x için: toplam ← toplam + x4  DÖNDÜR toplam / uzunluk(liste)56ANA7  notlar ← notlariOku()8  ort ← ortalama(notlar)9  harf ← harfVer(ort)10  YAZ ort, harf
aynısı C# ile C#
1static double Ortalama(int[] liste)2{3    int toplam = 0;4    foreach (int x in liste) toplam += x;5    return (double) toplam / liste.Length;6}78int[] notlar = { 80, 90, 100 };9Console.WriteLine(Ortalama(notlar));
senin sıran

"Sınıf listesinden en yüksek ortalamalı öğrenciyi bul" problemini en az dört metoda böl; her metodun girdisini ve çıktısını yaz. Sonra hangi metodu ilk yazacağını ve nasıl test edeceğini söyle.

Canlı Kod'da C# ile dene
kendini sına Aynı hesap üç yerde tekrar ediyorsa ne yaparsın?
Metoda çıkarırsın: tek yerde düzeltilir, üç yerde de düzelmiş olur.
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.