Huraian pembetulan yang baik mempunyai empat bahagian: di mana kesalahan, apa yang salah, mengapa ia menyebabkan keputusan salah, dan apa yang perlu diubah. Kod sahaja menunjukkan bahagian terakhir, dan pemeriksa tidak dapat tahu sama ada anda memahami kesalahan atau menyalin satu baris.
Pelajaran ini terletak dalam modul penjelasan penyelesaian masalah. Ia menyambung mewajarkan kes ujian, kerana ujian yang gagal ialah cara kebanyakan kesalahan ditemui.
Apakah isi huraian yang lengkap?
- Di mana: nombor baris atau pernyataan, contohnya “baris 6”.
- Apa yang salah: perkara yang tepat, seperti pembahagi salah, perbandingan salah, pernyataan tertinggal atau had gelung salah.
- Mengapa penting: kesannya pada output, sebaik-baiknya dengan satu nilai daripada data ujian.
- Perubahan: pembetulan terkecil dalam ayat, boleh ditambah dengan baris yang dibetulkan.
Gunakan bukti daripada keperluan: “keperluan menyatakan purata tiga nombor, tetapi kod membahagi dengan 2”.
Contoh berlangkah
Keperluan: baca tiga nombor dan keluarkan puratanya.
1 Total ← 0
2 FOR Index ← 1 TO 3
3 INPUT Number
4 Total ← Total + Number
5 NEXT Index
6 Average ← Total / 2
7 OUTPUT Average
Data ujian 4, 6, 8 sepatutnya memberi 6 (kerana 4 + 6 + 8 = 18 dan 18 / 3 = 6). Atur cara mengeluarkan 9.
Di mana: baris 6.
Apa yang salah: Total dibahagi dengan 2, tetapi tiga nombor dimasukkan.
Mengapa penting: dengan data ujian, 18 / 2 = 9, bukan 6 yang dijangka.
Perubahan: bahagi dengan 3, bilangan nilai yang dibaca. Perubahan yang lebih selamat ialah membahagi dengan pemboleh ubah yang membilang kemasukan, supaya baris itu masih betul jika had gelung berubah. Baris yang dibetulkan: Average ← Total / 3.
Semak pembetulan. Dengan 4, 6, 8: 18 / 3 = 6. Ini sepadan dengan keputusan dijangka.
Kesilapan yang perlu diwaspadai
Jawapan yang lemah ialah:
Atur cara salah kerana puratanya tidak betul. Ubah supaya ia memberi purata yang betul.
Tiada baris, tiada kesalahan dan tiada perubahan. Gaya lemah kedua menulis semula ketujuh-tujuh baris dengan struktur lain, jadi pemeriksa tidak nampak apa yang sebenarnya salah.
Pembetulan: “Baris 6 membahagi Total dengan 2, tetapi tiga nilai dimasukkan, jadi output bagi 4, 6, 8 ialah 9 dan bukan 6. Tukar pembahagi kepada 3.”
Semak kendiri
1. Kod ini sepatutnya menambah nombor bulat 1 hingga 10 (jawapan 55), tetapi mengeluarkan 45. Huraikan pembetulan.
1 Total ← 0
2 FOR N ← 1 TO 9
3 Total ← Total + N
4 NEXT N
5 OUTPUT Total
Tunjukkan jawapan
Baris 2 mempunyai had atas yang salah. Gelung berhenti pada 9, jadi 10 tidak pernah ditambah, dan jumlahnya 1 + 2 + … + 9 = 45 dan bukan 55. Tukar had daripada 9 kepada 10: FOR N ← 1 TO 10.
2. Peraturannya ialah “keluarkan Pass bagi markah 50 atau lebih”. Markah 50 tidak memberi apa-apa output. Huraikan pembetulan.
1 INPUT Mark
2 IF Mark > 50 THEN
3 OUTPUT "Pass"
4 ENDIF
Tunjukkan jawapan
Baris 2 menggunakan >, yang mengecualikan 50, sedangkan peraturan menyatakan “50 atau lebih”. Markah tepat 50 gagal ujian, jadi “Pass” tidak dikeluarkan. Tukar > kepada >=: IF Mark >= 50 THEN.
3. Kod sepatutnya mengeluarkan jumlah kos tiga harga barang (5, 6 dan 7, iaitu 18) tetapi mengeluarkan 7. Huraikan pembetulan.
1 Total ← 0
2 FOR I ← 1 TO 3
3 INPUT Price
4 Total ← Price
5 NEXT I
6 OUTPUT Total
Tunjukkan jawapan
Baris 4 menetapkan Total kepada Price tanpa menambahnya, jadi setiap pusingan menimpa nilai sebelumnya dan hanya harga terakhir, 7, yang tinggal. Tukar kepada Total ← Total + Price supaya harga terkumpul: 5, 11, 18.
Ke mana selepas ini
Apabila anda boleh menghuraikan pembetulan, belajar menunjukkan mengapa atur cara memberi outputnya dalam mengaitkan surih dengan output akhir. Pelatih surih pseudokod terhad boleh membantu anda menguji pembetulan sebelum menghuraikannya.
Jika anda kerap menemui ralat tetapi kehilangan markah pada cara menerangkan pembetulan, guru kami boleh mengerjakan ayat anda dalam tuisyen Computer Science dalam talian satu dengan satu.