Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Latihan

Struktur pengaturcaraan: latihan campuran

Soalan struktur terasa mudah semasa membaca nota, kemudian jadual jejak kosong meminta anda menetapkan setiap nilai.

Set ini meliputi seluruh modul struktur pengaturcaraan: jenis data, skop setempat dan global, parameter, nilai dipulangkan, dan memisahkan logik daripada input dan output. Semua atur cara dan nilai adalah rekaan.

Soalan disusun daripada mudah kepada lebih sukar. Tulis jawapan anda dahulu, kemudian buka penyelesaian. Jadual jejak ditunjukkan sepenuhnya supaya anda boleh membandingkan setiap baris. Pelatih jejak pseudokod terhad berguna untuk soalan jejak, kotak pasir penaakulan Python yang selamat membolehkan anda menyemak hasil, dan log kesilapan dan baris gilir ujian semula ialah tempat untuk merekod kesilapan.

Soalan

1. Pilih jenis data yang paling sesuai bagi setiap satu: (a) bilangan kerusi dalam dewan, (b) suhu 31.5, (c) kod tiket “0045”, (d) satu jawapan ‘Y’ atau ‘N’, (e) sama ada hujan sedang turun.

Tunjukkan jawapan

(a) INTEGER, bilangan bulat. (b) REAL, kerana ada bahagian pecahan. (c) STRING, kerana tidak pernah dikira dan sifar di depan mesti dikekalkan. (d) CHAR, satu aksara. (e) BOOLEAN, hanya TRUE atau FALSE.

2. Sebuah atur cara menyimpan hasil 15 / 4. Nyatakan nilai dan jenis data yang diperlukan.

Tunjukkan jawapan

15 / 4 = 3.75. Hasilnya mempunyai bahagian pecahan, jadi ia memerlukan REAL. Pemboleh ubah INTEGER tidak dapat menyimpan 3.75.

3. Nyatakan outputnya.

Count ← 10

PROCEDURE Change()
    DECLARE Count : INTEGER
    Count ← 99
ENDPROCEDURE

CALL Change()
OUTPUT Count
Tunjukkan jawapan

Prosedur mengisytiharkan Count setempatnya sendiri dan menetapkannya kepada 99. Count global ialah pemboleh ubah yang berasingan dan kekal 10. Outputnya ialah 10.

4. Count diisytiharkan dalam atur cara utama. Temp diisytiharkan di dalam prosedur Calc. Nyatakan sama ada setiap satu setempat atau global, dan sama ada atur cara utama boleh mengeluarkan Temp selepas Calc dijalankan.

Tunjukkan jawapan

Count ialah global. Temp setempat bagi Calc. Atur cara utama tidak boleh mengeluarkan Temp, kerana pemboleh ubah setempat berhenti wujud apabila prosedur tamat.

5. Tulis fungsi Area yang menerima dua parameter REAL Length dan Width dan memulangkan hasil darabnya sebagai REAL. Nyatakan nilai Area(4.5, 2).

Tunjukkan jawapan
FUNCTION Area(Length : REAL, Width : REAL) RETURNS REAL
    RETURN Length * Width
ENDFUNCTION

Area(4.5, 2) memulangkan 4.5 × 2 = 9.0.

6. Jejak fungsi dan nyatakan nilai yang dipulangkan oleh RepeatAdd(6, 4).

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
Tunjukkan jawapan
IResult
mula0
16
212
318
424

Fungsi memulangkan 24, iaitu 6 × 4.

7. Fungsi ini sepatutnya memulangkan 1 + 2 + 3 bagi SumTo(3). Nyatakan apa yang sebenarnya dipulangkan, dan betulkannya.

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

RETURN berada di dalam gelung, jadi pada pusingan pertama Total menjadi 0 + 1 = 1 dan fungsi tamat. Ia memulangkan 1.

Pembetulan: pindahkan RETURN Total selepas NEXT I. Kemudian Total menjadi 1, 3, 6 dan fungsi memulangkan 6.

8. Fungsi di bawah mengurangkan harga mengikut peratusan. Nyatakan nilai Discount(80, 25), kemudian terangkan apa berlaku jika argumen ditukar kepada Discount(25, 80).

FUNCTION Discount(Price : REAL, Percent : REAL) RETURNS REAL
    RETURN Price - Price * Percent / 100
ENDFUNCTION
Tunjukkan jawapan

Discount(80, 25): 80 × 25 / 100 = 20, dan 80 − 20 = 60.

Discount(25, 80): Price ialah 25 dan Percent ialah 80. 25 × 80 / 100 = 20, dan 25 − 20 = 5. Argumen dipadankan dengan parameter mengikut kedudukan, jadi menukarnya memberi jawapan salah tanpa mesej ralat.

9. Tulis fungsi ToFahrenheit yang menerima nilai Celsius REAL dan memulangkan Celsius × 9 / 5 + 32. Berikan hasil bagi 30 dan 100.

Tunjukkan jawapan
FUNCTION ToFahrenheit(Celsius : REAL) RETURNS REAL
    RETURN Celsius * 9 / 5 + 32
ENDFUNCTION

Bagi 30: 30 × 9 = 270, 270 / 5 = 54, 54 + 32 = 86. Bagi 100: 100 × 9 = 900, 900 / 5 = 180, 180 + 32 = 212. Fungsi tidak mempunyai INPUT atau OUTPUT, jadi atur cara utama yang mengendalikannya.

10. Nyatakan outputnya.

FUNCTION Score(Correct : INTEGER, Wrong : INTEGER) RETURNS INTEGER
    RETURN Correct * 3 - Wrong
ENDFUNCTION

A ← Score(8, 2)
B ← Score(5, 5)
OUTPUT A + B
Tunjukkan jawapan

Score(8, 2) = 8 × 3 − 2 = 24 − 2 = 22, jadi A = 22. Score(5, 5) = 15 − 5 = 10, jadi B = 10. Outputnya ialah 22 + 10 = 32.

11. Bagi setiap tugas, nyatakan sama ada prosedur atau fungsi lebih sesuai dan sebabnya: (a) memaparkan satu baris sambutan, (b) mengira bil termasuk caj perkhidmatan 8% dan memberikan jumlah kembali kepada pemanggil.

Tunjukkan jawapan

(a) Prosedur: ia hanya melakukan sesuatu dan tiada nilai dikembalikan. (b) Fungsi: pemanggil memerlukan jumlah, jadi ia menggunakan RETURN. Caj perkhidmatan ditambah dalam fungsi dan atur cara utama menentukan cara memaparkan hasil.

12. Nyatakan outputnya. Terangkan mengapa panggilan kedua tidak bermula daripada 0.

DECLARE Count : INTEGER
Count ← 0

FUNCTION Next(Step : INTEGER) RETURNS INTEGER
    Count ← Count + Step
    RETURN Count
ENDFUNCTION

DECLARE A : INTEGER
DECLARE B : INTEGER
A ← Next(2)
B ← Next(3)
OUTPUT A + B
Tunjukkan jawapan

Count ialah global, jadi perubahan kekal antara panggilan. Panggilan pertama: Count = 0 + 2 = 2, memulangkan 2, jadi A = 2. Panggilan kedua: Count = 2 + 3 = 5, memulangkan 5, jadi B = 5. Outputnya 2 + 5 = 7.

Ini berfungsi tetapi menjadikan fungsi bergantung pada pemboleh ubah global, iaitu tabiat yang dinasihatkan oleh modul supaya dielakkan. Reka bentuk yang lebih bersih ialah menghantar kiraan semasa sebagai parameter.

Jika anda tersilap

Padankan setiap jenis ralat dengan pelajaran, ulang semakan kendiri pelajaran itu, kemudian cuba semula soalan beberapa hari kemudian.

RalatPergi ke
Jenis salah, terutama kod disimpan sebagai nombor (1, 2)Pilih jenis data yang sesuai
Output atau keterlihatan pemboleh ubah setempat atau global (3, 4, 12)Skop setempat dan global
Susunan parameter atau pengepala fungsi (5, 8, 11)Bina subrutin dengan parameter yang jelas
Nilai salah selepas menjejak, RETURN awal (6, 7, 10)Jejak nilai yang dipulangkan
Mencampur pengiraan dengan input atau output (9, 11)Asingkan logik daripada input dan output

Jika ralat anda tersebar merentasi beberapa pelajaran, guru satu dengan satu dalam perkhidmatan tuisyen Computer Science kami boleh membantu anda menentukan keutamaan.

Soalan lazim

Bagaimana saya patut menggunakan set latihan ini?

Tutup jawapan dan tulis setiap penyelesaian di atas kertas, termasuk sebarang jadual jejak. Kemudian buka penyelesaian dan banding nilai baris demi baris, bukan hanya jawapan akhir. Catat setiap kesilapan, dan cuba semula soalan yang tersilap beberapa hari kemudian tanpa nota.

Adakah soalan ini daripada kertas peperiksaan lepas?

Tidak. Setiap soalan ialah asli dan menggunakan atur cara serta nilai rekaan. Ia sepadan dengan kemahiran dalam modul dan bukan mana-mana kertas tertentu. Kertas lepas dan sukatan semasa boleh diperoleh daripada pusat peperiksaan anda dan laman web Cambridge.

Bagaimana jika sekolah saya menggunakan Python dan bukan pseudokod?

Idea yang sama berlaku dalam kedua-duanya. Semak notasi yang digunakan oleh tahun peperiksaan anda di laman subjek Cambridge, dan terjemahkan setiap soalan ke Python dalam kotak pasir selamat untuk melihat hasil yang sama. Lakukan versi pseudokod juga jika kertas anda menggunakannya.

Dikemas kini:

Langkah seterusnya

Jika jenis kesilapan yang sama terus muncul dalam set ini, guru satu dengan satu boleh mengelaskan ralat anda mengikut punca dan membina pelan ringkas berdasarkan dua atau tiga yang paling merugikan anda.

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