Sebelum menulis langkah, tulis spesifikasi ringkas: apa yang masuk, apa yang mesti keluar, dan apa yang dibenarkan. Spesifikasi yang jelas menukar “pek telur” kepada sesuatu yang boleh disurih dan diuji.
Pelajaran ini menyusul menguraikan tugas. Ia juga menyediakan anda untuk menyurih dengan jadual keadaan, kerana anda perlu tahu nilai mana yang hendak dijejak.
Apakah yang ada dalam spesifikasi?
Tulis tiga senarai.
- Input: setiap nilai yang diterima algoritma, dengan jenisnya (nombor bulat, nombor nyata, teks).
- Output: setiap nilai yang mesti dihasilkan, dengan huraian hubungannya dengan input.
- Kekangan: had pada input dan peraturan yang mesti dipatuhi output.
Jika sesuatu nilai boleh terlalu kecil, terlalu besar, negatif atau bukan nombor bulat, kekangan menyatakan apa yang patut berlaku.
Contoh penyelesaian
Sebuah ladang mengemas telur ke dalam dulang yang memuatkan tepat 12. Diberi bilangan telur, keluarkan berapa dulang penuh boleh dibuat dan berapa telur berbaki.
Langkah 1, input: Eggs, nombor bulat.
Langkah 2, output: Trays, bilangan dulang penuh. Left, telur yang tidak berada dalam dulang penuh.
Langkah 3, kekangan: Eggs mestilah nombor bulat dan sekurang-kurangnya 0. Left mesti dari 0 hingga 11, dan Trays × 12 + Left mesti sama dengan Eggs.
Langkah 4, algoritma:
INPUT Eggs
Trays ← Eggs DIV 12
Left ← Eggs MOD 12
OUTPUT Trays, Left
Langkah 5, surih dengan tiga nilai:
| Eggs | Trays | Left | Semak Trays × 12 + Left |
|---|---|---|---|
| 100 | 8 | 4 | 96 + 4 = 100 |
| 11 | 0 | 11 | 0 + 11 = 11 |
| 0 | 0 | 0 | 0 + 0 = 0 |
Untuk 100: 12 × 8 = 96 dan 100 − 96 = 4, jadi DIV memberi 8 dan MOD memberi 4. Setiap baris memenuhi peraturan dalam kekangan, dan itulah semakan yang penting.
Kesilapan yang perlu diawasi
Satu kesilapan lazim ialah menggunakan pembahagian biasa dan mengabaikan kekangan bahawa dulang mestilah bulat.
Algoritma yang salah: Trays ← Eggs / 12, dengan Eggs = 100.
Ini memberi 8.333…, yang bukan bilangan dulang.
Pembetulannya ialah membaca huraian output: “bilangan dulang penuh” ialah nombor bulat, jadi DIV ialah operasinya. Kesilapan kedua ialah melangkau kekangan, sehingga tiada siapa memutuskan apa yang berlaku untuk −5 telur atau 3.5 telur. Menamakan kekangan memberitahu anda supaya menambah langkah pengesahan atau menyatakan andaian.
Semak sendiri
1. Tulis input, output dan kekangan bagi algoritma yang memberi purata 5 markah ujian, setiap satu dari 0 hingga 100.
Tunjukkan jawapan
Input: lima markah, setiap satu nombor bulat (atau nombor nyata) dari 0 hingga 100. Output: Average, jumlah markah dibahagi 5. Kekangan: setiap markah mesti dari 0 hingga 100, jadi Average juga dari 0 hingga 100.
2. Diberi 250 telur, apakah Trays dan Left?
Tunjukkan jawapan
12 × 20 = 240, jadi 250 DIV 12 = 20. 250 − 240 = 10, jadi 250 MOD 12 = 10. Semak: 20 × 12 + 10 = 250.
3. Tukar bilangan hari kepada minggu penuh dan hari baki. Berikan output untuk 30 hari.
Tunjukkan jawapan
Weeks ← Days DIV 7 dan Spare ← Days MOD 7. 7 × 4 = 28, jadi Weeks = 4 dan Spare = 2. Semak: 4 × 7 + 2 = 30.
Ke mana selepas ini
Seterusnya, belajar menyurih urutan dengan jadual keadaan supaya anda boleh membuktikan algoritma memenuhi spesifikasinya. Pelatih surih pseudokod berguna untuk menyemak hasil DIV dan MOD.
Apabila spesifikasi kabur, sukar untuk tahu apa yang hendak diuji, dan guru boleh membantu anda memperketatkannya. Itu sebahagian daripada tuisyen Computer Science dalam talian satu dengan satu kami, dan set latihan mempunyai lebih banyak spesifikasi untuk ditulis.