Pemilihan memilih satu laluan daripada beberapa berdasarkan syarat. Untuk mereka bentuknya dengan baik, tulis julat dahulu, kemudian pilih nilai ujian pada dan bersebelahan setiap sempadan. Ini muncul dalam soalan tentang tambang, gred, diskaun dan peraturan kata laluan.
Ia bergantung pada menyurih dengan jadual keadaan untuk membuktikan cabang mana yang berjalan, dan berkait dengan menerangkan algoritma tanpa bergantung pada bahasa.
Bagaimana mereka bentuk pemilihan?
- Senaraikan julat yang diterangkan peraturan, tanpa jurang atau pertindihan.
- Pilih syarat supaya setiap nilai jatuh dalam tepat satu julat.
- Susun ujian dari satu hujung skala ke hujung yang lain.
- Pilih data ujian sempadan: nilai terakhir dalam satu julat dan nilai pertama julat seterusnya.
- Surih setiap ujian dan bandingkan dengan hasil jangkaan yang anda tulis dahulu.
Contoh penyelesaian
Tambang bas bergantung pada umur.
Bawah 13: RM2. Dari 13 hingga 59: RM5. 60 ke atas: RM3.
Langkah 1, julat: 0 hingga 12, 13 hingga 59, 60 ke atas.
Langkah 2, algoritma:
INPUT Age
IF Age < 13 THEN
Fare ← 2
ELSE
IF Age < 60 THEN
Fare ← 5
ELSE
Fare ← 3
ENDIF
ENDIF
OUTPUT Fare
Langkah 3, ujian sempadan dengan hasil jangkaan yang dipilih sebelum menyurih:
| Age | Jangkaan | Surih | Fare |
|---|---|---|---|
| 12 | kanak-kanak | 12 < 13 benar | 2 |
| 13 | dewasa | 13 < 13 palsu, 13 < 60 benar | 5 |
| 59 | dewasa | 59 < 13 palsu, 59 < 60 benar | 5 |
| 60 | warga emas | 60 < 13 palsu, 60 < 60 palsu | 3 |
Keempat-empat output sepadan dengan tambang jangkaan. Kedua-dua tepi, 12 dan 13, serta 59 dan 60, telah diliputi.
Kesilapan yang perlu diawasi
Satu kesilapan lazim ialah simbol perbandingan yang salah di sempadan.
Syarat yang salah:
IF Age <= 13 THEN Fare ← 2Kanak-kanak 13 tahun kini membayar RM2, tetapi peraturan menyatakan 13 hingga 59 membayar RM5.
Umur biasa seperti 8, 30 dan 70 semuanya lulus, jadi kesalahan kekal tersembunyi.
Hanya ujian sempadan pada 13 menunjukkannya: 13 <= 13 benar, yang memberi RM2 dan bukan RM5 yang dijangka. Pembetulannya ialah Age < 13. Sentiasa uji nilai di tepi, bukan hanya nilai di tengah setiap julat.
Semak sendiri
1. Peraturan gred: markah 80 atau lebih memberi A, 50 hingga 79 memberi B, bawah 50 memberi C. Berikan output untuk 49, 50, 79 dan 80.
Tunjukkan jawapan
49 memberi C. 50 memberi B. 79 memberi B. 80 memberi A. Keempat-empat nilai ini terletak pada kedua-dua tepi.
2. Penghantaran percuma jika jumlah pesanan lebih daripada RM100. Apa yang berlaku pada RM100, dan perbandingan mana yang anda gunakan?
Tunjukkan jawapan
RM100 bukan lebih daripada RM100, jadi penghantaran tidak percuma. Gunakan Total > 100. Ujian sempadan ialah 100 (tidak percuma) dan nilai sedikit di atasnya, seperti 100.01 (percuma).
3. Kata laluan mesti 8 hingga 12 aksara panjang, termasuk kedua-dua hujung. Tulis syarat dan panjang sempadan untuk diuji.
Tunjukkan jawapan
Length >= 8 AND Length <= 12. Uji 7 (ditolak), 8 (diterima), 12 (diterima) dan 13 (ditolak).
Ke mana selepas ini
Seterusnya, berlatih menghuraikan pemilihan anda dalam langkah biasa dalam menerangkan algoritma tanpa bergantung pada bahasa. Pelatih surih pseudokod menunjukkan cabang mana yang berjalan bagi setiap input.
Kesilapan sempadan mudah terlepas apabila bersendirian, dan guru boleh menunjukkan cara menguji reka bentuk anda sendiri dalam tuisyen Computer Science dalam talian satu dengan satu. Set latihan mempunyai soalan sempadan pada beberapa tahap.