1 / 24

BAB 8: TATASUSUNAN

BAB 8: TATASUSUNAN. Untuk menyimpan 4 nilai markah pelajar  perlu 4 pembolehubah Contoh int mark1, mark2, mark3, mark4; Bagaimana jika terdapat 10, 50 atau 100 markah? Bg memudahkan  guna tatasusunan. TATASUSUNAN. Satu struktur data mudah yg digunakan utk

keitaro-rin
Télécharger la présentation

BAB 8: TATASUSUNAN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BAB 8: TATASUSUNAN

  2. Untuk menyimpan 4 nilai markah pelajar  perlu 4 pembolehubah • Contoh int mark1, mark2, mark3, mark4; • Bagaimana jika terdapat 10, 50 atau 100 markah? • Bg memudahkan  guna tatasusunan.

  3. TATASUSUNAN • Satu struktur data mudah yg digunakan utk • Menyimpan sekumpulan data yang terdiri dpd jenis yang sama • Menggunakan satu pembolehubah sahaja utk dirujuk

  4. Mengistihar Tatasusunan • Format • Jenis_data nama_tts[saiz elemen]; • int mark[4]; • Contoh: • Boleh melakukan umpukan nilai semasa pengitiharan • Jenis_data nama_tts[saiz elemen]={senarai data}; • Contoh • int mark[4] = {50, 40, 25, 30}; • int mark[ ] = {50, 40, 25, 30}; [0] [1] [2][3]

  5. Merujuk Tatasusunan 50 40 25 30 [0] [1] [2][3] mark • Struktur yg terhasil • Kumpulan data dirujuk dengan menggunakan nama pembolehubah dan setiap item/elemen dalam kumpulan tersebut dirujuk melalui subskrip indek. mark[0] mark[1] mark[2] mark[3] • Cth : printf(“markah = %d”, mark[2]); subskrip Rujuk item pertama Rujuk item kedua Rujuk item ketiga Rujuk item keempat

  6. Penggunaan Tatasusunan • Cth: float y[8]={7.7,5.6,4.1,2.5,1.0,7.7,18.7,9.9} katakan di beri a=1,b=2 maka => y[a] merujuk kepada y[a+b] merujuk kepada y[b-a] merujuk kepada

  7. Menggunakan pernyataan umpukan: • utk mengumpukkan nilai kepada unsur-unsur yg dirujuk • cth: • y[3]=5.0; • y[b*a] = 10.5; • mengumpukkan unsur yg dirujuk kepada pembolehubah lain, katakan x dan z • cth: • x=y[b] • z=y[1]+y[3]; • Menggunakan dlm pengujian • cth: • if (y[2] >10) printf(“lebih besar”);

  8. contoh menggunakan cara biasa: /* untuk mengira jumlah pelajar UTM bagi setiap tahun pengajian sessi 97/98*/ int jumlah; int tahun1, tahun2, tahun3, tahun4, tahun5; printf(“masukkan jumlah pelajar tahun 1\n”); scanf(“%d”, &tahun1); printf(“masukkan jumlah pelajar tahun 2\n”); scanf(“%d”, &tahun2); printf(“masukkan jumlah pelajar tahun 3\n”); scanf(“%d”, &tahun3); printf(“masukkan jumlah pelajar tahun 4\n”); scanf(“%d”, &tahun4); printf(“masukkan jumlah pelajar tahun 5\n”); scanf(“%d”, &tahun5); jumlah = tahun1 + tahun2 + tahun3 + tahun4 +tahun5;

  9. Menggunakan Tatasusunan • int tahun[5]; • int jumlah =0; • for(i=0; i<5; i++) • { printf(“masukkan jumlah pelajar tahun %d”, i); • scanf(“%d”, &tahun[i]; • jumlah =+ tahun[i]; • }

  10. Menghantar tatasusunan kpd fungsi • 2 cara:- • Menghantar kesemua elemen tatasusunan • Menghantar individu elemen tatasusunan • Penghantara individu elemen tatasusunan • Terbahagi 2 • Penghantaran nilai sebenar • Penghantaran alamat nilai

  11. Menghantar individu elemen tatasusunan • Penghantaran nilai sebenar void main ( ) { Int mark[5]; : Nilai =Beza(mark[0], mark[1]); //pemanggil fungsi } int Beza (int a, int b) //takrifan fungsi { /* badan fungsi */ }

  12. Menghantar individu elemen tatasusunan • Penghantaran alamat nilai • void main ( ) { • int mark[5]; • : • Beza(&nilai, &mark[0], &mark[1]); //pemanggil fungsi • } • void Beza(int *n, int *a, int *b) //takrifan fungsi • { • /* badan fungsi *? • }

  13. Menghantar kesemua elemen tatasusunan • Jenis penghantaran alamat nilai • contoh void main ( ) { Int mark[5]; : KiraJumlah(mark); //pemanggil fungsi } void KiraJumlah(int markah[ ]) //takrifan fungsi { /* badan fungsi *? }

  14. Rentetan dalam Tatasusunan • Rentetan dalam c diwakili oleh tatasusunan aksara • Pengistiharan char nama[30]; 0……………………….30 Menandakan berakhir rentetan \0

  15. Rentetan dalam Tatasusunan • Char nama [ ] = {‘a’, ‘n’, ‘a’} • Char nama [ ] = “ana” • printf dan scanf boleh menggunakan argumen rentetan samada sebagai input atau output dengan meletakan format %s. Contohnya :  • char names[30] • scanf(“%s”,names); • printf(“%s”, names);

  16. Penunding • In program in memory • int x = 100; x 100 1245060 Nama pembolehubah nilai alamat Output 100 printf(“%d”, x); Printf(“%d”, &x); 1245060 Alamat bagi pembolehubah dirujuk menggunakan tanda &

  17. Penunding In Memory a 1245066 b 1245067 • Pembolehubah char mengambil ruang 1 byte • Output - 1245066 1245067 • Pembolehubah integer dan float mengambil ruang 4 byte (bergantung kpd komputer) • Output – 1245060 1245064 char a, b, printf(“%d %d”, &a, &b); In Memory a 1245060 b 1245064 int a, b, printf(“%d %d”, &a, &b);

  18. Pembolehubah Penunding • Pembolehubah yang telah kita pelajari ialah pembolehubah nilai (menyimpan nilai bagi jenis data tertentu) • Pembolehubah penunding ialah pembolehubah yang menyimpan alamat cth P dibawah. a 50 1245066 P 1245066 Physical representation a 50 P Logical representation

  19. Mencapai nilai pembolehubah menggunakan penunding • Untuk mencapai pembolehubah menggunakan penunding P *P • Katakan nilai a ingin ditambah 1 • a++; • a=a+1; • *P = *P + 1; • (*P)++; a 50 P

  20. sebelum selepas pernyataan Q P a 50 Q P a 51 a= a+1 Q P a 51 Q P a 54 *P = *P + 3 Q P a 54 Q P a 108 a = *P + *Q

  21. Pengistiharan pembolehubah penunding • Format • Jenis * nama_pembolehubah_penunding • cth int * p;  p menunding kpd pembolehubah/ nilai berjenis integer P a 50

  22. Pengistiharan pembolehubah penunding • cth • char * Q;  Q menunding kpd pembolehubah/ • nilai berjenis char • float * FL;  FL menunding kpd pembolehubah/ • nilai berjenis float Q hrf ‘Z’ FL nom 2.51

  23. Umpukan kpd pembolehubah penunding • In program • int *p, *q; • int a, b; In memory p q a b 10 15 12450 - p = &a; a = 10; q = p; *q = *p + 5; q = &b;

  24. Umpukan kpd pembolehubah penunding • In program • int *p, *q; • int a, b; In memory p q a b 10 17 12450 15 - p = &a; a = 10; q = p; *q = *p + 5; q = &b; *q = *p + 2; printf(“%d %d”, a, b); output : 15 17 printf(“%d %d”, *p, *q); 15 17 printf(“%d”, &a); 12450 Printf(“%d”, p); 12450

More Related