Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Reka bentuk pemilihan dengan kes sempadan

Peraturan yang berfungsi untuk kebanyakan nilai masih boleh gagal pada satu nilai yang tepat di sempadan.

Dalam halaman ini
  1. Bagaimana mereka bentuk pemilihan?
  2. Contoh penyelesaian
  3. Kesilapan yang perlu diawasi
  4. Semak sendiri
  5. Ke mana selepas ini

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?

  1. Senaraikan julat yang diterangkan peraturan, tanpa jurang atau pertindihan.
  2. Pilih syarat supaya setiap nilai jatuh dalam tepat satu julat.
  3. Susun ujian dari satu hujung skala ke hujung yang lain.
  4. Pilih data ujian sempadan: nilai terakhir dalam satu julat dan nilai pertama julat seterusnya.
  5. 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:

AgeJangkaanSurihFare
12kanak-kanak12 < 13 benar2
13dewasa13 < 13 palsu, 13 < 60 benar5
59dewasa59 < 13 palsu, 59 < 60 benar5
60warga emas60 < 13 palsu, 60 < 60 palsu3

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 ← 2

Kanak-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.

Soalan lazim

Apakah nilai sempadan (boundary value)?

Nilai sempadan ialah nilai ujian di hujung julat tempat hasil berubah, bersama nilai tepat di kedua-dua belah. Bagi peraturan yang berubah pada 60, ujian sempadan ialah 59, 60 dan 61, atau 59 dan 60 untuk nombor bulat.

Apakah perbezaan antara > dan >=?

Simbol > bermaksud lebih besar daripada secara ketat, jadi 60 > 60 palsu. Simbol >= bermaksud lebih besar atau sama dengan, jadi 60 >= 60 benar. Keduanya berbeza hanya pada nilai sempadan, itulah sebabnya nilai itu mesti diuji.

Patutkah saya guna IF bersarang atau beberapa IF berasingan?

IF bersarang dengan ELSE paling selamat apabila julat tidak bertindih, kerana tepat satu cabang berjalan. Beberapa pernyataan IF berasingan boleh menjalankan lebih daripada satu cabang jika anda tidak berhati-hati, jadi semak setiap kes dengan surihan.

Dikemas kini:

Langkah seterusnya

Jika pemilihan anda lulus data contoh tetapi gagal pada satu nilai, guru satu dengan satu boleh membantu anda membiasakan diri menguji sempadan dahulu.

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