Blog ini mengandungi koleksi assignment penulis semasa menuntut di sebuah Pusat Pengajian Tinggi, walaubagaimanapun penulis tidak bertanggungjawab terhadap mutu tugasan dan ketepatan fakta yang terdapat di dalamnya. Pengunjung haruslah membuat pertimbangan sendiri...
Himpunan tugasan/assignment akan diupdate dari masa kesemasa... rajin-rajinlah menjengah.... tq

Saturday, August 8, 2009

Tugasan Struktur Data

Soalan 1

Berikut adalah 40-unsur yang mewakili maklum balas daripada pelajar.

2 3 7 5 6 10 8 9 11 2
7 4 9 7 11 4 9 3 8 7
6 8 7 9 7 8 6 7 7 6
6 7 8 6 7 5 9 7 9 11

Anda dikehendaki menulis aturcara C yang dapat melakukan perkara berikut:

(a) Mencetak bilangan kejadian bagi setiap maklum balas. Data pada output
anda mestilah dilabel supaya lebih mudah difahami oleh pembaca.

b) Mengira dan memaparkan purata bilangan kejadian.


Soalan 3

(a) Tuliskan fungsi asas bagi Cipta Giliran, Giliran Kosong, Masukkan Item dalam Giliran, Keluarkan Item dari Giliran dalam bahasa C.

(b) Dengan menggunakan mana-mana fungsi asas yang sesuai dari Soalan 3(a), tuliskan satu aturcara C yang dapat memasukkan satu siri aksara U, V, W, X, Y ke dalam Giliran g dan kemudian mencetak semula kandungan dalam Giliran g
Jawapan Soalan 1

#include
#include
#include


main()

{
int kejadian[4][10]={{2,3,7,5,6,10,8,9,11,2},
{7,4,9,7,11,4,9,3,8,7},
{6,8,7,9,7,8,6,7,7,6},
{6,7,8,6,7,5,9,7,9,11}};
int i,j;
int dua=0,tiga=0,empat=0,lima=0,enam=0,tujuh=0,lapan=0,sem=0,sep=0,seb=0;
int jum2=0, jum3=0,jum4=0,jum5=0,jum6=0 ,jum7=0,jum8=0,jum9=0,jum10=0, jum11=0;


clrscr();
for (i=0;i<4;i++){
/* printf("\n"); */
for (j=0;j<10;j++)
/*printf("%d",(kejadian[i][j]));*/

if (kejadian[i][j]==2){
jum2=jum2+ (kejadian[i][j]);
dua++;
}
else if (kejadian[i][j]==3){
jum3=jum3+kejadian[i][j];
tiga++;
}
else if (kejadian [i][j]==4){
jum4=jum4+kejadian[i][j];
empat++;
}
else if (kejadian[i][j]==5){
jum5=jum5+kejadian[i][j];
lima++;
}
else if (kejadian[i][j]==6){
jum6=jum6+kejadian[i][j];
enam++;
}
else if (kejadian[i][j]==7){
jum7=jum7+kejadian[i][j];
tujuh++;
}
else if (kejadian[i][j]==8){
jum8=jum8+kejadian[i][j];
lapan++;
}
else if (kejadian[i][j]==9){
jum9=jum9+kejadian[i][j];
sem++;
}
else if (kejadian[i][j]==10){
jum10=jum10+kejadian[i][j];
sep++;
}
else {
jum11=jum11+kejadian[i][j];
seb++;
}

}
printf("Bilangan kejadian 2 ialah: %d\tPurata kejadian 2 ialah : %d\n\n",dua,jum2/dua);
printf("Bilangan kejadian 3 ialah: %d\tPurata kejadian 3 ialah : %d\n\n",tiga,jum3/tiga);
printf("Bilangan kejadian 4 ialah: %d\tPurata kejadian 4 ialah : %d\n\n",empat,jum4/empat);
printf("Bilangan kejadian 5 ialah: %d\tPurata kejadian 5 ialah : %d\n\n",lima,jum5/lima);
printf("Bilangan kejadian 6 ialah: %d\tPurata kejadian 6 ialah : %d\n\n",enam,jum6/enam);
printf("Bilangan kejadian 7 ialah: %d\tPurata kejadian 7 ialah : %d\n\n",tujuh,jum7/tujuh);
printf("Bilangan kejadian 8 ialah: %d\tPurata kejadian 8 ialah : %d\n\n",lapan,jum8/lapan);
printf("Bilangan kejadian 9 ialah: %d\tPurata kejadian 9 ialah : %d\n\n",sem,jum9/sem);
printf("Bilangan kejadian 10 ialah: %d\tPurata kejadian 10 ialah : %d\n\n",sep,jum10/sep);
printf("Bilangan kejadian 11 ialah: %d\tPurata kejadian 11 ialah : %d\n\n",seb,jum11/seb);

getch();
}_

Jawapan Soalan 3


#include
#include
#include
#define HadGiliran 10

typedef enum BOOL {FALSE,TRUE}BOOL;
typedef char JENISUNSUR;
typedef struct giliran
{
int hadapan;
int belakang;
JENISUNSUR unsur [HadGiliran];
} GILIRAN;

void CiptaGilir (GILIRAN *g);
BOOL GilirKosong (GILIRAN *g);
BOOL GilirPenuh (GILIRAN *g);
void MasukGilir (char item, GILIRAN *g);
void KeluarGilir (char *item,GILIRAN *g);

main()

{

GILIRAN GiliranQ;
int i;
char unsurdata;

CiptaGilir (&GiliranQ); /* CIPTA GILIRAN */

clrscr();
printf("Masukkan aksara dalam giliran:\n");
for (i=1;i {
scanf("%c",&unsurdata);
MasukGilir(unsurdata,&GiliranQ); /* MASUK AKSARA DALAM GILIRAN */
}
printf("Kandungan dalam giliran ialah:\n");
for (i=1;i {
KeluarGilir (&unsurdata,&GiliranQ);
printf("%c",unsurdata); /* MENCETAK GILIRAN */
}
getch();
}

void CiptaGilir(GILIRAN *g)
{
g->hadapan = 0;
g->belakang = 0;
}

BOOL GilirKosong (GILIRAN *g)
{
return ((BOOL) (g->hadapan == g->belakang));
}

BOOL GilirPenuh (GILIRAN *g)
{
return ((BOOL) ((g->belakang+1) % HadGiliran) == g->hadapan);
}

void MasukGilir (JENISUNSUR item, GILIRAN *g)
{
if (GilirPenuh(g))
printf("RALAT : GILIRAN PENUH\n");
else
{
g->unsur[g->belakang]=item;
g->belakang = (g->belakang + 1) % HadGiliran;
}

}

void KeluarGilir (JENISUNSUR *item,GILIRAN *g)
{
int i;
if (GilirKosong(g))
printf("RALAT : GILIRAN KOSONG \n");
else
{
*item=g->unsur [g->hadapan];
g->hadapan=(g->hadapan + 1) % HadGiliran;
}


}
Rujukan

MALAYSIA, Open University. (2004). CBCP2103 Pengaturcaraan Komputer. Kuala Lumpur: UNITEM Sdn. Bhd

MALAYSIA, Open University. (2005). CBDS2103 Struktur Data. Kuala Lumpur: UNITEM Sdn. Bhd.

http://www.users.powernet.co.uk/efon/kadr2/

Sila Klik Jika Ingin Bantu