Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Jejak nilai yang dipulangkan

Fungsi itu nampak pendek dan anda boleh membaca setiap baris, namun jawapan akhir anda masih salah.

Dalam halaman ini
  1. Apakah kaedah menjejak fungsi?
  2. Contoh berlangkah
  3. Kesilapan manakah yang paling kerap berlaku?
  4. Semakan kendiri
  5. Ke mana pelajaran ini membawa?

Menjejak nilai yang dipulangkan (returned value) bermaksud mengikut panggilan fungsi baris demi baris sehingga RETURN, merekod apa yang dipegang oleh setiap pemboleh ubah, dan menyatakan nilai yang kembali kepada pemanggil. Soalan peperiksaan memberi fungsi dan satu panggilan, kemudian meminta nilai yang dipulangkan atau output.

Pelajaran ini sebahagian daripada modul struktur pengaturcaraan. Ia menggunakan parameter daripada membina subrutin dan pemboleh ubah setempat daripada skop.

Apakah kaedah menjejak fungsi?

  1. Salin argumen panggilan ke dalam parameter. Tulis dalam baris pertama.
  2. Sediakan satu lajur bagi setiap pemboleh ubah. Sertakan parameter, pemboleh ubah setempat dan pembilang gelung.
  3. Jalankan setiap baris mengikut turutan. Tulis baris baharu setiap kali nilai berubah.
  4. Berhenti pada RETURN pertama yang dijalankan. Nilai yang dipulangkan ialah apa yang dipegang oleh RETURN itu pada ketika itu.
  5. Nyatakan apa yang pemanggil lakukan dengannya, seperti mengeluarkannya.

Contoh berlangkah

Jejak atur cara ini dan nyatakan outputnya.

FUNCTION RepeatAdd(A : INTEGER, B : INTEGER) RETURNS INTEGER
    DECLARE Result : INTEGER
    Result ← 0
    FOR I ← 1 TO B
        Result ← Result + A
    NEXT I
    RETURN Result
ENDFUNCTION

OUTPUT RepeatAdd(4, 3)

Panggilan RepeatAdd(4, 3) memberi A = 4 dan B = 3. Gelung berjalan untuk I = 1, 2 dan 3.

LangkahABIResult
Panggilan43belum ditetapkanbelum ditetapkan
Result ← 043belum ditetapkan0
I = 14310 + 4 = 4
I = 24324 + 4 = 8
I = 34338 + 4 = 12
RETURN Result12

Fungsi memulangkan 12, dan atur cara utama mengeluarkan 12. Fungsi mengulang penambahan sebanyak B kali, jadi ia mengira A × B. Sebagai semakan, 4 × 3 = 12.

Kesilapan manakah yang paling kerap berlaku?

Kod yang salah:

FUNCTION SumTo(N : INTEGER) RETURNS INTEGER
    DECLARE Total : INTEGER
    Total ← 0
    FOR I ← 1 TO N
        Total ← Total + I
        RETURN Total
    NEXT I
ENDFUNCTION

Penulis menjangka SumTo(4) memulangkan 1 + 2 + 3 + 4 = 10.

RETURN terletak di dalam gelung. Pada pusingan pertama I = 1, Total menjadi 1, dan RETURN menamatkan fungsi serta-merta. Jadi SumTo(4) memulangkan 1.

Pembetulannya ialah memindahkan RETURN selepas NEXT, di luar gelung. Kemudian gelung menyelesaikan keempat-empat pusingan, Total mencapai 1 + 2 + 3 + 4 = 10, dan 10 dipulangkan.

Kesilapan kedua ialah memanggil fungsi dan mengabaikan nilainya. Menulis RepeatAdd(4, 3) pada satu baris sahaja tidak berguna. Simpan nilainya, contohnya Answer ← RepeatAdd(4, 3), atau keluarkannya.

Semakan kendiri

1. Nyatakan nilai yang dipulangkan oleh RepeatAdd(5, 0).

Tunjukkan jawapan

B ialah 0, jadi gelung FOR I ← 1 TO 0 tidak berjalan langsung. Result kekal 0 dan 0 dipulangkan.

2. Nyatakan nilai yang dipulangkan oleh RepeatAdd(3, 4).

Tunjukkan jawapan

Result menjadi 0, kemudian 3, 6, 9, 12 dalam empat pusingan. Ia memulangkan 12.

3. Nyatakan outputnya.

FUNCTION Larger(X : INTEGER, Y : INTEGER) RETURNS INTEGER
    IF X > Y THEN
        RETURN X
    ELSE
        RETURN Y
    ENDIF
ENDFUNCTION

OUTPUT Larger(7, 12)
Tunjukkan jawapan

X = 7 dan Y = 12. Ujian 7 > 12 ialah FALSE, jadi cabang ELSE berjalan dan memulangkan Y. Outputnya ialah 12.

Ke mana pelajaran ini membawa?

Setelah anda boleh menjejak apa yang dihantar semula oleh fungsi, fikirkan apa yang patut dan tidak patut dilakukan oleh fungsi selain memulangkan nilai. Itulah tajuk memisahkan logik daripada input dan output. Berlatih dengan pelatih jejak pseudokod terhad yang menunjukkan setiap baris jadual, dan bandingkan dengan kotak pasir penaakulan Python yang selamat.

Pelajar yang boleh menjejak tetapi kekurangan masa dalam peperiksaan sering memerlukan rutin, dan guru Computer Science dalam talian satu dengan satu boleh membinanya berdasarkan kertas anda sendiri.

Soalan lazim

Apakah sebenarnya yang dilakukan oleh RETURN?

RETURN menamatkan fungsi dengan serta-merta dan menghantar satu nilai kembali kepada baris yang memanggilnya. Baris selepas RETURN tidak dijalankan. Kod pemanggil kemudian boleh menyimpan nilai itu, mengeluarkannya atau menggunakannya dalam pengiraan.

Mengapa saya perlu menulis jadual jejak jika saya boleh nampak jawapannya?

Fungsi pendek menyembunyikan kesilapan kecil, seperti gelung berjalan satu kali kurang. Jadual memaksa anda merekod setiap pemboleh ubah selepas setiap langkah, jadi jawapan datang daripada kod dan bukan tekaan. Pemeriksa juga memberi markah untuk nilai perantaraan yang betul.

Apa berlaku jika fungsi tidak pernah sampai ke RETURN?

Fungsi yang sepatutnya memulangkan nilai harus memulangkan pada setiap laluan yang mungkin. Jika sesuatu laluan tiada RETURN, pemanggil tidak menerima nilai, iaitu ralat logik. Semak setiap cabang IF apabila anda membaca fungsi.

Dikemas kini:

Langkah seterusnya

Jika jejak anda menyimpang di tengah gelung, guru satu dengan satu boleh memerhati anda mengisi jadual secara langsung dan menghentikan anda pada baris tepat di mana nilai itu tersasar.

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