LATIHAN 1 1.Isytiharkan tatasusunan untuk setiap yang berikut:a) tatasusunan 30 nombor nyata.
int a[1],b[2],c[6]; c) isytiharkan satu tatasusunan integer 1 demensi bersaiz 12 yang dinamakan ganjil.Umpukan nilai 1,3,5,7,.,23 int ganjil[12]={1,3,5,7,9,11,13,15,17,19,21,23}; d) isytiharkan satu tatasusunan nyata 1 dimensi bersaiz 6 yang dinamakan pemalar.Umpukan nilai berikut kepada nilai tatasusunan tersebut. 0.02,-0.45,5.77,-2.55,7.50,-5 float pemalar[6]={0.02,-0.45,5.77,-2.55,7.50,-5}; 2. int s[5]; output:-
int i=0,j=1; s[0]=8 s[i]=8; s[j]=s[i]+5; s[j+1]=s[i]*s[j]; s[j*3]=s[i*2]; s[j*4]=s[j*2]; LATIHAN 2 1. Perihalkan tatasusunan yang di isytiharkan berikut.Nyatakan nilai yang di umpukan kepada setiap unsure tatasusunan tersebut. a) int abc[6]={0,2,4,6,8,10} s[1]=13 s[2]=104 s[3]=8 s[4]=104
2
0
3
2
4
4
5
6 8 10
<!--[if !vml]--><!--[endif]-->
2.0 0.5 1.2 0.3
<!--[if !mso]--><!--[endif]-->
1
10
2
0 10
3
5
4
0
5
0
6
0
xyz 2. Diberikan segmen aturcara berikut.Apakah nilai unsur tatasusunan di akhir Segmen tersebut:a) M[2]=M[1]*3; M[3]=M[2]*2; M[4]=M[0]*2*3; int M[5]={2,3};
1
9
2
18
3
12
int R[4],i=1;
<!--[if !vml]--><!--[endif]-->
8 <!--[if !mso]--><!--[endif]--> 64 74 320
3. Tuliskan aturcara yang dapat membaca 5 nilai int ke dalam suatu tatasusunan dan kemudian mencari nilai tatasusunan tersebut. #include<stdio.h> Void main() { int P[5]={4,3,2,9,8}; int i;
for(i=0;i<5;i++){ printf(P[%d]=%d\n,i,P[i]); } }
4. Void main() {
#include<stdio.h>
output:-
N[0]=2 N[0]=M[0]; for(i=1;i<6;i++){ N[1]=M[i]+N[i-1]; } for(i=0;i<6;i++){ printf(N[%d]=%d\n,i,N[i]); } } N[1]=7 N[2]=14 N[3]=7 N[4]=2 N[5]=0
1. Apakah yang di maksudkan dengan struktur data ? Struktur data merupakan model metematik atau logik bagi organisasi data tertentu. Data jenis berstruktur iaitu satu struktur yang terdiri daripada gabungan data berjenis lain dan data ini membolehkan operasi yang tertentu dilakukan ke atasnya. Diwakili oleh sesuatu pencam atau nama rujukan ke atas unsur-unsurnya mungkin memerlukan sesuatu kaedah tertentu. Ianya merupakan suatu alat penyelesai masalah yang lebih berkesan. 2. Nyatakan operasi yang boleh dilakukan ke atas struktur data?
a) Penyusunan (traversing) Capai rekod sekurangnya sekali b) Gelintaran (searching) Cari lokasi rekod berpandukan nilai kunci c) Penyisipan (insertion) Tambah rekod ke dalam struktur data d) Penghapusan (deletion) Hapus rekod dari struktur data
Kebaikan tatasusunan ialah: a) Mudah b) Storan digunakan sepenuhnya tanpa ada ruang kosong c) Capaian secara rawak dalam masa yang diperlukan
=22
5. Andaikan Kolej Ibukota Kinabalu menyimpan maklumatnya dalam bentuk tatasusunan satu dimensi bernama TAHUN [1997..2001] dengan TAHUN [K] merujuk kepada bilangan pekerja baru pada tahun K tersebut. Bina algorithma a) Mencetak tahun dengan tiada pekerja baru pada tahun tersebut.
Mula Ulang untuk K=1; Jika tahun [K] ==0; Cetak K; Tamat
b) Mencari bilangan N tahun yang tiada pekerja baru pada tahun tersebut.
Setkan N = 0; Ulang untukk K = 1997 hingga K = 2001; Jika tahun [K]==0; N = N+1; Tamat 6. Sebuah syarikat jual beli perabot menggunakan tatasusunan PERABOT untuk merekodkan bilangan perabot yang dijual pada tahun 2001 daripada bulan Januari hingga bulan Disember. Jika diberi alamat dasar adalah 300 dan bilangan sel ingatan 4, cari lokasi unsure PERABOT [6].
Loc ( PERABOT [6] ); =base + 10 W (K-LB) =300 + (4 (6-1)) =300 + (4(5)) =300 + 20 =320
8. Berpandukan kepada soalan 6, bina algorithma untuk mencari bilangan bulan yang menjual perabot melebihi 50 unit. Gunakan pembolehubah BULAN untuk memegang nilai bulan yang dicari
Mula Setkan Bulan = 0; Ulang unutk K = 1 hingga K= 12; Jika PERABOT [K]>50 Setkan Bulan = Bulan + 1; Tamat
Ulang untuk j = 101 hingga 121 Tulis j, UNIT[j] [akhir ulangan] Tamat
10. Andaikan PEKAN adalah tatasusunan 9 unsur dan hanya mempunyai 7 unsur nama pekan seperti rajah di bawah. Nama-namanya disusun dalam susunan abjad.
1 2 3 4 5 6 7 8 9
Alogoritma Mula Insert (LA, n, k, item) {masukkan item ke dalam kedudukan k dalam LA} set j = n;
{peristiharan pembilang} ulang selagi j >= k {mula pengulangan} set LA [j+1] =LA[j] j = j-1; {kurangkan pembilang} {akhir ulangan} set LA[k] = item {masukkan unsur} set n = n+1 Tamat.
b. Berdasarkan kepada tatasusunan PEKAN yang telah dikemaskini, bina algorithma jika Kota Marudu hendak dikeluarkan daripada tatasusunan PEKAN .
Algoritma Mula Delete (LA, n, k, item) Set item = LA[k] Ulang untuk j = k hingga j = (n-1) Set LA [j] = LA [j+1] {akhir ulangan } set n = n-1 {reset n}
Tamat.
11. Andaikan NOMBOR adalah tatasusunan 10 unsur yang menyimpan nilai seperti berikut :-
20,33,90, 84,56,34,23,57,10,56 a. Isihkan data di atas menggunakan isihan gelembung dan tunjukkan perubahan bagi setiap laluan.
Laluan 1 20<33; tiada perubahan; 33<90; tiada perubahan; 90>84; tukar kedudukan 20 33 84 90 56 34 23 57 10 56
20
33
84
56
34
23
57
10
56
90
Laluan 2 20 20 20 20 20 20 33 33 33 33 33 33 56 56 56 56 56 56 84 34 34 34 34 34 34 84 23 23 23 23 23 23 84 57 57 57 57 57 57 84 10 10 10 10 10 10 84 56 56 56 56 56 56 84 90 90 90 90 90 90
Laluan 3 20 20 20 20 33 33 33 33 34 34 34 34 56 23 23 23 23 56 56 56 57 57 10 10 10 10 57 56 56 56 56 57 84 84 84 84 90 90 90 90
Laluan 4 20 20 33 33 23 23 34 34 56 10 10 56 56 56 57 57 84 84 90 90
Laluan 5 20 33 23 10 34 56 56 57 84 90
Laluan 6 20 33 10 23 34 56 56 57 84 90
Laluan 7 20 10 33 23 34 56 56 57 84 90
Laluan 8 10 10 20 20 33 23 23 33 34 34 56 56 56 56 57 57 84 84 90 90
b. Berdasarkan tatasusunan NOMBOR yang telah diisih, lakukan proses carian menggunakan carian dedua jika item yang hendak dicari ialah 56. Tunjukkan setiap perubahan yang berlaku.
10
20
23
33
34
56
56
57
84
90
Andaikan item = 56 a) mula = 1+1, akhir = 10 ten = (mula + akhir) /2 = (2 +10)/2 =6 data [ten] = 56 data dijumpai.
c.
Berdasarkan tatasusunan NOMBOR yang telah diisih, cari lokasi menggunakan proses carian dedua jika item yang hendak dicari ialah 20. Tunjukkan setiap perubahan yang berlaku.
10
20
23
33
34
56
56
57
84
90
Andaikan item = 20, a) mula = 1+1, akhir = 10 ten = (mula + akhir) /2 = (2 +10)/2 =6 data [ten] = 56 20<56; b) mula = 1-1, akhir = 6 ten = (0 + 6)/2 =3 data [ten] = 23 20<23; c) mula =1-1, akhir = 3 ten = (0 + 3)/2 =1.5 =>2 data [ten] = 20 data dijumpai.
Amali 2
1. Apakah yang dimaksudkan dengan? A) Data B) Entiti -Merupakan unsur dalam senarai -Mengandungi atribut yang diumpukkan nilai Kepadanya samaada numeric atau tidak. C) Atribut D) Item data E) struktur data -Sesuatu yang berkaiatan dengan entity -Unit tunggal sesuatu data -Gabungan data berjenis lain dan data ini dilakukan keatasnya.
a) Penyusunan (traversing) Capai rekod sekurangnya sekali b) Gelintaran (searching) Cari lokasi rekod berpandukan nilai kunci c) Penyisipan (insertion) Tambah rekod ke dalam struktur data d) Penghapusan (deletion) Hapus rekod dari struktur data
3. Apakah yang dimaksudkan dengan algorima serta faktor yang mempengaruhi darjah kekompleksan sesuatu algoritma? Algoritma merupakan senarai langkah-langkah arahan untuk menyelesaikan satu masalah. Faktor yang mempengaruhinya termasuklah: a) Masa Diukur dan diambil dengan mengira kunci operasi contohnya
operasi isihan. b) Ruang kosong Diukur dengan menerima ruang ingatan maksimum yang diperlukan. 4. Fasa pengaturcaraan amat penting, terangkan setiap fasa tersebut? Terdapat tiga fasa utama dalam pengaturcaraan iaitu fasa reka bentuk algoritma yang bermaksud pembinaan pseudokod atau rajah carta alir untuk mencari penyelesaian bagi masalah yang dihadapi. Fasa yang kedua ialah fasa reka bentuk yang digunakan iaitu bagaimana data hendak diwakilkan di dalam aturcara seperti nama pencam,rekod,tatasusunan serta fail yang akan digunakan dalam aturcara tersebut. Fasa yang ketiga pula ialah fasa menulis kod aturcara dalam bahasa pengaturcaraan yang dilaksanakan melalui arahan algoritma yang bersesuaian di dalam reka bentuk algoritma untuk dijalankan pada mana-mana komputer. 5. Nyatakan tentang perbezaan diantara fasa pembangunan sistem perisian dan fasa pengaturcaraan? Perbezaan Fasa pembangunan Sistem Perisian Fasa Pengaturcaraan
Reka bentuk algoritma Reka bentuk perwakilan data yang digunakan Menulis kod dalam bahasa pengaturcaraan
a. b. c. d. e. f. g. h. i.
7. Apakah perbezaan diantara struktur data senarai, senarai berpaut, baris gilir dan timbunan serta tatasusunan? Terdapat beberapa perbezaan diantara struktur data senarai, senarai berpaut, baris gilir dan timbunan serta tatasusunan. Dari segi definisi, senarai merupakan satu istilah yang umum yang ditakrifkan sebagai satu kumpulan item data terhingga yang berjujukan. Senarai berpaut pula bermaksud istilah khusus yang digunakan dalam aturcara dan ditakrifkan sebagai satu kumpulan item data yang berjujukan dengan item datanya mempunyai pautan antara satu sama lain, oleh sebab itu ianya dinamakan sebagai senarai berpaut tetapi tidak pada item data senarai. Baris gilir atau giliran dapat ditakrifkan secara formal sebagai senarai bertertib yang boleh ditambah unsure di satu hujung yang dipanggil belakang dan dikeluarkan item dari hujung yang satu lagi yang dipanggil sebagai hadapan. Manakala timbunan pula membawa maksud satu himpunan item data yang tersusun yang boleh dicapai pada satu hujung sahaja. Sementara tatasusunan pula ialah struktur data yang terdiri daripada item data yang berkaitan daripada jenis yang sama. Tatasusunan juga merupakanstruktur data static. Ini bermakna saiz tatsusunan akan kekal daripada awal diisytiharkan hinggalah akhir pelaksanaan aturcara. 8. Buat perbezaan berserta contoh struktur data dinamik dan statik? Struktur data dinamik merupakan struktur data yang membolehkan kita mengistiharkan saiz ingatan yang diperlukan oleh aturcara semasa pelaksanaan aturcara, contoh bagi struktur data dinamik ialah penuding. Manakala stuktur data statik bermaksud saiz struktur data akan kekal daripada awal diisytiharkan hinggalah akhir pelaksanaan aturcara, contoh bagi stuktur data dinamik termasuklah tatasusunan. 9. Merujuk kepada mana-mana buku, lakarkan perbezaan jenis data diantara data mudah dan data struktur? <!--[if !vml]--><!--[endif]-->
Jenis data
10. Apakah kegunaan stuktur data? Kegunaan struktur data ialah menggabungkan data daripada jenis yang berbeza dan dapat dirujuk dengan nama yang sama.
Amali 3
1. Berikan dan terangkan operasi-operasi umum senarai? a) Cipta senarai kosong, senarai mesti dicipta sebelum digunakan untuk operasi yang lain. b) Tentukan senarai kosong atau tidak, senarai perlu ditentukan kosong atau tidak sebelum proses hapus dilakukan kerana jika senarai kosong operasi hapus tidak dapat dilakukan. c) Jejak senarai, operasi ini dilakukan untuk mencetak setiap item data yang ada dalam senarai. d) Selit item baru, operasi ini menambah item baru dalam senarai dan melibatkan anjakan item dalam senarai jika turutan terisi hendak dikekalkan. e) Hapus item,
2. Apakah yang dimaksudkan dengan senarai dan senarai berpaut? Senarai merupakan satu istilah yang umum yang ditakrifkan sebagai satu kumpulan item data terhingga yang berjujukan. Senarai berpaut pula bermaksud istilah khusus yang digunakan dalam aturcara dan ditakrifkan sebagai satu kumpulan item data yang berjujukan dengan item datanya mempunyai pautan antara satu sama lain, oleh sebab itu ianya dinamakan sebagai senarai berpaut tetapi tidak pada item data senarai. 3. Bina satu pernyataan dalam C++ untuk bina senarai berpaut? Typedef char UNSUR; Typedef struct nod { UNSUR data; Struct nod *next; } NOD; 4. Nyatakan perbezaan diantara senarai dan tatasusunan. Item data dalam senarai tidak terpaut antara satu sama lain tetapi tersusun rapi. Item data dalam tatasusunan berpaut atau berkaitan daripada jenis yang sama. 5. Apakah fungsi malloc? Berfungsi untuk menerima satu argument dan mengembalikan satu nilai. Argumen yang diterima ialah saiz memori yang diperlukan dan nilai yang dikembalikan ialah alamat bebas dalam memori yang diperolehi dan alamat tersebut boleh diumpukkan kepada pembolehubah penuding P. 6. Apakah fungsi free? Fungsi ini akan membebaskan ingatan yang telah diperuntukkan oleh malloc. 7. Apakah perbezaan diantara tindanan dan baris gilir? Tindanan merupakan satu himpunan item data yang tersusun yang boleh dicapai pada satu hujung manakala baris gilir merupakan senarai bertertib yang boleh ditambah unsur di satu hujung belakang dan mengeluarkan dan mengeluarkan item dari hujung yang dipanggil hadapan.
Amali 4
1. Diberi pengisytiharan seperti berikut:
Char alamat[]=Kolej Ibukota Kinabalu.Apakah output yang akan dikeluarkan apabila pernyataan berikut dilakukan; Printf(%c%c%c(%s),alamat[0],alamat[11],alamat[17],alamat);
Output: K t a 2. Isytiharkan satu tatasusunan 2 dimensi berjenis integer bagi menyimpan data dari satu jadual yang mengandungi 3 baris dan 2 lajur. Int jadual [3][2]; 3. Andaikan sebuah syarikat menyimpan maklumatnya dalam tatasusunan satu dimensi bernama TAHUN[1960-1980] dengan TAHUN[K] merujuk kepada bilangan pekerja yang dilahirkan pada tahun K tersebut. Tuliskan algoritma bagi setiap kes berikut:
a) Mencetak tahun dengan tiada pekerja yang dilahirkan pada tahun tersebut. Cetak tahun tiada pekerja yang dilahirkan pada tahun tersebut. Mula Ulang untuk K=1; Jika tahun [K] ==0; Cetak K; Tamat b) Mencari bilangan N tahun dengan tiada pekerja yang dilahirkan pada tahun tersebut.
Setkan N = 0;
Ulang untuk K = 1997 hingga K = 2001; Jika tahun [K]==0; N = N+1; Tamat 4. Nyatakan kebaikan-kebaikan tatasusunan. Antara kebaikan tatasusunan termasuklah: a) Mudah. b) Storan digunakan sepenuhnya tidak ada ruang. c) Capaian secara rawak dalam masa yang diperuntukkan. 6. Andaikan PEKAN adalah tatasusunan 9 unsur dan hanya mempunyai 7 unsur nama pekan seperti rajah berikut.Nama-namanya disusun dalam susunan abjad.
1 2 3 4 5 6 7 8 9
1. [Pengisytiharan pembilang] Setkan j := n 2. Ulang langkah 3 dan 4 Selagi j k 3. [Pindahkan unsure ke-j ke bawah] Set LA[j+1] := LA [j] 4. [Kurangkan pembilang] j:= j-1 [Akhir Ulangan] 5. [Masukkan unsur] Setkan LA[k] := item 6. [Reset N] Setkan n := n+1 7. Tamat b. Berdasarkan kepada tatasusunan PEKAN yang telah dikemaskini,bina algoritma jika Kota Marudu hendak dikeluarkan daripada tatasusunan PEKAN. Algoritma DELETE (Linear Array(LA),n,k,item)
2. Ulang untuk j = k hingga (n-1) [Anjakkan unsur ke-(j+1) ke atas] Setkan LA [j] := LA[j+1] [Akhir ulangan] 3. [Reset n] Setkan n := n-1 4. Tamat
Amali 5
1.Diberi pengisytiharan seperti berikut:-
Int nombor [2][3]={{1,2,3},{4,5,6}}; Apakah output yang akan dihasilkan apabila jujukan kenyataan berikut dilakukan? Printf(%d\n%d\n%d,nombor[1][1],nombor[1][2],nombor[0][1]; Output:5 6 2
i.
Jawapan: Empat
ii.
Kelebihan tatasusunan: a) Mudah. b) Storan digunakan sepenuhnya tidak ada ruang. c) Capaian secara rawak dalam masa yang diperuntukkan.
Kelebihan senarai berpaut: a) Boleh digunakan apabila bilangan elemen data yang diwakili dalam struktur data tidak tetap kerana bersifat dinamik.
4. Diberi rajah berikut: <!--[if !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]--><!--[if !vml]--><!--[endif]--><!--[if next !vml]-Kepala next next ><!--[endif]--> data data data
<!--[if !mso]--><!--[endif]-->
Berdasarkan rajah di atas,berikan takrifan struktur yang bersesuaian bagi senarai berpaut tersebut. Takrifan struktur di atas ialah mencipta nod baru dalam senarai berpaut. 5. Terdapat sebuah syarikat perhotelan yang menyimpan bilangan pelanggan yang menempah hotel tersebut bagi setiap hari dari hari Ahad hingga Sabtu.Maklumat pelanggan tersebut disimpan di dalam satu tatasusunan MAKL yang bersaiz 7.Cari lokasi loc bagi MAKL[6] jika alamat dasar adalah 300 dan bilangan perkataan/sel ingatan adalah 4.
ROW
Loc MAKL[6,1] = 300 + 4[3(6-1) + (1-1)] = 300 + 4 [30] = 300 + 120 = 320
COLUMN
6. Berdasarkan soalan no.5,terdapat satu lagi tatasusunan MINGGU tetapi berjenis dua dimensi dengan saiznya 4x7 yang menyimpan hari bagi setiap minggu dalam satu bulan.Data disimpan mengikut susunan lajur demi lajur.Cari lokasi loc bagi MINGGU [3][5] jika alamat dasar ialah 200 dan bilangan perkataan/sel ingatan adalah 4.
ROW
Loc (MINGGU[3][5]) = 200 + 4[7(3-1) + (5-1)] = 200 + 4 [42] = 200 + 168 = 368
COLUMN
Loc (MINGGU [3][5]) = 200 + 4[4(5-1) + (3-1)] = 200 + 4 [24] = 200 + 96 = 296
Dan data disimpan seperti berikut: 2.30 2.75 3.20 1.75 4.55 0.99 5.45 7.85 6.35 4.20 2.10 3.15
Berdasarkan kepada cara data disimpan,berikan nilai bagi : i. ii. iii. iv. Harga[0][0] = 2.30 Harga[2][3] = 3.15 Harga[1][3] = 2.10 Harga[2][1] = 0.99