Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Gunakan indeks tatasusunan tanpa mengelirukannya dengan nilai

Tatasusunan menyimpan sebaris nilai, dan nombor dalam kurungan ialah kedudukan, bukan salah satu daripada nilai itu.

Dalam halaman ini
  1. Bagaimana membaca tatasusunan?
  2. Contoh penyelesaian
  3. Kesilapan yang perlu diawasi
  4. Semak sendiri
  5. Seterusnya

Tatasusunan (array) menyimpan beberapa nilai berjenis sama di bawah satu nama. Setiap nilai mempunyai indeks (index), iaitu kedudukannya, dan anda mencapainya dengan Name[index]. Indeks dan nilai ialah dua perkara berbeza, dan mencampuradukkannya ialah punca kerap jawapan salah.

Pelajaran ini melengkapkan kemahiran gelung dalam pengulangan dan tatasusunan dengan menggabungkannya bersama tatasusunan. Ia menyusuli mencari maksimum, tempat kedudukan dan nilai kedua-duanya muncul.

Bagaimana membaca tatasusunan?

Tatasusunan diisytiharkan dengan had dan jenisnya:

DECLARE Level : ARRAY[1:5] OF INTEGER

Andaikan ia menyimpan nilai-nilai ini.

Indeks12345
Level[indeks]35254

Level[3] ialah 2. Indeksnya 3, nilainya 2. Sesuatu nilai juga boleh digunakan sebagai indeks. Level[Level[2]] bermaksud: kira dahulu Level[2], iaitu 5, kemudian cari Level[5], iaitu 4.

Contoh penyelesaian

Algoritma ini mencari tempat nilai terbesar disimpan.

Pos ← 1
FOR i ← 2 TO 5
   IF Level[i] > Level[Pos]
      THEN
         Pos ← i
   ENDIF
NEXT i
OUTPUT Pos, Level[Pos]

Pos menyimpan indeks, jadi ia sentiasa nombor dari 1 hingga 5. Level[Pos] ialah nilai pada indeks itu.

iLevel[i]Level[Pos] sebelumLevel[i] > Level[Pos]?Pos selepas
253benar2
325palsu2
455palsu2
545palsu2

Outputnya ialah 2, 5: indeksnya 2 dan nilai yang disimpan di situ ialah 5. Jika kod mencetak i selepas gelung dan bukan Pos, ia akan menunjukkan pemboleh ubah gelung, bukan kedudukan nilai terbesar.

Kesilapan yang perlu diawasi

Kesilapan biasa ialah menambah indeks apabila tugasan meminta nilai.

Kod yang salah: Total ← Total + i

Ini menambah 1 + 2 + 3 + 4 + 5 = 15, iaitu jumlah kedudukan.

Pembetulannya ialah Total ← Total + Level[i], yang menambah 3 + 5 + 2 + 5 + 4 = 19. Apabila menjejak, tulis tajuk lajur i dan Level[i] secara berasingan. Kedua-dua lajur tidak boleh bercampur jika kedua-duanya ada pada kertas.

Semak sendiri

Gunakan tatasusunan Level di atas.

1. Apakah Level[4] dan Level[Level[3]]?

Lihat jawapan

Level[4] ialah 5. Level[3] ialah 2, jadi Level[Level[3]] ialah Level[2], iaitu 5.

2. Apakah output kod ini?

FOR i ← 1 TO 5
   IF Level[i] = 5
      THEN
         OUTPUT i
   ENDIF
NEXT i
Lihat jawapan

Ia mengeluarkan indeks tempat nilainya 5. Level[2] dan Level[4] sama dengan 5, jadi outputnya 2 kemudian 4. Ia tidak mengeluarkan nilai 5.

3. Apa yang berlaku jika kod cuba membaca Level[6]?

Lihat jawapan

Hadnya 1 hingga 5, jadi kedudukan 6 tidak wujud. Atur cara akan berhenti dengan ralat. Dalam jejak anda tulis “indeks di luar had”.

Seterusnya

Setelah gelung, kesalahan dan tatasusunan dibincangkan, uji semuanya sekali gus dalam set latihan pengulangan dan tatasusunan. Untuk melihat indeks dan nilai berubah pada setiap pusingan, gunakan pelatih jejak pseudokod.

Seorang guru dalam tuisyen Computer Science boleh meminta anda menerangkan, baris demi baris, maksud setiap nombor dalam kurungan pada percubaan anda sendiri.

Soalan lazim

Apakah beza antara indeks dan nilai?

Indeks ialah kedudukan sesuatu item, seperti 3 dalam Level[3]. Nilai ialah apa yang disimpan pada kedudukan itu, seperti 2 jika Level[3] menyimpan 2. Indeks melabelkan kotak. Nilai ialah isi kotak itu.

Adakah tatasusunan bermula pada 0 atau 1 dalam pseudokod Cambridge?

Had ditulis dalam pengisytiharan, contohnya ARRAY[1:5], jadi bacalah di situ. Senarai Python bermula pada 0. Apabila soalan memberi had, gunakan tepat had itu. Semak tatatanda untuk tahun peperiksaan anda di laman sukatan pelajaran Cambridge.

Apa yang berlaku jika saya menggunakan indeks di luar had?

Kedudukan itu tidak wujud, jadi atur cara akan gagal dengan ralat. Dalam jejak, tulis bahawa indeks di luar had dan jangan reka nilai. Banyak ralat off-by-one berakhir begini.

Dikemas kini:

Langkah seterusnya

Jika indeks dan nilai hanya bercampur apabila keduanya kelihatan serupa, seorang guru boleh membina tatasusunan yang sengaja mempertemukan keduanya dan menunjukkan tabiat jejak yang memisahkannya.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami