Atur cara gagal pada sempadan apabila syaratnya melayan nilai di hujung secara berbeza daripada apa yang dinyatakan masalah. Puncanya biasanya < sedangkan <= diperlukan, atau > sedangkan >= diperlukan. Penyelesaiannya ialah memilih data ujian sempadan sebelum anda menulis syarat.
Di bawah ada satu contoh berlangkah dengan jadual penjejakan, kemudian satu contoh kedua yang pendek. Notasi ialah pseudokod ringkas. Laluan anda mungkin menggunakan gaya tertentu, jadi sahkannya di laman Cambridge.
Bagaimana rupa pepijat sempadan?
Sistem sekolah patut menerima markah ujian dari 0 hingga 100 termasuk kedua-dua hujung. Berikut percubaan pertama.
INPUT Mark
IF Mark > 0 AND Mark < 100 THEN
OUTPUT "Accepted"
ELSE
OUTPUT "Rejected"
ENDIF
Cuba beberapa nilai. Seorang pelajar menguji 50 dan 75, melihat “Accepted” untuk kedua-duanya dan meneruskan. Kini jejak set yang lebih lengkap.
| Mark | Mark > 0 | Mark < 100 | Output | Dijangka |
|---|---|---|---|---|
| 50 | BENAR | BENAR | Accepted | Accepted |
| 0 | PALSU | BENAR | Rejected | Accepted |
| 1 | BENAR | BENAR | Accepted | Accepted |
| 99 | BENAR | BENAR | Accepted | Accepted |
| 100 | BENAR | PALSU | Rejected | Accepted |
| −1 | PALSU | BENAR | Rejected | Rejected |
| 101 | BENAR | PALSU | Rejected | Rejected |
Dua baris gagal: 0 dan 100. Kedua-duanya markah sebenar yang ditolak dengan salah oleh atur cara. Ujian biasa tidak pernah sampai ke situ.
Bagaimana membetulkannya?
Masukkan had ke dalam syarat.
IF Mark >= 0 AND Mark <= 100 THEN
Jejak semula baris yang gagal. Mark = 0 memberi BENAR dan BENAR, jadi Accepted.
Mark = 100 memberi BENAR dan BENAR, jadi Accepted. Mark = −1 memberi PALSU, Rejected.
Mark = 101 memberi PALSU pada ujian kedua, Rejected. Kesemua tujuh baris kini sepadan.
Bagaimana memilih data ujian sempadan?
Bagi julat dengan had bawah L dan had atas U, kedua-duanya termasuk:
| Tujuan | Nilai (L = 0, U = 100) |
|---|---|
| Pada had bawah | 0 |
| Tepat di dalam had bawah | 1 |
| Tepat di luar had bawah | −1 |
| Pada had atas | 100 |
| Tepat di dalam had atas | 99 |
| Tepat di luar had atas | 101 |
Tulis keputusan yang dijangka sebelum menjalankan apa-apa. Jika anda menentukan keputusan yang dijangka selepas melihat output, atur cara itu seolah-olah menanda kerjanya sendiri.
Contoh kedua: “lebih daripada” dan “sekurang-kurangnya”
Sebuah kedai memberi penghantaran percuma apabila jumlah pesanan sekurang-kurangnya RM50. Kodnya:
IF Total > 50 THEN
Delivery ← 0
ELSE
Delivery ← 5
ENDIF
| Total | Kod memberi | Betul |
|---|---|---|
| 49.90 | 5 | 5 |
| 50.00 | 5 | 0 |
| 50.10 | 0 | 0 |
Hanya nilai sempadan 50.00 mendedahkan kesalahan itu. Perkataan “sekurang-kurangnya” bermaksud 50 termasuk, jadi syaratnya patut Total >= 50.
Perkataan yang menandakan hujung termasuk atau tidak
| Perkataan | Syarat |
|---|---|
| sekurang-kurangnya 50, 50 atau lebih, dari 50 | Total >= 50 |
| lebih daripada 50, melebihi 50 | Total > 50 |
| paling banyak 50, hingga dan termasuk 50 | Total <= 50 |
| kurang daripada 50, di bawah 50 | Total < 50 |
Garis bawahi perkataan dalam soalan dan pilih simbol daripada jadual ini, bukan daripada kebiasaan.
Senarai semak sebelum menghantar syarat
- Bulatkan had dalam soalan dan tentukan sama ada setiap satu termasuk.
- Tulis nilai sempadan anda dan keputusan yang dijangka bagi setiap satu.
- Jejak dua atau tiga nilai hujung melalui syarat dengan tangan.
- Sertakan satu nilai di luar setiap had, dan satu input tidak normal.
- Baca semula: adakah simbol sepadan dengan perkataan?
Gunakan pelatih penjejakan pseudokod terhad untuk melangkah melalui algoritma asli, dan kotak pasir penaakulan Python selamat untuk melihat ujian yang gagal dengan gesaan penjelasan, jika laluan anda membenarkan.
Seterusnya ke mana
Topik penuh ada dalam pengesahan, penentusahan dan pengujian. Jika gelung juga menyusahkan anda, baca gelung saya tidak berhenti atau terlepas item terakhir. Set latihan asli mempunyai soalan data ujian, dan panduan pembelajaran menunjukkan di mana ia sesuai.
Bila semakan sendiri tidak mencukupi
Jika anda menjejak nilai hujung dan masih menulis simbol yang salah ketika tertekan masa, jurangnya selalunya pada cara anda membaca perkataan. Dalam tuisyen Computer Science dalam talian satu dengan satu, guru boleh memberi soalan pendek yang pelbagai dan mendengar cara anda membuat keputusan. Langkah pertama ialah kelas percubaan berbayar selama satu jam, dari RM80 pada kadar yang disahkan guru yang ditugaskan sebelum kelas.