Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Asingkan logik daripada input dan output

Atur cara anda berfungsi apabila anda menaip nilai, tetapi apabila mahu mengujinya dengan nombor lain, ia menjadi kerja yang meletihkan.

Dalam halaman ini
  1. Mengapa memisahkan atur cara begini?
  2. Contoh berlangkah
  3. Kesilapan manakah yang paling kerap berlaku?
  4. Semakan kendiri
  5. Ke mana pelajaran ini membawa?

Memisahkan logik daripada input dan output bermaksud pengiraan berada dalam fungsi yang menerima nilai melalui parameter dan memulangkan hasil. Atur cara utama ialah satu-satunya tempat yang meminta nilai daripada pengguna dan memaparkan jawapan.

Pelajaran ini menutup modul struktur pengaturcaraan. Ia menggabungkan parameter, nilai yang dipulangkan dan skop dalam satu tabiat yang menjadikan atur cara lebih mudah diuji.

Mengapa memisahkan atur cara begini?

Bandingkan dua cara mengira purata. Dalam cara pertama, pengiraan meminta nombor, menjumlahkannya dan mencetak hasil, semuanya dalam satu blok. Untuk mengujinya, anda perlu menaip nombor setiap kali.

Dalam cara kedua, fungsi hanya mengira. Anda boleh memanggilnya dengan empat set nilai berbeza dalam empat baris, menyemak hasil, dan menggunakannya semula kemudian.

Peraturan berguna: fungsi menerima nilai melalui parameter dan menghantar nilai keluar melalui RETURN. Atur cara utama yang bercakap dengan pengguna.

Contoh berlangkah

Sebuah ujian kelas rekaan mempunyai tiga skor. Tulis atur cara supaya logiknya terasing.

FUNCTION Average(A : INTEGER, B : INTEGER, C : INTEGER) RETURNS REAL
    RETURN (A + B + C) / 3
ENDFUNCTION

DECLARE S1 : INTEGER
DECLARE S2 : INTEGER
DECLARE S3 : INTEGER
INPUT S1
INPUT S2
INPUT S3
OUTPUT "Average: ", Average(S1, S2, S3)

Andaikan pengguna memasukkan 70, 65 dan 81. Atur cara utama menghantar S1, S2 dan S3 sebagai argumen.

LangkahABCNilai
Panggil Average(70, 65, 81)706581belum ada
A + B + C706581216
216 / 370658172
RETURN72

Outputnya ialah Average: 72. Oleh sebab fungsi tidak mempunyai INPUT atau OUTPUT, anda boleh mengujinya dengan jadual nilai pilihan:

PanggilanPengiraanHasil dijangka
Average(70, 65, 81)216 / 372
Average(50, 60, 70)180 / 360
Average(0, 0, 0)0 / 30
Average(100, 100, 100)300 / 3100

Setiap baris boleh disemak dengan tangan. Itulah faedahnya: anda menguji logik sekali dan mempercayainya di mana sahaja ia dipanggil.

Kesilapan manakah yang paling kerap berlaku?

Kod yang salah:

FUNCTION Average() RETURNS REAL
    INPUT A
    INPUT B
    INPUT C
    OUTPUT (A + B + C) / 3
ENDFUNCTION

Fungsi ini mempunyai tiga masalah. Ia meminta input sendiri, jadi anda tidak boleh mengujinya dengan nilai pilihan. Ia mengeluarkan dan bukan memulangkan, jadi pernyataan seperti Result ← Average() tidak menerima apa-apa. Ia juga menggunakan A, B dan C tanpa mengisytiharkannya.

Pembetulannya ialah versi di atas: nilai tiba sebagai parameter, jawapan keluar melalui RETURN, dan atur cara utama mengendalikan INPUT dan OUTPUT.

Pengecualiannya ialah apabila soalan secara langsung menyuruh anda memaparkan sesuatu dalam prosedur. Ikut soalan itu, dan kekalkan tabiat ini untuk semua yang lain.

Semakan kendiri

1. Nyatakan hasil Average(90, 80, 70).

Tunjukkan jawapan

90 + 80 + 70 = 240, dan 240 / 3 = 80.

2. Berikan dua sebab fungsi tidak patut mengandungi INPUT.

Tunjukkan jawapan

Anda tidak boleh mengujinya dengan nilai pilihan tanpa menaipnya setiap kali, dan ia tidak boleh digunakan semula di tempat nilai sudah wujud dalam atur cara. Ia juga lebih sukar dibaca kerana melakukan dua tugas.

3. Bahagian mana dalam atur cara contoh ialah logik dan bahagian mana ialah input dan output?

Tunjukkan jawapan

Fungsi Average ialah logik. Tiga baris INPUT dan baris OUTPUT terakhir ialah input dan output, dan ia kekal dalam atur cara utama.

Ke mana pelajaran ini membawa?

Anda kini telah meliputi set penuh kemahiran struktur dalam modul ini. Gabungkannya dalam set latihan struktur pengaturcaraan, di mana setiap soalan merujuk kembali pelajaran yang diuji. Kotak pasir penaakulan Python yang selamat ialah tempat yang baik untuk mencuba jadual ujian di atas sebagai kod sebenar.

Jika anda mahu guru menyemak kod yang anda tulis dan menunjukkan cara menyusunnya semula, tuisyen Computer Science dalam talian satu dengan satu boleh bermula daripada atur cara anda sendiri.

Soalan lazim

Apakah maksud memisahkan logik daripada input dan output?

Logik ialah pengiraan atau keputusan, ditulis sebagai fungsi yang menerima parameter dan memulangkan hasil. Input dan output, yang membaca daripada pengguna dan memaparkan hasil, kekal dalam atur cara utama. Fungsi itu kemudian melakukan satu tugas dan boleh diuji tanpa sesiapa menaip.

Mengapa fungsi tidak patut mengandungi INPUT atau OUTPUT?

Jika fungsi meminta input sendiri, anda tidak boleh memanggilnya dengan nilai ujian pilihan anda. Jika ia mengeluarkan dan bukan memulangkan, kod lain tidak dapat menggunakan jawapan itu. Fungsi yang menerima parameter dan menggunakan RETURN boleh digunakan semula di mana-mana.

Adakah peperiksaan akan meminta saya menulis fungsi dengan cara ini?

Soalan sering memberi tugas kecil dan meminta fungsi atau prosedur, jadi tabiat ini membantu. Ikut perkataan soalan: jika ia berkata paparkan, guna OUTPUT, dan jika ia berkata pulangkan, guna RETURN. Semak sukatan tahun peperiksaan anda untuk konvensyen pseudokod yang tepat.

Dikemas kini:

Langkah seterusnya

Jika atur cara anda berfungsi tetapi sukar diubah atau diuji, guru satu dengan satu boleh meneliti kod anda sendiri dan membantu anda memisahkan bahagian mengira daripada bahagian bertanya dan memaparkan.

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