• Tidak ada hasil yang ditemukan

CSM 101 - PRINSIP-PRINSIP PENGATURCARAAN - CSC 101 - PRINSIP-PRINSIP SAINS KOMPUTER APRIL 1997.

N/A
N/A
Protected

Academic year: 2024

Membagikan "CSM 101 - PRINSIP-PRINSIP PENGATURCARAAN - CSC 101 - PRINSIP-PRINSIP SAINS KOMPUTER APRIL 1997."

Copied!
7
0
0

Teks penuh

(1)

UNWERSITI

SAINS

MALAYSIA

Peperiksaan Semester Kedua Sidang Akademik l996l 1997

April

1997

CSM101 - Prinsip-Prinsip Pengaturcaraan CSC101 - Prinsip-Prinsip Sains Komputer

Masa:

[2jam]

ARAHAN KEPADA CALON:

. Sila

pastikan bahawa kertas peperiksagn

ini

mengand-uggi DUA.soalan.

di

dalam

TUJiiH

muka surar yang berCetak sebelum anda memulakan peperiksaan

ini.

Bagi soalan yang melibatkan bahasa pengaturcaraan, bahasa rujukan adalah bahasa pengaturcaraan C.

Jawab

SEMUA

soalan dalam Bahasa Malaysia.

P3

...21-
(2)

_ 2

_ [csMl01/csc1o1]

l. (a)

Nyatakan sama ada kenyataan-kenyataan berikut

BENAR

atau

PALSU.

(i) Unit

kawalan adalah salah satu komponen

Unit

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 dua

jenis

data asas yang boleh digunakan dalam pengaturcaraan iaitu

int

dan ctrar.

(iv) Jika

salah

satu

operasi (operand)

dalam

ungkapan

aritmetik

adalah berjenis integer, hasil daripada pelaksanaan ungkapan tersebut

juga

akan berjenis integer.

(v)

Badan bagi gelung

while

mestilah menyebabkan syarat ulangan gelung meniadi palsu untuk menghalang gelung tersebut menjadi tak terhingga.

(vi)

Fungsi malematik ceil(3.5) akan memulangkan

nilai

3.

(vii)

Keratan atur

cara ini

akan memberikan hasil

i

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 dari

input piawai

dan menyalin nilainya ke c.

(ix) Jika

sesuatu

fungsi 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

badan

fungs!

tanpa mengira sama ada fungsi tersebut akan memulangkan

nilai

atau tidak.

t30/1001

(b) Kaii

algoritma yang diberikan di bawah:

l.

Awalkan nilai A kepada 5

2.

Ulang dua langkah berikut:

2.1

laporkan

A

2-2

tambahkan 5 kepada nilai semasa

A

3.

Berhenti

(i)

Apakah sifat/keperluan algoritma yang

tidak

dipenuhi oleh

algoritma di

atas?

(iD Betulkan algoritma di

atas supaya

ia

dapat

memenuhi

sifat/keperluan algoritma.

trs/1001

24

"'3t-

(3)

lcsM 10l/cscl0ll -3-

(c)

Bangunkan satu pseudokod untuk membaca satu siri nombor-nombor

positif

(satu demi

satu)

dan tentukan:

.

bilangan nombor Yang dibaca

.

dan nombor terbesar Yang dibaca

sehingga nombor 0 dibaca. seterusnya laporkan semua hasil pengiraan'

t20l1001

(d)

Anda diberi pengisytiharan pemboleh ubah seperti berikut :

lnt

l=8, J=5i

Chef

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 gelung

for

di atas, dan nyatakan output yang akan dicetak'

(ii) Tulis kembali keratan atur cara di

atas dengan menggunakan gelung

while.

t20l1001

25 ...4t-

(4)

lcsMlOl/cscl0ll -4-

2. (a) Huraikan

secara

ringkas

apakah

yang

dimaksudkan dengan pengaturcaraan bermodul dan senaraikan

3

kebaikannya dalam proses pembanguhan atur cara.

tls/1001

(b)

Apakah yang dimaksudkan oleh setiap istilah

berikut?

Beri contoh dalam bentuk kod atur cara yang sesuai

untuk

menerangkan tujuan setiap

satu

dalam proses pembangunan atur cara.

(i)

Definisi fungsi

(ii)

Panggilan fungsi

[20l100]

(c) Atur

cara

di

bawah

menunjukkan

satu

fungsi main memanggil satu

fungsi hernama

twice:

#lnclude

<stdto.h>

metn0

{

lnt

x=61

prlntll"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 menggunakan

rekursi. 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_ingga

disebabkan ketidakwujudan

kenyataan

kes

asas (base

case) dalam fqngsi

tersebut.

Tulis

kembali-

definisi fungsi faktorial di

atas dengan memasukkan kes asas.

tl5/1001

2E

...5t-

(5)

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 setiap

miiggu

hirgantung kepada jumlah

iu111 Ueterla

*t"irggir' ,i* tq{f;

gaji

fjqn

bagi setlap,pekerja

4i.ry*3

gaji.kasar

=lr*r"r,i". ;tid; gaii. iiioiuinluL juto {:\:r:.rl6bih

dari

40, jumlah j1m

vdnir"Uifr-auti lO

utali"meneri"ma

kadir 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 cara

di

bahagian-baha8"ian

di Oiifu* iotak

yang bernombor uqtuJ< melengkapkan atur cara tersebut. Seqiap to11rn

(lt ted

Ai"Oalam

ini*/)

pada baris ataJtoiat< menerangkan

secarlril8kas

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!

nombor

p"t"?Ju,

kuOr g"ii..iu*

dan jumlahJam bekerja dari penggun_a. J_ika jumlah

jam bekerja <t- 40, fungsi ini akan memanggil tungst f"drlu

Dernama

'C"ii_Ui"r,i

dan mengfraniar

nilai

ka-dg

gaji

seiam.dan iumlah ja.m,!9k9rja

i;ila; fr;eii

eaj i-Eiasa.-

Jika iumlah.fam bekerja t i0, flle-tJ-T1

"kun memanggri"frrE;l fetiga

bernaina

gaji-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 bernama

gaji-biasa.

Fu.ngsi

ini

akan menerima dua

nilai

dari iung"si

main

seperti

yan!

OiseUutkan di atas dan mengira gaji

kutT

_ ., sem"inggu. Fungsi

irii

alian memulangkan jumlah gajf kasar yang diperolehi kepada

fungsi main.

.

Fungsi ketiga bernama

gaji-lebih-mgs.a. {ungsi ini juga

akan menerima dua-nilai

dii funesi maln

seperti

di

dalam fungsi kedua dan

mengi{l

ga:t

tesena ga:i lebih

fiasa,

Funggi

inijuga

akan memulangkan jumlah gaji kasar yang diperolehi kepada fungsi

main.

(Anda tidak perlu menyalin keseluruhan atur cara ke dalam luJru

j1rynan.

Anda hunyu

perlu'menulis liod-kod

arahan

Y{rg diperlY.k* ke d{am.

buku jawapan supayaatur cara tersebut dapat dilaksanakan mengikut spesifikasi atur cara yang diberikan di atas)

2:l ...6t-

(6)

/* Atur

cara untuk mengira

gaji

kasar seminggu bagi pekerja-pekerja di Syarikat

XYZ*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 jumlah

jam

bekeria seminggu :

");

scanf( " 7od",&j um-i am ) ;

/*Tuliskan

stnrktur pilihan untuk memanggil 2

fungsi

bergantung kepada jumlah

jam. */

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

...7

l-

(7)

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

Referensi

Dokumen terkait