canlı ~/duyurular $
Algoritma müfredatı
ünite 4 · Diziler · ders 4.1

Dizi: numaralı kutular

30 öğrencinin notu için 30 değişken değil, 30 gözlü tek dizi.

7 dk 12 / 22

Dizi, aynı türden değerleri yan yana tutan numaralı kutulardır. Numaraya indeks denir ve çoğu dilde 0'dan başlar: 5 elemanlı dizinin indeksleri 0, 1, 2, 3, 4.

notlar: [85] [90] [78] [95] [60] indeks: 0 1 2 3 4

notlar[2] → 78. notlar[5] → hata! Böyle bir kutu yok. Bu "sınır dışı" hatası, dizilerle çalışırken en sık düşülen çukurdur.

Uzunluk

Dizinin eleman sayısı uzunluk (C#: .Length). Son elemanın indeksi uzunluk − 1. Döngü koşulu bu yüzden i < uzunluk; ≤ yazarsan bir kutu öteye taşarsın.

Blog'daki "Döngülerde off-by-one" notu tam olarak bu hatayı anlatıyor; Hata Avcısı'ndaki "Toplam neden eksik" de aynı ailedendir.
akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A[i = 0] --> B{i #lt; uzunluk ?}
  B -- Evet --> C[/notlar#91;i#93; yaz/]
  C --> D[i = i + 1]
  D --> B
  B -- Hayır --> E([Bitir])
sözde kod adımlar
1notlar ← [85, 90, 78, 95, 60]2i ← 03İKEN i < uzunluk(notlar)4  YAZ notlar[i]5  i ← i + 16DÖNGÜ SONU
aynısı C# ile C#
1int[] notlar = { 85, 90, 78, 95, 60 };2for (int i = 0; i < notlar.Length; i++)3{4    Console.WriteLine(i + ": " + notlar[i]);5}
adım adım izleme

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

#satırideğernot
1 i = 0 → notlar[0] 0 85 İlk kutu
2 i = 1 → notlar[1] 1 90
3 i = 4 → notlar[4] 4 60 Son kutu (uzunluk − 1)
4 i = 5, 5 < 5 ? → Hayır 5 · Döngü tam yerinde bitti
senin sıran

Bir dizideki elemanları ters sırada yazdır (son elemandan ilkine). Sayacı nereden başlatıp nereye kadar götüreceksin?

Canlı Kod'da C# ile dene
kendini sına 8 elemanlı dizide son elemanın indeksi kaç?
7. İndeksler 0'dan başlar; son indeks = uzunluk − 1.
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.