1 / 34

PENUDING

PENUDING. PENUDING DAN TATASUSUNAN PENUDING DAN STRUKTUR. PENUDING DAN TATASUSUNAN. Nama tatasusunan adalah satu penuding yg menuding kpd unsur pertama tatasusunan. Merujuk kpd nilai dlm tatasusunan menggunakan nama tatasusunan atau penuding int nom[5] = {10, 20, 30, 40, 50};

argyle
Download Presentation

PENUDING

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. PENUDING PENUDING DAN TATASUSUNAN PENUDING DAN STRUKTUR

  2. PENUDING DAN TATASUSUNAN • Nama tatasusunan adalah satu penuding yg menuding kpd unsur pertama tatasusunan. • Merujuk kpd nilai dlm tatasusunan menggunakan nama tatasusunan atau penuding int nom[5] = {10, 20, 30, 40, 50}; nom [0] akan memberi nilai 10 int *tunjuknom = nom; *nom bermakna nilai 10 akan dirujuk

  3. PENUDING DAN TATASUSUNAN //merujuk nilai sama dengan menggunakan penuding atau nama tatasusunan #include <iostream.h> void main() {int a, tata[5]={10,20,30,40,50}; int *tunjuktata; tunjuktata=tata; cout <<“Menggunakan subskrip tatasusunan :”<< endl; for (a=0; a<5; a++) cout <<tata[a]; cout << endl <<“Menggunakan subskrip penuding :”<< endl; for (a=0; a<5; a++) cout <<tunjuktata[a]; //penuding arithmetik cout << endl <<“Menggunakan penuding arithmetik tatasusunan :”<< endl; for (a=0; a<5; a++) cout << *(tata + a); cout << endl <<“Menggunakan penuding arithmetik penuding :”<< endl; for (a=0; a<5; a++) cout << *(tunjuktata + a); } Aturcara 2.2.1

  4. PENUDING DAN TATASUSUNAN Menggunakan subskrip tatasusunan : 1020304050 Menggunakan subskrip penuding : 1020304050 Menggunakan penuding arothmetik tatasusunan : 1020304050 Menggunakan penuding arithmetik penuding : 1020304050 • Output aturcara 2.2.1 • Latihan : sekiranya pernyataan berikut di tambah dalam aturcara 2.2.1, apakah output bagi aturcara tersebut. cout << endl << tata[1]; cout << endl << tunjuktata[1]; cout << endl << *(tata +1); cout << endl << *(tunjuktata +1);

  5. PENUDING DAN TATASUSUNAN • Penuding juga boleh menuding kpd satu koleksi data spt tatasusunan dan struktur • Contoh pengisytiharan : int *nombor = new int[5]; • Penggunaan tatasusunan membenarkan pengguna bebas memasukkan bilangan data yang dikehendaki.

  6. CONTOH ATURCARA #include <iostream.h> int main () { int *nombor; int i, saiz; float purata, jumlah; cout<<“Bilangan nombor yang ingin dimasukkan ?” ; cin>> saiz; nombor = new int[saiz]; for (i=0; i<saiz; i++) { cout<<“\n Nombor : “; cin>>nombor[i]; jumlah+=nombor[i]; } purata = jumlah/saiz; cout<<“\nNombor yang anda masukkan adalah : “; for (i=0; i<saiz; i++) cout<<“\n”<<nombor[i]; cout<<“\nPurata bagi nombor yang dimasukkan: “<<purata; return 0; }

  7. CONTOH OUTPUT Bilangan nombor yang ingin dimasukkan ? 3 Nombor : 45 Nombor : 67 Nombor : 34 Nombor yang anda masukkan adalah : 45 67 34 Purata bagi nombor yang dimasukkan : 48.667

  8. KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN nombor ?

  9. KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN nombor 9765 9766 9767 9765 [0] [1] [2]

  10. KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN nombor 9765 9766 9767 9765 45 67 34 [0] [1] [2]

  11. PENGURUSAN MEMORI : OPERATOR NEW DAN DELETE • Menggunakan tatasusunan dengan unsur yg tetap, contoh : int tata[100]; • Tatasusunan ini menyediakan sebanyak 100 ruang untuk nilai integer. • Tatasusunan sgt berguna untuk menyimpan data, ttp terdapat banyak ruang yg tidak digunakan. • Untuk mengisi saiz tatasusunan yg tepatperlu diketahui saiznya sblm aturcara dicompile agar compiler dpt menyediakan ruang yg secukupnya • Untuk mengelak penggunaan memori yang membazir, adalah lebih baik menggunakan peruntukan memori dinamik yang diperlukan semasa larian atur cara

  12. OPERATOR NEW • Operator new memperoleh memori dari komputer dan memulangkan penuding kpd permulaan alamat • Format penyataan untuk memperoleh memori drp heap umpukkan kpd penuding kata kunci new diikuti dengan jenis data dan nombor. penuding = new jenis_data [nombor]; • Jenis penuding mestilah sama dengan jenis_data. Contoh: int *pmem; pmem = new int [100]; • Kesannya sama seperti mengisytiharkan tatasusunan tata[100], kecuali memori itu diperolehi daripada heap. Contoh aturcara:

  13. OPERATOR DELETE • Operator delete memulangkan memori kepada komputer dan membolehkan memori itu digunakan untuk tujuan yg lain. • Format pernyataan untuk memulangkan memori kepada heap adalah dengan kata kunci delete diikuti dengan nama penuding. delete nama_penuding;

  14. PENUDING KEPADA PENUDING • Pembolehubah menyimpan pemalar atau nilai, manakala pembolehubah penuding menyimpan alamat pembolehubah lain. • Pembolehubah penuding kepada penuding ialah pembolehubah yg menyimpan alamat bg pembolehubah penuding yg lain • Cara mengisytiharkan pembolehubah penuding kpd penuding ialah dengan menggunakan simbol “**” sebelum pemboleh ubah. Format pengisytiharannya seperti berikut :- jenis_data **pointertopointer; contohnya : int ** Ptp; int *Ptr, data=10; Ptr=&data; Ptp=&ptr;

  15. PENUDING KEPADA PENUDING Ptp Ptr data 1002 1003 10 1001 1002 1003 Rajah 2.2.1 : Hubunganpembolehbahpenudingkepadapenudingdengan data

  16. PENUDING DAN STRUKTUR • Bagi penggunaan penuding dan struktur, penambahan perlu dilakukan semasa pengisytiharan penuding struktur. • Pengisytiharan struktur yang asas adalah seperti yang dibincangkan sebelum ini. • Contoh aturcara di bawah menunjukkan pengisytiharan penuding p,q dan sementara.

  17. CONTOH PENGSIYTIHARAN PENUDING DAN STRUKTUR. struct rekodPekerja{ char nama[20]; char jabatan[50]; int tahun Bekerja; float gaji; }; rekodPekerja *p, *q, *sementara;

  18. PENUDING DAN STRUKTUR • Apabila penuding struktur telah diisytiharkan, operasi boleh dijalankan ke atas unsur bagi struktur tersebut. • Terdapat 2 cara untuk merujuk unsur bagi penuding struktur; iaitu menggunakan operator * atau menggunakan ->. • Penggunaan operator * memerlukan operator kurungan digunakan bersama.

  19. PENUDING DAN STRUKTUR • Cara pertama untuk merujuk unsur nama bagi penuding struktur p adalah seperti berikut: (*p).nama; • Bagi cara kedua dengan menggunakan operator -> pernyataannya adalah seperti berikut : p->nama;

  20. PENUDING DAN STRUKTUR • Selain drp rujukan terhadap unsur, penuding struktur juga boleh diubah tundingannya. • Kandungan yang terdapat di dalam penuding struktur juga boleh diumpukkan ke dalam kandungan penuding struktur yang lain dengan menggunakan operator *. Contoh : *p = *q; • Pernyataan ini menunjukkan kandungan unsur yang dituding oleh penuding q diumpukkan kpd kandungan unsur penuding struktur p.

  21. PENUDING DAN STRUKTUR • Penuding struktur juga boleh dihantar kepada fungsi, ia hanya boleh dilakukan secara penghantaran alamat nilai atau rujukan.

  22. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Pengisytiharan penuding rekodPekerja *p, *q, *sementara; sementara p q ?

  23. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Pemberian lokasi ingatan kepada penuding p= new rekodPekerja; q=new rekodPekerja; p sementara ? nama jabatan tahunBekerja gaji q nama jabatan tahunBekerja gaji

  24. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Merujuk unsur dengan cara pertama dan cara kedua • Merujuk unsur bagi penuding struktur p strcpy((*p).nama, “Ahmad”); strcpy((*p).jabatan, “JTMK”); (*p).tahunBekerja=1999; (*p).gaji=3500.0; p= new rekodPekerja; q=new rekodPekerja; sementara ? p nama jabatan tahunBekerja gaji

  25. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Merujuk unsur dengan cara pertama dan cara kedua • Merujuk unsur bagi penuding struktur p strcpy((*p).nama, “Ahmad”); strcpy((*p).jabatan, “JTMK”); (*p).tahunBekerja=1999; (*p).gaji=3500.0; sementara ? p nama jabatan tahunBekerja gaji

  26. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Merujuk unsur dengan cara pertama dan cara kedua ii) Merujuk unsur bagi penuding struktur q strcpy(q->nama, “Asmah”); strcpy(q->jabatan, “JKE”); q->tahunBekerja=2005; q->gaji=2000.0; q nama jabatan tahunBekerja gaji

  27. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Menukar lokasi ingatan yang dituding oleh penuding struktur p dan q. i) sementara=p; p nama jabatan sementara tahunBekerja gaji

  28. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Menukar lokasi ingatan yang dituding oleh penuding struktur p dan q. ii) p=q; q nama jabatan p tahunBekerja gaji

  29. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Menukar lokasi ingatan yang dituding oleh penuding struktur p dan q. i) q=sementara; sementara nama jabatan q tahunBekerja gaji

  30. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Penambahan unsur paut pada nod awal nama jabatan tahunBekerja gaji paut

  31. KANDUNGAN INGATAN BAGI PENUDING STRUKTUR Dua nod yang bersambungan menggunakan unsur paut awal

  32. PENUDING DAN STRUKTUR • Jika dilihat kandungan ingatan, penuding struktur p dan q menuding kepada struktur masing-masing atau lebih dikenali sebagai nod. • Oleh itu apabila seratus maklumat pekerja dimasukkan, seratus penuding struktur perlu dicipta, • Ini merupakan cara yang tidak efisyen bagi penggunaan penuding struktur.

  33. PENUDING DAN STRUKTUR • Untuk mengatasi masalah ini, suatu unsur pada struktur harus diwujudkan untuk menyambungkan satu penuding struktur dengan penuding struktur yang lain. • Mengikut kepada rajah kandungan ingatan, satu unsur bernama paut telah digunakan dan nod ini dituding oleh penuding awal. • Bagi membolehkan capaian dilakukan ke atas data yang terdapat pada penuding struktur, hanya satu penuding digunakan untuk menuding kepada nod di hadapan.

  34. PENUDING DAN STRUKTUR • Ini boleh dilihat spt gerabak keretapi yang mempunyai kepala keretapi dan gerabak-gerabak di belakangnya yang bersambungan antara satu sama lain. • Pelaksanaan nod yang bersambungan ini lebih dikenali sebagai senarai berpaut (akan dipelajari pada bab seterusnya).

More Related