Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Uraikan tugas kepada submasalah

Soalan yang panjang kelihatan seperti satu kerja besar sehingga anda sedar ia sebenarnya empat kerja kecil berturutan.

Dalam halaman ini
  1. Bagaimana membahagi tugas kepada bahagian?
  2. Contoh penyelesaian
  3. Kesilapan yang perlu diawasi
  4. Semak sendiri
  5. Ke mana selepas ini

Untuk menguraikan tugas, senaraikan tugas berasingan di dalamnya, beri setiap satu satu tujuan yang jelas, kemudian susun dalam urutan di mana setiap tugas mendapat apa yang diperlukan. Soalan yang bermula “Reka bentuk algoritma yang…” memberi ganjaran kepada tabiat ini sebelum sebarang pseudokod muncul.

Ini langkah pertama reka bentuk algoritma, dan pelajaran seterusnya, menentukan input, output dan kekangan, menjadikan setiap bahagian tepat.

Bagaimana membahagi tugas kepada bahagian?

Baca tugas dan garis bawah setiap kata kerja: kumpul, jumlah, banding, keluarkan. Setiap kata kerja biasanya menunjuk kepada satu submasalah. Kemudian tanya tiga soalan bagi setiap bahagian.

  • Apakah yang diperlukan sebelum ia boleh bermula?
  • Apakah yang diserahkan kepada bahagian seterusnya?
  • Bolehkah saya mengujinya secara berasingan?

Jika anda tidak boleh menjawab soalan ketiga, bahagian itu terlalu besar atau terlalu kabur.

Contoh penyelesaian

Seorang guru memasukkan lima markah kuiz, setiap satu daripada 20. Atur cara mesti mengeluarkan PASS jika purata sekurang-kurangnya 10, jika tidak FAIL.

Langkah 1, garis bawah tugas: kumpul lima markah, jumlahkan, cari purata, bandingkan dengan 10, keluarkan satu perkataan.

Langkah 2, namakan setiap submasalah dengan input dan outputnya:

SubmasalahMemerlukanMenghasilkan
Kumpul dan jumlahkan markahlima markahTotal
Cari purataTotalAverage
Tentukan lulus atau gagalAverageperkataan PASS atau FAIL
Outputperkataanteks pada skrin

Langkah 3, susun. Setiap baris memerlukan baris di atasnya, jadi susunannya tetap.

Langkah 4, tulis setiap bahagian sebagai pseudokod:

Total ← 0
FOR Count ← 1 TO 5
   INPUT Mark
   Total ← Total + Mark
NEXT Count
Average ← Total / 5
IF Average >= 10 THEN
   OUTPUT "PASS"
ELSE
   OUTPUT "FAIL"
ENDIF

Langkah 5, uji dengan markah 12, 15, 9, 18, 16. Total selepas setiap markah: 12, 27, 36, 54, 70. Average = 70 / 5 = 14. Oleh kerana 14 >= 10, output ialah PASS. Menjumlahkan semula dengan tangan juga memberi 70, jadi ia sepadan.

Kesilapan yang perlu diawasi

Satu kesilapan lazim ialah submasalah yang sekadar mengulang tugas.

Pelan yang salah: 1. Dapatkan markah. 2. Kira hasil. 3. Keluarkan.

“Kira hasil” menyembunyikan jumlah, purata dan perbandingan, jadi tiada apa yang boleh diuji.

Pembetulannya ialah terus membahagi sehingga setiap baris ada input dan output yang jelas, seperti dalam jadual di atas. Satu lagi kesilapan ialah meletakkan Total ← 0 di dalam gelung. Maka jumlah bermula semula pada setiap markah dan purata akhir hanya menggunakan markah terakhir.

Semak sendiri

1. Atur cara perpustakaan mesti membaca bilangan hari lewat bagi sebuah buku dan mengeluarkan denda pada RM0.20 sehari. Senaraikan submasalah.

Show answer

Baca bilangan hari lewat. Darabkan dengan 0.20 untuk mendapat denda. Keluarkan denda. Untuk 15 hari, denda ialah 15 × 0.20 = RM3.00.

2. Pelan di bawah tidak teratur. Betulkan: keluarkan purata, jumlahkan nombor, bahagi jumlah dengan bilangan, masukkan nombor.

Show answer

Masukkan nombor, jumlahkan nombor, bahagi jumlah dengan bilangan, keluarkan purata. Setiap langkah memerlukan hasil langkah sebelumnya.

3. Dalam contoh kuiz, apakah purata jika Total ← 0 berada di dalam gelung dan markahnya 12, 15, 9, 18, 16?

Show answer

Jumlah ditetapkan semula pada setiap markah, jadi selepas markah terakhir Total = 16. Purata ialah 16 / 5 = 3.2, yang salah memberi FAIL.

Ke mana selepas ini

Seterusnya, belajar menentukan input, output dan kekangan untuk setiap bahagian. Pelatih surih pseudokod membolehkan anda melangkah melalui algoritma seperti ini.

Jika menguraikan tugas ialah titik anda tersekat, guru kami boleh mengusahakannya bersama anda dalam tuisyen Computer Science dalam talian satu dengan satu, dan set latihan memberi lebih banyak tugas untuk dibahagi.

Soalan lazim

Apakah maksud penguraian (decomposition) dalam Computer Science?

Penguraian bermaksud memecahkan masalah besar kepada bahagian lebih kecil yang lebih mudah difahami, diselesaikan dan diuji. Setiap bahagian ada satu tugas yang jelas. Apabila semua bahagian diselesaikan dan disambung mengikut susunan betul, seluruh masalah selesai.

Sekecil mana sesuatu submasalah itu?

Cukup kecil untuk anda menyatakan input dan outputnya dalam satu baris, dan menulis atau menyurihnya tanpa pecahan lanjut. Jika sesuatu bahagian masih mengandungi perkataan seperti dan, kemudian atau juga, kemungkinan ia ada lebih daripada satu tugas.

Adakah penguraian sama dengan menulis langkah mengikut susunan?

Ia berkait tetapi tidak sama. Penguraian mula-mula mengenal pasti tugas yang berasingan. Menyusunnya datang kemudian, dan ia penting kerana output satu bahagian sering menjadi input bahagian lain.

Dikemas kini:

Langkah seterusnya

Jika soalan reka bentuk masih terasa terlalu besar untuk dimulakan, guru sesi satu dengan satu boleh duduk bersama percubaan pertama anda dan membantu mencari tempat tugas itu terbahagi secara semula jadi.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami