canlı ~/duyurular $
Algoritma müfredatı
ünite 3 · Tekrar Etmek · ders 3.3

Biriktirme: toplam, sayaç, en büyük

Döngünün en sık kullanıldığı üç kalıp.

8 dk 10 / 22

Döngü tek başına bir şey üretmez; döngü içinde biriken bir değişken üretir. Üç kalıp neredeyse her programda:

1. Toplam

toplam ← 0 her sayı için: toplam ← toplam + sayı

2. Sayaç

adet ← 0 her sayı için: EĞER sayı çift İSE adet ← adet + 1

3. En büyük

enBüyük ← ilk sayı her sayı için: EĞER sayı > enBüyük İSE enBüyük ← sayı

Ortak nokta: biriktirici döngüden önce başlatılır (0, 0, ilk eleman), döngü içinde güncellenir, döngüden sonra kullanılır.

En büyüğü bulurken enBüyük ← 0 ile başlamak hatadır: bütün sayılar negatifse cevap 0 çıkar. İlk elemanla başla.
akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A[enBuyuk = ilk sayı] --> B{sayı kaldı mı?}
  B -- Evet --> C[/sonraki sayıyı oku/]
  C --> D{sayı #gt; enBuyuk ?}
  D -- Evet --> E[enBuyuk = sayı]
  D -- Hayır --> B
  E --> B
  B -- Hayır --> F[/enBuyuk yaz/]
sözde kod adımlar
1OKU ilk2enBüyük ← ilk3sayaç ← 14İKEN sayaç < 55  OKU sayı6  EĞER sayı > enBüyük İSE enBüyük ← sayı7  sayaç ← sayaç + 18DÖNGÜ SONU9YAZ enBüyük
aynısı C# ile C#
1int[] sayilar = { 12, -4, 37, 5, 21 };2int enBuyuk = sayilar[0];3for (int i = 1; i < sayilar.Length; i++)4{5    if (sayilar[i] > enBuyuk) enBuyuk = sayilar[i];6}7Console.WriteLine("En büyük: " + enBuyuk);
adım adım izleme

Kutuların her adımdaki değeri. Kağıtta izleme tablosu tutarken tam bunu yaparsın.

#satırenBüyüksayınot
1 enBüyük ← 12 12 · İlk elemanla başla
2 -4 > 12 ? 12 -4 Hayır
3 37 > 12 ? 37 37 Evet → güncelle
4 5 > 37 ? 37 5 Hayır
5 21 > 37 ? 37 21 Hayır
6 YAZ enBüyük 37 · Ekranda: 37
senin sıran

Bir sınıfın notlarını okuyup (0 girilince dur) ortalamayı, 50 altı kalan sayısını ve en yüksek notu tek döngüde bulan algoritmayı yaz. Üç biriktirici gerekiyor — hangileri?

Canlı Kod'da C# ile dene
kendini sına En küçüğü bulurken karşılaştırma işareti ne olur, başlangıç değeri ne olur?
sayı < enKüçük; başlangıç yine ilk eleman (ya da çok büyük bir sayı, ama ilk eleman daha güvenli).
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.