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
Kertas soalan ini mengandungi tiga bahagian: Bahagian A, Bahagian B dan Bahagian C.
Jawab semua soalan.
Bahagian A: pilih satu jawapan yang betul.
Bahagian B dan C: tulis jawapan anda di ruang yang disediakan. Tunjukkan cara kerja anda.
Practice shows answers as you go. Exam times you and hides answers until you submit.Latihan menunjukkan jawapan semasa menjawab. Peperiksaan menetapkan masa dan menyembunyikan jawapan sehingga dihantar.
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 teksp.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 teksp.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 teksp.ms. 52
4
QuestionSoalan 4
Rajah 1 menunjukkan sebuah carta alir. Apakah output yang dipaparkan oleh carta alir itu?
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 teksp.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 teksp.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 teksp.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 teksp.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 teksp.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 teksp.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 teksp.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 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 teksp.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
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 teksp.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 teksp.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 teksp.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 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
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 teksp.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 teksp.ms. 62
17
QuestionSoalan 17
Tiga baris kod Python berikut mengandungi tiga jenis ralat yang berbeza. Kelaskan setiap ralat itu.
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 teksp.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 teksp.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
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 teksp.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.
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 teksp.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 teksp.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 teksp.ms. 160
Test specification (JSU)Jadual Spesifikasi Ujian (JSU)
Bab
RememberingMengingat
UnderstandingMemahami
ApplyingMengaplikasi
AnalysingMenganalisis
EvaluatingMenilai
CreatingMencipta
Item
marksmarkah
1. Perwakilan data
1 (1)
–
4 (13)
–
1 (4)
–
6
18
2. Algoritma
1 (1)
–
1 (4)
2 (5)
–
1 (10)
5
20
3. Kod arahan
–
4 (10)
4 (10)
2 (2)
–
1 (10)
11
32
TotalJumlah
2 (2)
4 (10)
9 (27)
4 (7)
1 (4)
2 (20)
22
70
Each cell shows items (marks).Setiap petak menunjukkan item (markah).