ü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
tamamlandı
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ır | i | değer | not |
|---|---|---|---|---|
| 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?
kendini sına 8 elemanlı dizide son elemanın indeksi kaç?
7. İndeksler 0'dan başlar; son indeks = uzunluk − 1.
tamamlandı
İşaret bu tarayıcıda kalır. XP için
giriş yap — her ders +15 XP.