Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Sediakan contoh minimum yang boleh dihasilkan semula

Atur cara panjang yang gagal sukar diterangkan, dan guru atau rakan sekelas tidak dapat membantu sehingga ia dikecilkan.

Dalam halaman ini
  1. Bagaimanakah atur cara yang gagal dikecilkan?
  2. Contoh berlangkah
  3. Kesilapan yang perlu diwaspadai
  4. Semak kendiri
  5. Ke mana selepas ini

Contoh minimum yang boleh dihasilkan semula (minimal reproducible example) ialah kod dan data terkecil yang masih menghasilkan keputusan salah, dengan output dijangka dan sebenar ditulis di sebelahnya. Anda menggunakannya untuk menemui kesalahan sendiri, menerangkannya secara bertulis atau meminta bantuan guru.

Pelajaran ini melengkapkan modul penjelasan penyelesaian masalah. Ia menggunakan menghuraikan pembetulan dan mengaitkan surih dengan output apabila contoh sudah cukup kecil untuk disurih dengan tangan.

Bagaimanakah atur cara yang gagal dikecilkan?

  1. Tulis gejala. Catat input, output dijangka dan output sebenar.
  2. Gantikan input dengan nilai tetap. Buang INPUT dan tugaskan data yang diketahui.
  3. Padam satu bahagian tidak berkaitan pada satu masa. Buang pengiraan lain, mesej dan menu.
  4. Jalankan semula selepas setiap pemadaman. Jika output salah masih ada, pemadaman itu selamat. Jika ia berubah atau hilang, pulangkan baris itu.
  5. Kurangkan data. Gunakan nilai paling sedikit yang masih gagal, dengan nombor yang mudah dikira.
  6. Nyatakan output dijangka dan sebenar bersama satu baris yang anda syaki.

Contoh berlangkah

Satu atur cara yang lebih panjang membaca skor ke dalam tatasusunan (array), kemudian mencari jumlah, purata dan skor tertinggi. Jumlahnya salah. Gelungnya ialah:

Total ← 0
FOR Index ← 2 TO 5
   Total ← Total + Scores[Index]
NEXT Index

Langkah 1, gejala. Bagi lima skor, jumlah lebih kecil daripada yang dijangka.

Langkah 2, data tetap. Buang input dan gunakan tiga skor: Scores[1] ← 10, Scores[2] ← 20, Scores[3] ← 30.

Langkah 3, padam bahagian tidak berkaitan. Purata dan skor tertinggi tidak menyentuh Total, jadi buangnya. Tukar had gelung kepada 3 supaya sepadan dengan data.

Contoh minimum:

Scores[1] ← 10
Scores[2] ← 20
Scores[3] ← 30
Total ← 0
FOR Index ← 2 TO 3
   Total ← Total + Scores[Index]
NEXT Index
OUTPUT Total

Output dijangka: 60 (10 + 20 + 30). Output sebenar: 50 (20 + 30).

Mengapa ia menuding kepada kesalahan. Gelung bermula pada 2, jadi Scores[1] tidak pernah ditambah. Pembetulannya ialah memulakan gelung pada 1: FOR Index ← 1 TO 3.

Semak. Contoh masih gagal selepas setiap pemadaman, dan cukup pendek untuk disurih dalam empat langkah.

Kesilapan yang perlu diwaspadai

Kesilapan yang kerap ialah mengecilkan terlalu jauh atau mengubah masalahnya:

Scores[1] ← 10 dan Total ← 0 tanpa gelung. Output: 0.

Gelung yang mengandungi kesalahan telah dipadam, jadi contoh tidak lagi menunjukkan masalahnya. Kesilapan lain ialah menghantar contoh tanpa output dijangka, jadi tiada siapa tahu apa maksud “salah”.

Pembetulan: selepas setiap pemadaman, jalankan semula contoh dan semak bahawa output sebenar masih salah. Tulis output dijangka dan sebenar bersama-sama.

Semak kendiri

1. Bagi kesalahan Total di atas, bahagian mana yang mesti kekal dalam contoh minimum: (a) input nama, (b) gelung, (c) pengiraan skor tertinggi, (d) nilai tatasusunan?

Tunjukkan jawapan

Kekalkan (b) gelung dan (d) nilai tatasusunan. Gelung mengandungi kesalahan dan nilai memberi keputusan yang boleh disemak. Input nama dan pengiraan skor tertinggi tidak menjejaskan Total, jadi boleh dibuang.

2. Kecilkan contoh kepada dua skor, 10 dan 20, dengan gelung salah yang sama FOR Index ← 2 TO 2. Adakah ia masih menunjukkan kesalahan? Nyatakan output dijangka dan sebenar.

Tunjukkan jawapan

Ya. Jumlah dijangka ialah 30 (10 + 20). Gelung berjalan sekali, bagi Index = 2, jadi hanya Scores[2] = 20 ditambah. Jumlah sebenar ialah 20. Kesalahan kekal, dan contoh lebih mudah disurih.

3. Seorang pelajar berkata atur cara yang membilang nilai di atas 10 memberi 2 bagi data 5, 10, 15 tetapi sepatutnya 1. Tulis output dijangka dan sebenar bagi contoh minimum, dan namakan kesalahan yang mungkin.

Tunjukkan jawapan

Dijangka: 1, kerana hanya 15 di atas 10. Sebenar: 2, kerana kod membilang 10 dan 15. Kesalahan yang mungkin ialah perbandingan >= 10 sedangkan > 10 diperlukan. Data 5, 10, 15 ialah set minimum yang baik kerana 10 terletak tepat pada sempadan.

Ke mana selepas ini

Sekarang satukan kelima-lima kemahiran dalam set latihan penjelasan penyelesaian masalah. Untuk menjejak ralat berulang, log kesilapan dan baris gilir ujian semula membantu anda mencatat jenis kesalahan dan menetapkan ujian semula.

Jika anda mahu seseorang mengecilkan atur cara yang degil bersama anda dan membincangkan penaakulan anda, guru kami boleh melakukannya dalam tuisyen Computer Science dalam talian satu dengan satu.

Soalan lazim

Apakah contoh minimum yang boleh dihasilkan semula?

Ia ialah kod dan data terkecil yang masih menunjukkan kesalahan yang sama, bersama output dijangka dan output sebenar. Sesiapa boleh menjalankannya, melihat masalah itu dan mula membetulkannya tanpa membaca seluruh atur cara anda.

Seberapa kecilkah contoh itu?

Cukup kecil untuk disurih dengan tangan dalam seminit, tetapi tidak sampai kesalahan itu hilang. Selepas setiap pemadaman, jalankan semula. Jika output salah masih ada, kekalkan pemadaman itu. Jika ia hilang, pulangkan baris tersebut.

Perlukah saya tahu kesalahan sebelum mengecilkan atur cara?

Tidak. Mengecilkan ialah satu cara menemui kesalahan. Setiap baris yang dibuang tanpa mengubah keputusan bukan puncanya, jadi baris yang tinggal ialah suspek. Sering kali puncanya jelas apabila hanya beberapa baris tinggal.

Sumber rujukan

  1. Cambridge IGCSE Computer Science 0478 syllabus page

Dikemas kini:

Langkah seterusnya

Jika atur cara anda gagal dan anda belum dapat menyatakan sebabnya, guru satu dengan satu boleh mengecilkan masalah bersama anda dan menunjukkan bagaimana contoh kecil menuding terus kepada kesalahan.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80.

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

Ibu bapa: tanya di sini

  • 9,000+ pelajar telah dibantu melalui perkhidmatan kami
  • 9+ tahun membantu pelajar IGCSE