penuding
DESCRIPTION
PENUDING. PENUDING DAN TATASUSUNAN PENUDING DAN STRUKTUR. PENUDING DAN TATASUSUNAN. Penuding juga boleh menuding kpd satu koleksi data spt tatasusunan dan struktur Contoh pengisytiharan : int *nombor = new int[5]; - PowerPoint PPT PresentationTRANSCRIPT
PENUDING
PENUDING DAN TATASUSUNANPENUDING DAN STRUKTUR
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.
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;}
CONTOH OUTPUT
Bilangan nombor yang ingin dimasukkan ? 3Nombor : 45Nombor : 67Nombor : 34Nombor yang anda masukkan adalah :456734Purata bagi nombor yang dimasukkan : 48.667
KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN
Pernyataan Gambaran Kandungan Ingatan Serta Penerangan
int *nombor;
?
nombor
KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN
Pernyataan Gambaran Kandungan Ingatan Serta Penerangan
nombor = new int[saiz];
Berdasarkan kpd output a/c, input saiz bernilai 3. pernyataan new akan memulangkan tiga alamat yang berturutan atau tatasusunan bersaiz tiga dan penuding nombor akan menyimpan alamat pertama bagi lokasi tersebut.
9765
nombor 9765 9766 9767
[0] [1] [2]
KANDUNGAN INGATAN BAGI CONTOH PENGGUNAAN PENUDING & TATASUSUNAN
Pernyataan Gambaran Kandungan Ingatan Serta Penerangan
For (i=0; i<saiz; i++) {
cout<<“\n Nombor :”;
cin>>nombor[i];
jumlah+=nombor[i];
}
Berdasarkan kpd output a/c, tiga input bagi tatasusunan tersebut adalah 45, 67 dan 34. input ini dimasukkan melalui gelung dengan pernyataan cin>>nombor[i];.
9765 45 67 34
nombor 9765 9766 9767
[0] [1] [2]
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.
CONTOH PENGSIYTIHARAN PENUDING DAN STRUKTUR.
struct rekodPekerja{char nama[20];char jabatan[50];int tahun Bekerja;float gaji;
};rekodPekerja *p, *q, *sementara;
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.
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;
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.
PENUDING DAN STRUKTUR
Penuding struktur juga boleh dihantar kepada fungsi, ia hanya boleh dilakukan secara penghantaran alamat nilai atau rujukan.
KANDUNGAN INGATAN BAGI PENUDING STRUKTUR
Pengisytiharan penuding
rekodPekerja *p, *q, *sementara;
?
p q sementara
KANDUNGAN INGATAN BAGI PENUDING STRUKTURPemberian lokasi ingatan kepada
penuding
p= new rekodPekerja;
q=new rekodPekerja;
nama jabatan tahunBekerja gaji
nama jabatan tahunBekerja gaji
p
q
?
sementara
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMerujuk unsur dengan cara
pertama dan cara kedua
i) 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;
AhmadJTMK19993500.0
nama jabatan tahunBekerja gaji
p
?
sementara
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMerujuk unsur dengan cara
pertama dan cara kedua
i) Merujuk unsur bagi penuding struktur p
strcpy((*p).nama, “Ahmad”);
strcpy((*p).jabatan, “JTMK”);
(*p).tahunBekerja=1999;
(*p).gaji=3500.0;AhmadJTMK19993500.0
nama jabatan tahunBekerja gaji
p
?
sementara
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMerujuk 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;AsmahJKE20052000.0
nama jabatan tahunBekerja gaji
q
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMenukar lokasi ingatan yang dituding oleh penuding struktur p dan q.
i) sementara=p;
AhmadJTMK19993500.0
nama jabatan tahunBekerja gaji
p
sementara
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMenukar lokasi ingatan yang dituding oleh penuding struktur p dan q.
ii) p=q;
AsmahJKE20052000.0
nama jabatan tahunBekerja gaji
q
p
KANDUNGAN INGATAN BAGI PENUDING STRUKTURMenukar lokasi ingatan yang dituding oleh penuding struktur p dan q.
i) q=sementara;
AhmadJTMK19993500.0
nama jabatan tahunBekerja gaji
sementara
q
KANDUNGAN INGATAN BAGI PENUDING STRUKTUR
nama jabatan tahunBekerja gaji
awal
AbdulJKA20043000.5
Penambahan unsur paut pada nod
paut
KANDUNGAN INGATAN BAGI PENUDING STRUKTURDua nod yang bersambungan menggunakan unsur
paut
AbdulJKA20043000.5
awal
RazakJKM20032800.0
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.
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.
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).