myUASARevision for UASAUlang kaji UASA
Practice paper, not an official KPM paperKertas latihan, bukan kertas rasmi KPM
Asas Sains Komputer Tingkatan 2
Ujian Akhir Sesi Akademik (format rumah)

Asas Sains Komputer

Tingkatan 2, 1 jam 30 minit, 70 marksmarkah
NameNama
ClassKelas
DateTarikh
marksmarkah:      / 70
InstructionsArahan
  1. Kertas soalan ini mengandungi tiga bahagian: Bahagian A, Bahagian B dan Bahagian C.
  2. Jawab semua soalan.
  3. Bahagian A: pilih satu jawapan yang betul.
  4. Bahagian B dan C: tulis jawapan anda di ruang yang disediakan. Tunjukkan cara kerja anda.

Bahagian A

10 marksmarkah
Jawab semua soalan. Setiap soalan diikuti oleh empat pilihan jawapan, A, B, C dan D. Pilih satu jawapan yang betul.
1

QuestionSoalan 1

Antara berikut, yang manakah nombor perenambelasan yang sah?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Sistem perenambelasan menggunakan digit 0 hingga 9 dan huruf A hingga F (Jadual 1.6, ms. 19). G, H dan T tidak wujud dalam sistem ini, jadi G07, 4H1 dan 9T3 bukan nombor perenambelasan.
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.1
TextbookBuku teks p.ms. 19
2

QuestionSoalan 2

Sebuah data 32 bit ditulis sebagai nombor perduaan dengan 32 digit. Berapakah bilangan digit jika data yang sama ditulis sebagai nombor perenambelasan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Setiap empat digit perduaan menjadi satu digit perenambelasan (ms. 31). 32 ÷ 4 = 8 digit.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 1, standard 1.2.4
TextbookBuku teks p.ms. 31
3

QuestionSoalan 3

Dalam struktur kawalan ulangan for, bilangan ulangan ditetapkan oleh
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
Struktur for mengulang pernyataan untuk bilangan kali yang tertentu. Bilangan ulangan dikawal oleh pembilang yang berubah pada setiap ulangan (ms. 52).
For the teacherUntuk guru: RememberingMengingat, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.1
TextbookBuku teks p.ms. 52
4

QuestionSoalan 4

Rajah 1 menunjukkan sebuah carta alir. Apakah output yang dipaparkan oleh carta alir itu?
Carta alir: setkan kira = 20 dan bil = 0; selagi kira > 5, kira = kira - 6 dan bil = bil + 1; apabila tidak, paparkan bil
Rajah 1
Show answerTunjuk jawapanHide answerSembunyi jawapan
B
Semakan meja: kira = 20 (ujian Ya) menjadi 14, bil 1; kira = 14 (Ya) menjadi 8, bil 2; kira = 8 (Ya) menjadi 2, bil 3; kira = 2 (Tidak), gelung berhenti. Output ialah bil = 3. Nilai 2 ialah kira, bukan bil.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, Bab 2, standard 2.1.1
TextbookBuku teks p.ms. 56
5

QuestionSoalan 5

Teliti segmen kod Python berikut.
kata = str("Hai")
print(len(kata * 4))
Apakah output segmen kod itu?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Simbol * mengulang string: “Hai” * 4 memberi HaiHaiHaiHai (Contoh 3.8, ms. 84). Fungsi len() menghitung bilangan aksara dalam string itu: 4 × 3 = 12. Pilihan 7 menambah 3 + 4 dan pilihan 4 ialah bilangan ulangan, bukan bilangan aksara.
For the teacherUntuk guru: ApplyingMengaplikasi, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.1
TextbookBuku teks p.ms. 84
6

QuestionSoalan 6

Teliti segmen kod Python berikut.
for i in range(30, 5, -7):
    print(i)
Apakah nilai terakhir yang dipaparkan?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
range(30, 5, -7) mengira ke bawah dengan langkau -7 dan berhenti sebelum 5 (ms. 146). Nilainya 30, 23, 16 dan 9. Nilai seterusnya, 2, sudah melepasi had 5, maka nilai terakhir ialah 9.
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, Bab 3, standard 3.2.1
TextbookBuku teks p.ms. 146
7

QuestionSoalan 7

Sebuah atur cara menyemak sama ada nilai nom ialah nombor genap. Ungkapan boolean yang manakah betul?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
Operator % memberi baki pembahagian. Nombor genap mempunyai nom % 2 == 0 (Jadual 3.9, ms. 100; Contoh 3.26, ms. 137). Operator // memberi hasil bahagi tanpa baki dan ** memberi kuasa, bukan baki.
For the teacherUntuk guru: UnderstandingMemahami, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 100
8

QuestionSoalan 8

Segmen kod Python berikut dijalankan. Pengguna menaip 7 bagi nombor pertama dan 5 bagi nombor kedua.
a = input("Nombor pertama: ")
b = input("Nombor kedua: ")
print(a + b)
Apakah output atur cara itu?
Show answerTunjuk jawapanHide answerSembunyi jawapan
C
input() sentiasa memberi string (ms. 96). Operator + pada dua string menggabungkan keduanya tanpa ruang kosong, maka '7' + '5' memberi 75. Untuk mendapat 12, gunakan int(input(...)).
For the teacherUntuk guru: ApplyingMengaplikasi, hightinggi difficultyaras hightinggi, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 96
9

QuestionSoalan 9

Dalam Python, apakah maksud x == 13?
Show answerTunjuk jawapanHide answerSembunyi jawapan
A
Satu tanda = memberi nilai (x = 13). Dua tanda == menyemak sama atau tidak dan memberi True atau False (Jadual 3.7 dan rajah, ms. 98; x = 13 pada ms. 87).
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.3 (ii)
TextbookBuku teks p.ms. 98
10

QuestionSoalan 10

Diberi x = 8 dan y = 3. Antara ungkapan boolean berikut, yang manakah memberi True?
Show answerTunjuk jawapanHide answerSembunyi jawapan
D
A: False or False = False. B: 8 % 2 ialah 0, jadi (x % 2 == 1) False; False and True = False. C: x != y True, not True = False. D: x < y False, maka not (x < y) True; y <= 3 True; True and True = True (Jadual 3.8, ms. 99).
For the teacherUntuk guru: AnalysingMenganalisis, hightinggi difficultyaras hightinggi, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 99

Bahagian B

40 marksmarkah
Jawab semua soalan. Setiap soalan bernilai 4 markah.
11

QuestionSoalan 11

Jadual 1 menunjukkan sebahagian langkah menukar nombor perpuluhan 202410 kepada nombor perenambelasan dengan kaedah bahagi dengan 16. Petak P, Q, R dan S sengaja dibiarkan kosong.
Jadual tiga baris: 2024 dibahagi 16 memberi 126 baki 8; 126 dibahagi 16 memberi P baki Q; P dibahagi 16 memberi R baki S
Jadual 1
[2 marksmarkah] (a)Tulis nilai P dan nilai Q.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
126 ÷ 16 = 7 baki 14, kerana 7 × 16 = 112 dan 126 − 112 = 14.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Tulis nilai R dan nilai S.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
7 ÷ 16 = 0 baki 7. Hasil bahagi 0 menamatkan pembahagian.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Tulis 202410 sebagai nombor perenambelasan.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
Baca baki dari bawah ke atas: 7, 14 (E), 8. Maka 202410 = 7E816. Semakan: 7 × 256 + 14 × 16 + 8 = 1792 + 224 + 8 = 2024.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.2
TextbookBuku teks p.ms. 20
12

QuestionSoalan 12

Nilai tempat nombor perenambelasan ialah 1, 16, 256 dan 4 096.
[2 marksmarkah] (a)Tukarkan A3F16 kepada nombor perpuluhan. Tunjukkan cara kerja anda.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
A3F16 = 262310. Semakan: 2623 ÷ 16 = 163 baki 15 (F); 163 ÷ 16 = 10 baki 3; 10 ÷ 16 = 0 baki 10 (A); baca dari bawah: A, 3, F.
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Hafiz menukar 2F16 kepada nombor perpuluhan seperti berikut: 2 × 16 + 6 = 38. Jawapannya salah. Nyatakan kesilapan Hafiz dan tulis jawapan yang betul.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Dalam pengiraan, huruf A hingga F bernilai 10 hingga 15 (Jadual 1.6, ms. 19). F = 15, maka 2F16 = 32 + 15 = 4710.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: EvaluatingMenilai, mediumsederhana difficultyaras mediumsederhana, Bab 1, standard 1.2.2
TextbookBuku teks p.ms. 22
13

QuestionSoalan 13

Jadual 1.10 buku teks menunjukkan setiap digit perenambelasan sebagai empat digit perduaan (0 = 0000, 1 = 0001 dan seterusnya sehingga F = 1111).
[2 marksmarkah] (a)Tukarkan 6E916 kepada nombor perduaan. Buang sifar di hadapan dalam jawapan akhir.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
6 = 0110, E (14) = 1110, 9 = 1001. Cantum: 011011101001. Buang sifar di hadapan sahaja: 110111010012.
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Tukarkan 101101001102 (11 digit) kepada nombor perenambelasan dengan kaedah pengumpulan empat digit.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Digit perduaan ialah 11, bukan gandaan 4, maka tambah satu sifar di kiri (bukan di kanan). 0101 = 5; 1010 = 10 = A; 0110 = 6. Maka 101101001102 = 5A616.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.2
TextbookBuku teks p.ms. 24
14

QuestionSoalan 14

Laman web menulis warna sebagai #RRGGBB. RR ialah merah, GG ialah hijau dan BB ialah biru. Setiap bahagian ialah dua digit perenambelasan.
[2 marksmarkah] (a)Bagi kod warna #3C8A1F, tulis nilai perpuluhan bahagian merah (RR) dan bahagian hijau (GG).

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
C = 12 dan A = 10. Bahagian biru ialah 1F = 1 × 16 + 15 = 31, maka #3C8A1F ialah (60, 138, 31).
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Tulis kod warna #RRGGBB bagi warna yang mempunyai merah 200, hijau 16 dan biru 255.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
200 ÷ 16 = 12 baki 8, maka C8. 16 ÷ 16 = 1 baki 0, maka 10; dua digit diperlukan untuk setiap bahagian. 255 = FF. Maka kod warna ialah #C810FF.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 1, standard 1.2.1
TextbookBuku teks p.ms. 18
15

QuestionSoalan 15

Teliti pseudokod berikut.
1Mula
2Setkan k = 3
3Setkan jum = 0
4for k <= 15
    jum = jum + k
    k = k + 4
5Paparkan jum
6Tamat
Jadual 2 ialah semakan meja bagi pseudokod itu. Petak P, Q, R dan S sengaja dibiarkan kosong.
Jadual semakan meja empat lelaran dengan lajur k sebelum lelaran, ujian k <= 15, jum selepas dan k selepas; petak P, Q, R dan S kosong
Jadual 2
[3 marksmarkah] (a)Tulis nilai P, Q dan R.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
jum bertambah 3, 3 + 7 = 10, 10 + 11 = 21 dan 21 + 15 = 36.
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (b)Tulis nilai S, iaitu nilai k selepas lelaran ke-4. Mengapakah gelung berhenti?

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
k = 15 + 4 = 19. Ujian 19 <= 15 Tidak, maka gelung berhenti. Pseudokod memaparkan 36.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 2, standard 2.1.1
TextbookBuku teks p.ms. 54
16

QuestionSoalan 16

Pseudokod berikut sepatutnya memaparkan nombor ganjil kurang daripada 10, iaitu 1, 3, 5, 7 dan 9.
1Mula
2Setkan k = 1
3while k != 10
    Paparkan k
    k = k + 2
4Tamat
[1 markmarkah] (a)Apakah yang berlaku apabila pseudokod ini dijalankan?

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
k sentiasa nombor ganjil, maka k tidak pernah bersamaan dengan 10 dan syarat k != 10 sentiasa benar. Gelung tidak berhenti (ms. 58 dan 62).
Tick each point you got.Tandakan setiap isi yang betul.
[2 marksmarkah] (b)Terangkan mengapa gelung tidak berhenti dan tulis semula baris 3 supaya pseudokod betul.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Ujian != hanya berhenti apabila k tepat 10. Gunakan perbandingan julat, iaitu k < 10, supaya gelung berhenti apabila k = 11 selepas 9 dipaparkan. Ini ralat logik; uji nilai sempadan dengan semakan meja (ms. 62 hingga 63).
Tick each point you got.Tandakan setiap isi yang betul.
[1 markmarkah] (c)Tulis output pseudokod selepas ralat dibaiki.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
k = 1, 3, 5, 7, 9 lulus ujian k < 10; apabila k = 11, gelung berhenti.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: AnalysingMenganalisis, mediumsederhana difficultyaras mediumsederhana, Bab 2, standard 2.1.2
TextbookBuku teks p.ms. 62
17

QuestionSoalan 17

Tiga baris kod Python berikut mengandungi tiga jenis ralat yang berbeza. Kelaskan setiap ralat itu.
[1 markmarkah] (a)jumlah = 10 / 0
Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat masa larian
Pembahagian dengan sifar menyebabkan atur cara terhenti tiba-tiba dan mesej ralat dipaparkan: ralat masa larian (ms. 106).
[1 markmarkah] (b)print("Jumlah:", jum (kurungan tutup tertinggal)
Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat sintaks
Tertinggal simbol seperti kurungan tutup ialah ralat sintaks. Atur cara tidak berjalan dan mesej ralat dipaparkan (ms. 102 hingga 105).
[1 markmarkah] (c)luas = panjang + lebar (bertujuan mengira luas segi empat tepat; panjang 6 dan lebar 4 memberi 10)
Show answerTunjuk jawapanHide answerSembunyi jawapan
Ralat logik
Atur cara berjalan tanpa mesej ralat tetapi hasilnya salah kerana operator salah: ralat logik (ms. 110).
[1 markmarkah] (d)Tulis baris di (c) yang telah dibaiki.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
Luas ialah hasil darab panjang dan lebar. Operator darab dalam Python ialah *, bukan x. Maka luas = 6 * 4 = 24.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.4
TextbookBuku teks p.ms. 106
18

QuestionSoalan 18

Teliti segmen kod Python berikut.
1jum = 0
2for i in range(2, 10, 3):
3    jum = jum + i * i
4    print(i, jum)
[1 markmarkah] (a)Senaraikan nilai i yang dijana oleh range(2, 10, 3).

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
range(2, 10, 3) bermula pada 2, bertambah 3 dan berhenti sebelum 10: 2, 5, 8. Nilai seterusnya, 11, melebihi had.
Tick each point you got.Tandakan setiap isi yang betul.
[3 marksmarkah] (b)Tulis output segmen kod itu. Setiap baris output bernilai 1 markah.

Auto-checked: type a short answerSemakan automatik: taip jawapan pendek

Show answerTunjuk jawapanHide answerSembunyi jawapan
i = 2: jum = 0 + 4 = 4. i = 5: jum = 4 + 25 = 29. i = 8: jum = 29 + 64 = 93. print berada di dalam gelung, maka tiga baris dipaparkan.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.2.1
TextbookBuku teks p.ms. 146
19

QuestionSoalan 19

Tulis segmen kod Python yang meminta pengguna memasukkan tiga markah ujian (nombor bulat), mengira purata ketiga-tiga markah itu dan memaparkan purata yang dibundarkan kepada dua tempat perpuluhan.
[4 marksmarkah] Tulis segmen kod anda.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
m1 = int(input("Markah 1: "))
m2 = int(input("Markah 2: "))
m3 = int(input("Markah 3: "))
purata = (m1 + m2 + m3) / 3
print("Purata:", round(purata, 2))
Struktur jujukan: input, proses, output (ms. 123). Kurungan perlu supaya tiga markah dijumlahkan dahulu sebelum dibahagi 3. Contoh: 70, 75, 80 memberi 75.0.
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: ApplyingMengaplikasi, lowrendah difficultyaras lowrendah, Bab 3, standard 3.2.1
TextbookBuku teks p.ms. 123
20

QuestionSoalan 20

Jadual 3 ialah jadual kebenaran bagi operator logik and, or dan not. Petak P, Q, R dan S sengaja dibiarkan kosong. Pilih nilai yang betul bagi setiap petak.
Jadual kebenaran dengan lajur a, b, a AND b, a OR b dan NOT (a OR b); empat petak kosong P, Q, R dan S
Jadual 3
[1 markmarkah] (a)P
Show answerTunjuk jawapanHide answerSembunyi jawapan
False
Baris 1: a OR b ialah True, maka NOT (a OR b) ialah False.
[1 markmarkah] (b)Q
Show answerTunjuk jawapanHide answerSembunyi jawapan
False
Baris 2: a = True dan b = False. AND benar hanya jika kedua-dua operan benar, maka a AND b ialah False.
[1 markmarkah] (c)R
Show answerTunjuk jawapanHide answerSembunyi jawapan
True
Baris 3: a = False dan b = True. OR benar jika salah satu operan benar, maka a OR b ialah True.
[1 markmarkah] (d)S
Show answerTunjuk jawapanHide answerSembunyi jawapan
True
Baris 4: a OR b ialah False, maka NOT (a OR b) menyongsangkan keadaan itu kepada True.
For the teacherUntuk guru: UnderstandingMemahami, lowrendah difficultyaras lowrendah, Bab 3, standard 3.1.3
TextbookBuku teks p.ms. 99

Bahagian C

20 marksmarkah
Jawab semua soalan. Tulis jawapan anda di ruang yang disediakan.
21

QuestionSoalan 21

Aina menyimpan wang dalam sebuah tabung. Pada hari pertama tabung mengandungi RM1. Pada setiap hari berikutnya, jumlah dalam tabung digandakan. Aina mahu tahu berapa hari diperlukan sehingga jumlah tabung melebihi sasarannya. Sasaran (dalam RM) dimasukkan oleh pengguna. Algoritma memaparkan bilangan hari dan jumlah dalam tabung pada hari itu. Jika bilangan hari tidak lebih daripada 7, algoritma memaparkan "Cepat"; jika tidak, algoritma memaparkan "Lambat".
[2 marksmarkah] (a)(i) Mengapakah struktur ulangan while lebih sesuai daripada for bagi algoritma ini?
(ii) Jika sasaran ialah RM100, tulis bilangan hari dan jumlah dalam tabung yang dipaparkan.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Struktur for digunakan apabila bilangan ulangan diketahui; while digunakan apabila ulangan bergantung pada syarat (ms. 56). Jumlah tabung ialah 1, 2, 4, 8, 16, 32, 64 pada hari 1 hingga 7. Pada hari ke-7 tabung (64) belum melebihi 100, maka gelung diteruskan: tabung menjadi 128 pada hari ke-8 dan gelung berhenti.
Tick each point you got.Tandakan setiap isi yang betul.
[8 marksmarkah] (b)Tulis pseudokod bagi algoritma itu. Gunakan Mula, Tamat, Baca, Setkan, Kirakan, while, Jika, Jika tidak, Tamat jika dan Paparkan.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
Mula
Baca sasaran
Setkan tabung = 1
Setkan hari = 1
while tabung <= sasaran
    Kirakan tabung = tabung * 2
    Kirakan hari = hari + 1
Paparkan hari, tabung
Jika (hari <= 7)
    Paparkan "Cepat"
Jika tidak
    Paparkan "Lambat"
Tamat jika
Tamat
Struktur ulangan while digabungkan dengan pilihan dwipilihan (ms. 56 dan 65 hingga 66). Terima penyelesaian lain yang betul, misalnya nama pemboleh ubah yang lain atau pernyataan Kirakan yang ditulis dalam susunan lain, asalkan sasaran 100 memberi hari = 8 dan tabung = 128 dan mesej yang betul dipaparkan. Semakan meja: sasaran 100 memberi hari = 8, tabung = 128 dan "Lambat"; sasaran 30 memberi hari = 6, tabung = 32 dan "Cepat".
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, hightinggi difficultyaras hightinggi, Bab 2, standard 2.1.3
TextbookBuku teks p.ms. 66
22

QuestionSoalan 22

Kantin sekolah mahu atur cara untuk mengira jumlah bayaran seorang murid. Hafiz menulis segmen kod Python berikut. Pengguna menaip harga setiap barang dan menaip 0 apabila selesai.
1jumlah = 0
2harga = float(input("Harga (0 untuk tamat): "))
3while harga != 0:
4    jumlah = jumlah + harga
5    harga = float(input("Harga (0 untuk tamat): "))
6print("Jumlah: RM", jumlah)
[2 marksmarkah] (a)Pengguna memasukkan 2.5, 4, 1.5 dan 0 mengikut turutan. Tulis output atur cara. Mengapakah nilai 0 tidak ditambah kepada jumlah?

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
jumlah menjadi 2.5, 6.5 dan 8.0. Harga dibaca sebagai float, maka jumlah dipaparkan sebagai 8.0 (ms. 57 hingga 59 untuk idea yang sama dalam pseudokod).
Tick each point you got.Tandakan setiap isi yang betul.
[8 marksmarkah] (b)Ubah suai atur cara itu supaya ia juga mengira bilangan barang dan memaparkan purata harga satu barang yang dibundarkan kepada dua tempat perpuluhan. Jika jumlah melebihi RM20, murid mendapat diskaun 10% dan jumlah bayaran selepas diskaun dipaparkan; jika tidak, jumlah asal dipaparkan. Andaikan sekurang-kurangnya satu barang dimasukkan. Tulis atur cara lengkap.

You mark this one: open Show answerAnda tanda sendiri: buka Tunjuk jawapan

Show answerTunjuk jawapanHide answerSembunyi jawapan
jumlah = 0
bil = 0
harga = float(input("Harga (0 untuk tamat): "))
while harga != 0:
    jumlah = jumlah + harga
    bil = bil + 1
    harga = float(input("Harga (0 untuk tamat): "))
purata = jumlah / bil
print("Purata harga: RM", round(purata, 2))
if jumlah > 20:
    bayar = jumlah * 0.90
    print("Bayaran selepas diskaun: RM", round(bayar, 2))
else:
    print("Bayaran: RM", jumlah)
Gabungan ulangan (while) dan pilihan (if-else) (ms. 160). Terima penyelesaian lain yang betul, misalnya bayar = jumlah - jumlah * 0.10 atau jumlah * 90 / 100. Contoh semakan: 6.5, 8 dan 9.2 memberi jumlah 23.7, bil = 3, purata 7.9 dan bayaran selepas diskaun 21.33 (23.7 > 20).
Tick each point you got.Tandakan setiap isi yang betul.
For the teacherUntuk guru: CreatingMencipta, mediumsederhana difficultyaras mediumsederhana, Bab 3, standard 3.2.3
TextbookBuku teks p.ms. 160
Test specification (JSU)Jadual Spesifikasi Ujian (JSU)
BabRememberingMengingatUnderstandingMemahamiApplyingMengaplikasiAnalysingMenganalisisEvaluatingMenilaiCreatingMenciptaItemmarksmarkah
1. Perwakilan data1 (1)–4 (13)–1 (4)–618
2. Algoritma1 (1)–1 (4)2 (5)–1 (10)520
3. Kod arahan–4 (10)4 (10)2 (2)–1 (10)1132
TotalJumlah2 (2)4 (10)9 (27)4 (7)1 (4)2 (20)2270
Each cell shows items (marks).Setiap petak menunjukkan item (markah).