UNWERSITI
SAINSMALAYSIA
Peperiksaan Semester Kedua Sidang Akademik l996l 1997
April
1997CSM101 - Prinsip-Prinsip Pengaturcaraan CSC101 - Prinsip-Prinsip Sains Komputer
Masa:
[2jam]
ARAHAN KEPADA CALON:
. Sila
pastikan bahawa kertas peperiksagnini
mengand-uggi DUA.soalan.di
dalamTUJiiH
muka surar yang berCetak sebelum anda memulakan peperiksaanini.
Bagi soalan yang melibatkan bahasa pengaturcaraan, bahasa rujukan adalah bahasa pengaturcaraan C.
Jawab
SEMUA
soalan dalam Bahasa Malaysia.P3
...21-_ 2
_ [csMl01/csc1o1]
l. (a)
Nyatakan sama ada kenyataan-kenyataan berikutBENAR
atauPALSU.
(i) Unit
kawalan adalah salah satu komponenUnit
Pemprosesan Pusat dan fungsi utamanya adalah menyelaras semua fungsi komputer dan mengawal operasi perkakasan(ii) Ingatan Capaian Rawak (RAM) adalah sejenis ingatan kekal
yang digunakan untuk menyimpan atur cara dan data pengguna.(iii)
Terdapat duajenis
data asas yang boleh digunakan dalam pengaturcaraan iaituint
dan ctrar.(iv) Jika
salahsatu
operasi (operand)dalam
ungkapanaritmetik
adalah berjenis integer, hasil daripada pelaksanaan ungkapan tersebutjuga
akan berjenis integer.(v)
Badan bagi gelungwhile
mestilah menyebabkan syarat ulangan gelung meniadi palsu untuk menghalang gelung tersebut menjadi tak terhingga.(vi)
Fungsi malematik ceil(3.5) akan memulangkannilai
3.(vii)
Keratan aturcara ini
akan memberikan hasili
sebagai 5 selepas keratan atur cara dilaksanakan;l=3;
J=lO:
tf (3 |
0 <J ),
=,
*L,=t
*'t
(viii)
Arahan s= getchar0,
akan membaca satu aksara dariinput piawai
dan menyalin nilainya ke c.(ix) Jika
sesuatufungsi yang dipanggil tidak memulanglsn nilai (uoid),
fungsi tersebut tid-ak boleh menerima sebarang parameter dari fungsi yang memanggilnya.
(x) Kenyataan return perlu diletak di dalam setiap
badanfungs!
tanpa mengira sama ada fungsi tersebut akan memulangkannilai
atau tidak.t30/1001
(b) Kaii
algoritma yang diberikan di bawah:l.
Awalkan nilai A kepada 52.
Ulang dua langkah berikut:2.1
laporkanA
2-2
tambahkan 5 kepada nilai semasaA
3.
Berhenti(i)
Apakah sifat/keperluan algoritma yangtidak
dipenuhi olehalgoritma di
atas?
(iD Betulkan algoritma di
atas supayaia
dapatmemenuhi
sifat/keperluan algoritma.trs/1001
24
"'3t-
lcsM 10l/cscl0ll -3-
(c)
Bangunkan satu pseudokod untuk membaca satu siri nombor-nomborpositif
(satu demisatu)
dan tentukan:.
bilangan nombor Yang dibaca.
dan nombor terbesar Yang dibacasehingga nombor 0 dibaca. seterusnya laporkan semua hasil pengiraan'
t20l1001
(d)
Anda diberi pengisytiharan pemboleh ubah seperti berikut :lnt
l=8, J=5iChef
C='C', d ='d':Apakah yang akan dihasilkan oleh setiap ungkapan aritmetik berikut?
(i) (3*i-2*j)Vo2
(iil ++i
-i--
(iii)
c > d(iv) (i>0)&&C<5)
(v)
-(i
+j)
tls/lool
(e)
Diberi satu keratan atur cara seperti berikut:for
(1 =l;
I <= 6;t++){
o
tt*"?o*o",
elsc
sdntf
(,,o,6d\n,,, i):Prtntil"bottom
of looP\n"):)
(i)
Jeiaki operasi gelungfor
di atas, dan nyatakan output yang akan dicetak'(ii) Tulis kembali keratan atur cara di
atas dengan menggunakan gelungwhile.
t20l1001
25 ...4t-
lcsMlOl/cscl0ll -4-
2. (a) Huraikan
secararingkas
apakahyang
dimaksudkan dengan pengaturcaraan bermodul dan senaraikan3
kebaikannya dalam proses pembanguhan atur cara.tls/1001
(b)
Apakah yang dimaksudkan oleh setiap istilahberikut?
Beri contoh dalam bentuk kod atur cara yang sesuaiuntuk
menerangkan tujuan setiapsatu
dalam proses pembangunan atur cara.(i)
Definisi fungsi(ii)
Panggilan fungsi[20l100]
(c) Atur
caradi
bawahmenunjukkan
satufungsi main memanggil satu
fungsi hernamatwice:
#lnclude
<stdto.h>metn0
{
lnt
x=61prlntll"d\n".
twtce {x)+ l):
prlnt("96d\n",
twtce(x+ I )):l
lnt
hrrtce(lnt
x){ *
t=2:rcturn k);
l
(i) Tulis
prototaip fungsi untuk ttvice.(ii)
Berikan output yang akan dicetak oleh atur cara di atas.tls/r0ol
(d) Fungsi faktorial boleh
dibangunkan dengan menggunakanrekursi. Definisi
fungsi bagi faktorial dikodkan seperti berikut:
lnt faktortal (lnt
n){ t"trrrr, (n' faktorlal (n-l));
)
Fungsi faktorial di atas akan menyebabkan gelung yang tak
terh_inggadisebabkan ketidakwujudan
kenyataankes
asas (basecase) dalam fqngsi
tersebut.
Tulis
kembali-definisi fungsi faktorial di
atas dengan memasukkan kes asas.tl5/1001
2E
...5t-
lcsMl0l/csc101l -5-
(e)
Diberi satu masalah seperti berikut:Meneira eaii ka.sar pekeria bagi sebuah firma yang mempunyai 100 orang PekqtJl
"iJi?""'iiE?iriiiilCiriipit "tji
dibayar setiapmiiggu
hirgantung kepada jumlahiu111 Ueterla
*t"irggir' ,i* tq{f;
gajifjqn
bagi setlap,pekerja4i.ry*3
gaji.kasar=lr*r"r,i". ;tid; gaii. iiioiuinluL juto {:\:r:.rl6bih
dari40, jumlah j1m
vdnir"Uifr-auti lO
utali"meneri"makadir gaji
11i2 (satu setengah)dari
kadar biasa.Rangka bagi atur cara tersebut adalah seperti.di muka surat sebelah (muka surat O),
"iAu aiiefrenOaii-enambahkan kod-tod
atur caradi
bahagian-baha8"iandi Oiifu* iotak
yang bernombor uqtuJ< melengkapkan atur cara tersebut. Seqiap to11rn(lt ted
Ai"Oalamini*/)
pada baris ataJtoiat< menerangkansecarlril8kas
apu
y*g perlu
ditambah pada setiap ruang kosong dalam atur cara tersebut.Spesifikasi bagi setiap fungsi dalam atur cara tersebut adalah seperti berikut:
. Fungsi pertama iaitu main. Fungsi ini.akan.menerima inPll!
nomborp"t"?Ju,
kuOr g"ii..iu*
dan jumlahJam bekerja dari penggun_a. J_ika jumlahjam bekerja <t- 40, fungsi ini akan memanggil tungst f"drlu
Dernama'C"ii_Ui"r,i
dan mengfraniarnilai
ka-dggaji
seiam.dan iumlah ja.m,!9k9rjai;ila; fr;eii
eaj i-Eiasa.-Jika iumlah.fam bekerja t i0, flle-tJ-T1
"kun memanggri"frrE;l fetiga
bernainagaji-lebih.-ttl*"
dan menghantar dua nilai yang sama seperti yang dihantar ke lungst f99ua.fi;gii i;i iemudfon aian itencetak iumlali
gaji kasar yang diperolehi oleh grekerja berkenaan..
Fungsi kedua bernamagaji-biasa.
Fu.ngsiini
akan menerima duanilai
dari iung"simain
sepertiyan!
OiseUutkan di atas dan mengira gajikutT
_ ., sem"inggu. Fungsi
irii
alian memulangkan jumlah gajf kasar yang diperolehi kepadafungsi main.
.
Fungsi ketiga bernamagaji-lebih-mgs.a. {ungsi ini juga
akan menerima dua-nilaidii funesi maln
sepertidi
dalam fungsi kedua danmengi{l
ga:ttesena ga:i lebih
fiasa,
Funggiinijuga
akan memulangkan jumlah gaji kasar yang diperolehi kepada fungsimain.
(Anda tidak perlu menyalin keseluruhan atur cara ke dalam luJru
j1rynan.
Anda hunyuperlu'menulis liod-kod
arahanY{rg diperlY.k* ke d{am.
buku jawapan supayaatur cara tersebut dapat dilaksanakan mengikut spesifikasi atur cara yang diberikan di atas)2:l ...6t-
/* Atur
cara untuk mengiragaji
kasar seminggu bagi pekerja-pekerja di SyarikatXYZ*I
#include
<stdio.h>main0
int
t no_pekerja,jumjam
;float kadargaji,
gaji_kasar;ctrar ulang;
/*
Tuliskan protaip fungsi bagi 2 fungsi yang akan dipanggil oleh fungsi main*/ulang
='Y';
while (ulang =-'Y')
printf("\nSila
{ masukkan nombor pekerja : ");scan f( " 7o d
",&no-pekerj
a) ;prinf("\nSila
masukkan kadar gaii seiam:");
scanf( " 7of
',&kadar-gaji)
;prinf("\nSila
masukkan jumlahjam
bekeria seminggu :");
scanf( " 7od",&j um-i am ) ;
/*Tuliskan
stnrktur pilihan untuk memanggil 2fungsi
bergantung kepada jumlahjam. */
printf("\n7od mendapat gaji kasar sebanyak
%, 5 .2f ',no
-pekerj a, gaj
ijasar)
;prinf("\nAdakah
anda ingin mengira gaji pekeria lain(YffX:
");scanf("7oc",&ulang);
)/*akhir while*/
|/*akhir main*/
/*Sambungan atur cara di muka sebelah*/
-6- lcsMlol/csc10u
28
...7l-
lcsM10l/cscl0ll -7
-/*Tuliskan
definisi fungsi untuk mengira gaji kasar bagi jumlah jam <= 40*l
/*Tuliskan
definisi fungsi untuk mengira gaji kasar bagi jumlah jam>40*/
lv
t3s/1001 - ooooooo -
29