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/
No comments:
Post a Comment