SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Struktur
1
STRUKTUR, UNION & PENOMBORAN
Objektif
!"Pengnalan kpdstruktur dlm bhs
pengaturcaran C
!"Memberi penekanan kpd bhg struktur yg
akan digunakan dgn fungsi & tts.
!"union & sistem penomboran
1.0 Pengenalan
• Struktur –
• satu kumpulan pembolehubah yg
dikumpulkan & dirujuk di bawah satu
nama @ pencam.
• jenis data yang ditakrif oleh pengguna
• data terdiri dari jenis yang berlainan yang
membentuk maklumat mengenai sesuatu
data
• berbeza dengan tatasusunan yang terdiri
dari jenis data yang sama
• Pengisytiharan:
struct <nama_struktur>
{
<jenis_data> <nama_unsur_1>;
<jenis_data> <nama_unsur_2>;
:
<jenis_data> <nama_unsur_n>;
} <senarai_p’ubah_struktur>;
Asas Komputeran Kejuruteraan
2
• Cth:
Seorang pensyarah hendak menentukan gred
kepada setiap pelajarnya pada setiap
semester. Pelajar-pelajar telah menjalani
projek, ujian dan peperiksaan akhir.
Nama Data Jenis Data C
No matrik Nilai integer int
Nama pelajar Tatasusunan
aksara 31
char [31]
Markah projek Nilai titik
terapung
float
Markah ujian Nilai integer int
Markah pep. akhir Nilai integer int
Gred Aksara char
• Saiz ingatan yg diperlukan utk struktur ini
dlm bait:
2
No matrik
31
Nama pelajar
4
Markah projek
2
Markah ujian
Markah pep. akhir
2
Gred
1
Struktur
3
struct
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
} rekod_pelajar;
struct pelajar
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
} rekod_pelajar;
struct pelajar
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
};
struct pelajar rekod_pelajar;
CthpengisytiharaniCthpengisytiharaniiCthpengisytiharaniii
Asas Komputeran Kejuruteraan
4
• Satu lagi pilihan pengisytiharan struktur
menggunakan typedef, cth:
typedef struct
{
int no_metrik;
char nama[31];
int markah_projek1;
int markah_projek2;
int markah_projek3;
int markah_ujian1;
int markah_ujian2
int markah_final;
char gred;
} JENISPELAJAR;
JENISPELAJAR rekod_pelajar;
1.1 Umpukan nilai awal kpd struktur
struct pelajar
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
} rekod_pelajar = {722, “Maimunah
Muhamad”, 30.5, 10, 50, ‘B’};
Struktur
5
Atau
struct pelajar
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
};
struct pelajar rekod_pelajar =
{722, “Maimunah Muhamad”, 30.5,
10, 50, ‘B’};
1.2 Operasi ke atas unsur struktur
• Setelah diisytiharkan, unsur struktur boleh
dirujuk spt berikut:
<p’ubah_struktur>.<nama_unsur>
• Contoh cetakan nama pelajar dibuat:
printf(“%s”, rekod_pelajar.nama);
• Contoh mengumpukan nilai ke no_metrik:
rekod_pelajar.no_metrik = 5443;
Asas Komputeran Kejuruteraan
6
• Untuk merujuk elemen tertentu didlm
tatasusuan subskrip @ indek perlu
didunakan. Cth menyalin nama pelajar:
struct pelajar p1, p11;
for (i=0; i<31; i++)
p11.nama[i] = p1.nama[i];
1.3 Latihan
Tulis satu aturcara yang menggunakan struktur
utk bagi tujuan penempahan tiket kapal
terbang. Minimum data yang perlu ada adalah :
Nama penumpang, tempat berlepas,
destinasi,no. penerbangan, jumlah yg. perlu
dibayar, status bayaran [telah dibayar|belum
dibayar] dan umur penumpang.
Struktur
7
2.0 Struktur Bersarang
• ahli struktur boleh terdiri dari struct yg lain.
• Perhatikan pengisytiharan struktur berikut:
struct struktur_pelajar
{
char nama[31];
int no_metrik;
char kod_fakulti[5];
int umur;
char jantina;
int markah_projek1;
int markah_projek2;
int markah_projek3;
int markah_ujian1;
int markah_ujian2
int markah_final;
char gred;
} rekod_pelajar;
• menstrukturkan semula rekod pelajar
menggunakan pengistiharan supaya data
boleh diklasifikasi mengikut kategorinya:
o peribadi pelajar
o markah pelajar
Asas Komputeran Kejuruteraan
8
Cara 1:
struct peribadi_pelajar
{
char nama[31];
int no_metrik;
char kod_fakulti[5];
int umur;
char jantina;
}
struct markah_pelajar
{
int markah_projek1;
int markah_projek2;
int markah_projek3;
int markah_ujian1;
int markah_ujian2
int markah_final;
}
struct pelajar
{
struct peribadi_pelajar
peribadi;
struct markah_pelajar
markah;
char gred;
};
Struktur
9
Cara 2:
struct pelajar
{
struct
{
char nama[31];
int no_metrik;
char kod_fakulti[5];
int umur;
char jantina;
} peribadi;
struct
{
int markah_projek1;
int markah_projek2;
int markah_projek3;
int markah_ujian1;
int markah_ujian2
int markah_final;
} markah;
char gred;
};
• Jika 2 p’ubah diisytiharkan:
struct pelajar p1, p2;
Asas Komputeran Kejuruteraan
10
Kenyatan2
berikut ada adalah sah:
p1.peribadi.umur =
p2.peribadi.umur;
p1=p2;
p1.peribadi.kod_fakulti[4] =
p2.peribadi.nama[9];
strcpy(p1.peribadi.nama,”Amirah
Iman”);
p1.gred = ‘A’;
2.1 Umpukan nilai awal kpd struktur
• Cth:
struct pelajar p1 = {{“Maimunah
Muhamad”, 722, FS, 20, P},{10,
10, 20,0,12,60}, ‘C’};
2.2 Latihan
Dari latihan 1.3, tambahkan fungsi berikut.
Setiap penempah boleh menempah lebih dari
1 tiket utk penerbangan yg sama, ttp utk orang
yg berbeza. Dengan menggunakan struktur
bersarang tambahkan data: no. telepon
penempah, nama penempah, tarikh & masa
tempahan dibuat.
Struktur
11
3.0 P’ubah struktur jenis tatasusunan
• Penisytiharan:
struct <n_struk> <n_tts>[dms];
• cth pengisytiharan:
struct pelajar
{
int no_metrik;
char nama[31];
float markah_projek;
int markah_ujian;
int markah_final;
char gred;
};
struct pelajar rekod_pelajar[3];
• Saiz tts boleh diabaikan jika nilai awal
diber, cth:
struct pelajar rekod_pelajar[] = {
{2332, “Zainab Ismail”,
10.2, 10, 20, ‘F’},
{2335, “Ali Mamat”, 51.4,
60, 60, ‘C’},
{2337, “Malia Azri”, 100.0,
99, 99, ‘A’}
};
Asas Komputeran Kejuruteraan
12
• Tts yg terbentuk:
2332 Zainab Ismail 10.2 10 20 F
2335 Ali Mamat 51.4 60 60 C
2337 Malia Azri 100.0 99 99 A
gred
no_metrik nama markah_projek
markah_ujian
markah_final
• Cth memasukkan maklumat kedlm tts
struktur:
struct pensyarah_fsksm
{ int no_pekerja;
struct
{ char nama_awal[15];
char nama_akhir[15];
} nama;
int umur;
float gaji;
} pensy[100];
Struktur
13
for (j=0; j<100; j++)
{
printf(“nmasukkan no pek, nama
awal, nama akhir umur dan gaji
%dn”,j+1);
scanf(“%d”, pensy[j].no_pekerja);
gets(pensy[j].nama.nama_awal);
gets(pensy[j].nama.nama_akhir);
scanf(“%d”, pensy[j].umur);
scanf(“%f”,pensy[j].gaji);
}
3.1 Latihan
Dari latihan 2.2, tambahkan fungsi berikut.
Boleh menyimpan 20 data dlm tts untuk tujuan:
• kiraan bil penumpang dlm pesawat
tertentu
• jumlah tambang yg telah dibayar &
belum dibayar.
4.0 P’ubah struktur jenis Penuding
• Pengisytiharan:
struct <n_struk> *<n_penuding>;
Asas Komputeran Kejuruteraan
14
• Perhatikan cth berikut:
struct pensyarah_fsksm
{ int no_pekerja;
struct
{ char nama_awal[15];
char nama_akhir[15];
} nama;
int umur;
float gaji;
}dayang = {777,{“Dayang”,
“Jawawi”},30, 1500};
struct pensyarah_fsksm *saya, *kami;
• Cth umpukan:
saya = &dayang;
• Cth merujuk ahli struktur menggunakan
penuding:
(*saya).no_pekerja
@
saya->no_pekerja
Struktur
15
• Sambungan cth di atas:
struct pensyarah_fsksm pblk162[]=
{
{777,{“Dayang”, “Jawawi”},20,
1500},
{666,{“Normal”, “Jusoh”},30,
2500}
}
printf(“Alamat #1: %u #2: %un”,
&pblk162[0], &pblk162[1]);
kami = &pblk162[0];
printf(“Penuding #1: %u #2: %un”,
kami, kami+1);
printf(“1. Kami adalah %s:”, kami-
>nama.nama_awal);
kami++;
printf(“2. Kami adalah %s:”, kami-
>nama.nama_awal);
• Lengkapkan rajah berikut & tulis
output dari cth aturcara di
atas.
Asas Komputeran Kejuruteraan
16
777 Dayang . . . . . . . 1500pblk162[0]
kami
666 Normal. . . . . . . . 2500pblk162[0]
4.1 Latihan
Dari latihan 3.1, tukar tts kepada penuding.
Struktur
17
5.0Operasi2
strukturdgnfungsi
structrekod_pelajar
{intno_id;
intTugasan;
intKuiz;
intUjian;
chargred;
};
main()
{
structrekod_pelajaramir,naim;
intjum_mar;
:
:
data_masuk(&amir);
jum_mar=kira_jumlah(amir);
if(jum_mar>=60)
amir.gred='L';
else
amir.gred='G';
cetak(amir.gred,amir.no_id);
naim=baca_data();
penghantaran
alamatstrukturke
fungsi
penghantaran
nilaistrukturke
fungsi
penghantaran
ahlikefungsi
menerimanilai
strukturdpdfungsi
AsasKomputeranKejuruteraan
18
voiddata_masuk(structrekod_pelajar*p)
{scanf("%d",&(*p).no_id);
scanf("%d%d",&p->Tugasan,&p->Kuiz);
scanf("%d",&p->Ujian);
}
intkira_jumlah(structrekod_pelajarp)
{intjum;
jum=p.Tugasan+p.Kuiz+p.Ujian;
returnjum;
}
voidcetak(chargred,intid)
{
printf("Gredpelajar%dialah%c",
id,gred);
}
structrekod_pelajarbaca_data()
{structrekod_pelajarp;
scanf("%d",&p.no_id);
scanf("%d%d",&p.Tugasan,&p.Kuiz);
scanf("%d",&p.Ujian);
returnp;
}
menerimastruktur
melaluialamat
menerimastruktur
melaluinilai
menerimaahli
penghantarannilaike
fungsimain
Struktur
19
5.1 Latihan
Dari latihan 3.1@ 4.1, anda dikehendaki
membentukan sekurang-kurangnya 3 fungsi
berikut:
• baca_masukan
• pengiraan
• cetak_laporan
6.0 Struktur: Apa seterusnya?
• Jelas struktur amat berguna utk membentuk
data jenis baru yg terdiri dpd jenis2
data
asas.
• Bentuk data yg berbagai jenis ini mewakili
data sebenar dlm. penyelesaian masalah
dgn komputer.
• Bentuk data ini akan distukturkan mengikut
struktur-struktur tertentu spt tindanan, baris
gilir & pehohon sebelum diproses.
Asas Komputeran Kejuruteraan
20
7.0 Union
•••• berfungsi lebih kurang sama seperti struktur
• diguna untuk menyimpan jenis data yang
berlainan didalam lokasi memori yang sama
• boleh menjimatkan ruang bila
pembolehubah tidak digunakan pada satu
masa
• hanya satu ahli dari satu jenis data diguna
pada satu masa
• pengguna menentukan bila setiap ahli
sesuai digunakan
• Cth mudah:
#include <stdio.h>
union nombor {
char x;
int y;};
main( )
{
union nombor nilai;
printf("saiz union ialah
%dn", sizeof(nilai));
nilai.x = 0x41;/*ASCII 'A'*/
printf("char: %X t int:
Struktur
21
%Xn", nilai.x, nilai.y);
printf("alamat bermula pada
%dn", &nilai.x);
nilai.y = 0x1234;
printf("char: %X t int:
%Xn", nilai.x, nilai.y);
printf("alamat bermula pada
%dn", &nilai.y);
return 0;
}
• Output:
saiz union ialah 2
char: 41 int: 41
alamat bermula pada 6692
char: 34 int: 1234
alamat bermula pada 6692
• Bila nilai.x diumpukkan:
00 41
nilai
6692
alamat
• Bila nilai.y diumpukkan:
12 34
nilai
6692
alamat
Asas Komputeran Kejuruteraan
22
8.0 Pernomboran @ Enumeration
• set nilai-nilai pemalar integer yagn diwakili
oleh pencam.
• Pengisytiharan:
enum <nama_jenis_enum>
{
senarai_enum
};
• Cth pengisytiharan jenis data BulanIslam
& p’ubah:
enum BulanIslam
{
muharram, safar, rabiulawal,
rabiulakhir, jamadilawal,
jamadilakhir, rejab,
syaaban, ramadhan, syawal,
zulkaedah, zulhijjah
};
enum BulanIslam Bulan;
• Apabila jenis data pernomboran
diisytiharkan, pencam-pencamnya akan
diumpukkan nilai integer secara automatik.
• Pencam yang pertama akan diumpukkan
nilai ‘0’, pecam kedua bernilai ‘1’ dan
begitulah seterusnya.
Struktur
23
• Pengaturcara boleh membuat
pengubahsuaian berdasarkan peraturan-
peraturan berikut:
• boleh mengumpukkan nilai pemalar
(constant) kepada senarai pernomboran
• boleh mengumpukkan nilai kepada
senarai pernomboran dengan
menggunakan pencam yang sebelumnya
dalam ungkapan aritmetik
• boleh mengumpukkan nilai yang sama
kepada lebih dari satu pencam dalam
senarai pernomboran
• Cth: Rekabentuk mesin jual air automatik.
enum siling
{
satusen = 1, limasen
=5,sepuluhsen= 10, samah =
limasen*sepuluhsen,serial =
2*samah
};
enum siling duitmasuk;
Untuk kira duit yg dimasukkan oleh pembeli
cukup @ tidak, diberi harga air sekotak
RM1.20:
Asas Komputeran Kejuruteraan
24
while (jum_duit<120) {
switch(duitmasuk) {
case satusen:
jum_duit++;
break;
case limasen:
jum_duit=jum_duit+
limasen;
break;
Case sepuluhsen:
jum_duit=jum_duit+
sepuluhsen;
break;
case samah:
jum_duit=jum_duit+
samah;
break;
case serial:
jum_duit=jum_duit+
serial;
break;
}
}

Contenu connexe

Similaire à C programming language notes (9)

9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b
9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b
9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571bRicky El-ikhsan
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.pptTipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.pptNafisClassic
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
7. pemrograman struktur
7. pemrograman struktur7. pemrograman struktur
7. pemrograman strukturRoziq Bahtiar
 
Algoritma-dan-Pemrograman-C--(struct).ppt
Algoritma-dan-Pemrograman-C--(struct).pptAlgoritma-dan-Pemrograman-C--(struct).ppt
Algoritma-dan-Pemrograman-C--(struct).pptAdiYoung2
 
Pertemuan 12 : Algoritma & Pemrograman
Pertemuan 12 : Algoritma & PemrogramanPertemuan 12 : Algoritma & Pemrograman
Pertemuan 12 : Algoritma & PemrogramanTri Retna
 
Pelatihan Python Standard Library
Pelatihan Python Standard LibraryPelatihan Python Standard Library
Pelatihan Python Standard LibraryRidwan Fadjar
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array087dwi
 
pemrograman-dasar-cpp_02-variabel-tipe-data.pdf
pemrograman-dasar-cpp_02-variabel-tipe-data.pdfpemrograman-dasar-cpp_02-variabel-tipe-data.pdf
pemrograman-dasar-cpp_02-variabel-tipe-data.pdfFahriAkbar19
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objekAlvin Setiawan
 

Similaire à C programming language notes (9) (20)

Tistrukdat1
Tistrukdat1Tistrukdat1
Tistrukdat1
 
Pertemuan VI Teori
Pertemuan VI TeoriPertemuan VI Teori
Pertemuan VI Teori
 
Structure
StructureStructure
Structure
 
9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b
9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b
9366bcd2f7b5195a70c971b4cb5c2fe5bcfc571b
 
Tipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.pptTipe_Data_Terstruktur pada perkuliahan.ppt
Tipe_Data_Terstruktur pada perkuliahan.ppt
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
7. pemrograman struktur
7. pemrograman struktur7. pemrograman struktur
7. pemrograman struktur
 
Algoritma-dan-Pemrograman-C--(struct).ppt
Algoritma-dan-Pemrograman-C--(struct).pptAlgoritma-dan-Pemrograman-C--(struct).ppt
Algoritma-dan-Pemrograman-C--(struct).ppt
 
Resume praktikum 4__structure
Resume praktikum 4__structureResume praktikum 4__structure
Resume praktikum 4__structure
 
MatrikulasiJava.pdf
MatrikulasiJava.pdfMatrikulasiJava.pdf
MatrikulasiJava.pdf
 
Nested struct
Nested structNested struct
Nested struct
 
Pertemuan 12 : Algoritma & Pemrograman
Pertemuan 12 : Algoritma & PemrogramanPertemuan 12 : Algoritma & Pemrograman
Pertemuan 12 : Algoritma & Pemrograman
 
Pelatihan Python Standard Library
Pelatihan Python Standard LibraryPelatihan Python Standard Library
Pelatihan Python Standard Library
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Structure and pointer
Structure and pointerStructure and pointer
Structure and pointer
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
 
Spt 3102(1112)
Spt 3102(1112)Spt 3102(1112)
Spt 3102(1112)
 
pemrograman-dasar-cpp_02-variabel-tipe-data.pdf
pemrograman-dasar-cpp_02-variabel-tipe-data.pdfpemrograman-dasar-cpp_02-variabel-tipe-data.pdf
pemrograman-dasar-cpp_02-variabel-tipe-data.pdf
 
Array
ArrayArray
Array
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 

Plus de nakomuri

Basic security concepts_chapter_1_6perpage
Basic security concepts_chapter_1_6perpageBasic security concepts_chapter_1_6perpage
Basic security concepts_chapter_1_6perpagenakomuri
 
Business entrepreneur presentation
Business entrepreneur presentationBusiness entrepreneur presentation
Business entrepreneur presentationnakomuri
 
C programming language notes (7)
C programming language notes (7)C programming language notes (7)
C programming language notes (7)nakomuri
 
C programming language notes (6)
C programming language notes (6)C programming language notes (6)
C programming language notes (6)nakomuri
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)nakomuri
 
C programming language notes (4)
C programming language notes (4)C programming language notes (4)
C programming language notes (4)nakomuri
 
C programming language notes (2)
C programming language notes (2)C programming language notes (2)
C programming language notes (2)nakomuri
 
C programming language notes (1)
C programming language notes (1)C programming language notes (1)
C programming language notes (1)nakomuri
 
C programming language notes (8)
C programming language notes (8)C programming language notes (8)
C programming language notes (8)nakomuri
 
Atm flowchart
Atm flowchartAtm flowchart
Atm flowchartnakomuri
 
Nikah khitbah
Nikah khitbahNikah khitbah
Nikah khitbahnakomuri
 
Senarai organisasi
Senarai organisasiSenarai organisasi
Senarai organisasinakomuri
 
Silibus stij3053 - Network Design
Silibus stij3053 - Network DesignSilibus stij3053 - Network Design
Silibus stij3053 - Network Designnakomuri
 
Chapter 4 high-speed_network_design - Network Design
Chapter 4 high-speed_network_design - Network DesignChapter 4 high-speed_network_design - Network Design
Chapter 4 high-speed_network_design - Network Designnakomuri
 
Chapter 3 1-network_design_with_internet_tools - Network Design
Chapter 3 1-network_design_with_internet_tools - Network DesignChapter 3 1-network_design_with_internet_tools - Network Design
Chapter 3 1-network_design_with_internet_tools - Network Designnakomuri
 
Chapter 2 -_lan_network_design - Network Design
Chapter 2 -_lan_network_design - Network DesignChapter 2 -_lan_network_design - Network Design
Chapter 2 -_lan_network_design - Network Designnakomuri
 
Chapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network DesignChapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network Designnakomuri
 
Chapter 3 2-remote_network_design - Network Design
Chapter 3 2-remote_network_design - Network DesignChapter 3 2-remote_network_design - Network Design
Chapter 3 2-remote_network_design - Network Designnakomuri
 
Sukatan pelajaran kursus_bwff1013 - Basic Finance
Sukatan pelajaran kursus_bwff1013 - Basic FinanceSukatan pelajaran kursus_bwff1013 - Basic Finance
Sukatan pelajaran kursus_bwff1013 - Basic Financenakomuri
 

Plus de nakomuri (20)

Basic security concepts_chapter_1_6perpage
Basic security concepts_chapter_1_6perpageBasic security concepts_chapter_1_6perpage
Basic security concepts_chapter_1_6perpage
 
Business entrepreneur presentation
Business entrepreneur presentationBusiness entrepreneur presentation
Business entrepreneur presentation
 
C programming language notes (7)
C programming language notes (7)C programming language notes (7)
C programming language notes (7)
 
C programming language notes (6)
C programming language notes (6)C programming language notes (6)
C programming language notes (6)
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)
 
C programming language notes (4)
C programming language notes (4)C programming language notes (4)
C programming language notes (4)
 
C programming language notes (2)
C programming language notes (2)C programming language notes (2)
C programming language notes (2)
 
C programming language notes (1)
C programming language notes (1)C programming language notes (1)
C programming language notes (1)
 
C programming language notes (8)
C programming language notes (8)C programming language notes (8)
C programming language notes (8)
 
Atm flowchart
Atm flowchartAtm flowchart
Atm flowchart
 
Nikah khitbah
Nikah khitbahNikah khitbah
Nikah khitbah
 
Twitter
TwitterTwitter
Twitter
 
Senarai organisasi
Senarai organisasiSenarai organisasi
Senarai organisasi
 
Silibus stij3053 - Network Design
Silibus stij3053 - Network DesignSilibus stij3053 - Network Design
Silibus stij3053 - Network Design
 
Chapter 4 high-speed_network_design - Network Design
Chapter 4 high-speed_network_design - Network DesignChapter 4 high-speed_network_design - Network Design
Chapter 4 high-speed_network_design - Network Design
 
Chapter 3 1-network_design_with_internet_tools - Network Design
Chapter 3 1-network_design_with_internet_tools - Network DesignChapter 3 1-network_design_with_internet_tools - Network Design
Chapter 3 1-network_design_with_internet_tools - Network Design
 
Chapter 2 -_lan_network_design - Network Design
Chapter 2 -_lan_network_design - Network DesignChapter 2 -_lan_network_design - Network Design
Chapter 2 -_lan_network_design - Network Design
 
Chapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network DesignChapter 1 overview-stij3053 - Network Design
Chapter 1 overview-stij3053 - Network Design
 
Chapter 3 2-remote_network_design - Network Design
Chapter 3 2-remote_network_design - Network DesignChapter 3 2-remote_network_design - Network Design
Chapter 3 2-remote_network_design - Network Design
 
Sukatan pelajaran kursus_bwff1013 - Basic Finance
Sukatan pelajaran kursus_bwff1013 - Basic FinanceSukatan pelajaran kursus_bwff1013 - Basic Finance
Sukatan pelajaran kursus_bwff1013 - Basic Finance
 

Dernier

Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaMateri Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaSABDA
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasAZakariaAmien1
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdfMMeizaFachri
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxsudianaade137
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...Kanaidi ken
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2noviamaiyanti
 
PRESENTASI EEC social mobile, and local marketing.pptx
PRESENTASI EEC social mobile, and local marketing.pptxPRESENTASI EEC social mobile, and local marketing.pptx
PRESENTASI EEC social mobile, and local marketing.pptxPCMBANDUNGANKabSemar
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxRioNahak1
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptxwongcp2
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxErikaPuspita10
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdfShintaNovianti1
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdfcicovendra
 

Dernier (20)

Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 TesalonikaMateri Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
Materi Kelas Online Ministry Learning Center - Bedah Kitab 1 Tesalonika
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnas
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques  Rousseau.pdfPEMIKIRAN POLITIK Jean Jacques  Rousseau.pdf
PEMIKIRAN POLITIK Jean Jacques Rousseau.pdf
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
PRESENTASI PEMBELAJARAN IPA PGSD UT MODUL 2
 
PRESENTASI EEC social mobile, and local marketing.pptx
PRESENTASI EEC social mobile, and local marketing.pptxPRESENTASI EEC social mobile, and local marketing.pptx
PRESENTASI EEC social mobile, and local marketing.pptx
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptx
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
 
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdfMA Kelas XII  Bab 1 materi musik mkontemnporerFase F.pdf
MA Kelas XII Bab 1 materi musik mkontemnporerFase F.pdf
 

C programming language notes (9)

  • 1. Struktur 1 STRUKTUR, UNION & PENOMBORAN Objektif !"Pengnalan kpdstruktur dlm bhs pengaturcaran C !"Memberi penekanan kpd bhg struktur yg akan digunakan dgn fungsi & tts. !"union & sistem penomboran 1.0 Pengenalan • Struktur – • satu kumpulan pembolehubah yg dikumpulkan & dirujuk di bawah satu nama @ pencam. • jenis data yang ditakrif oleh pengguna • data terdiri dari jenis yang berlainan yang membentuk maklumat mengenai sesuatu data • berbeza dengan tatasusunan yang terdiri dari jenis data yang sama • Pengisytiharan: struct <nama_struktur> { <jenis_data> <nama_unsur_1>; <jenis_data> <nama_unsur_2>; : <jenis_data> <nama_unsur_n>; } <senarai_p’ubah_struktur>; Asas Komputeran Kejuruteraan 2 • Cth: Seorang pensyarah hendak menentukan gred kepada setiap pelajarnya pada setiap semester. Pelajar-pelajar telah menjalani projek, ujian dan peperiksaan akhir. Nama Data Jenis Data C No matrik Nilai integer int Nama pelajar Tatasusunan aksara 31 char [31] Markah projek Nilai titik terapung float Markah ujian Nilai integer int Markah pep. akhir Nilai integer int Gred Aksara char • Saiz ingatan yg diperlukan utk struktur ini dlm bait: 2 No matrik 31 Nama pelajar 4 Markah projek 2 Markah ujian Markah pep. akhir 2 Gred 1
  • 2. Struktur 3 struct { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; } rekod_pelajar; struct pelajar { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; } rekod_pelajar; struct pelajar { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; }; struct pelajar rekod_pelajar; CthpengisytiharaniCthpengisytiharaniiCthpengisytiharaniii Asas Komputeran Kejuruteraan 4 • Satu lagi pilihan pengisytiharan struktur menggunakan typedef, cth: typedef struct { int no_metrik; char nama[31]; int markah_projek1; int markah_projek2; int markah_projek3; int markah_ujian1; int markah_ujian2 int markah_final; char gred; } JENISPELAJAR; JENISPELAJAR rekod_pelajar; 1.1 Umpukan nilai awal kpd struktur struct pelajar { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; } rekod_pelajar = {722, “Maimunah Muhamad”, 30.5, 10, 50, ‘B’};
  • 3. Struktur 5 Atau struct pelajar { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; }; struct pelajar rekod_pelajar = {722, “Maimunah Muhamad”, 30.5, 10, 50, ‘B’}; 1.2 Operasi ke atas unsur struktur • Setelah diisytiharkan, unsur struktur boleh dirujuk spt berikut: <p’ubah_struktur>.<nama_unsur> • Contoh cetakan nama pelajar dibuat: printf(“%s”, rekod_pelajar.nama); • Contoh mengumpukan nilai ke no_metrik: rekod_pelajar.no_metrik = 5443; Asas Komputeran Kejuruteraan 6 • Untuk merujuk elemen tertentu didlm tatasusuan subskrip @ indek perlu didunakan. Cth menyalin nama pelajar: struct pelajar p1, p11; for (i=0; i<31; i++) p11.nama[i] = p1.nama[i]; 1.3 Latihan Tulis satu aturcara yang menggunakan struktur utk bagi tujuan penempahan tiket kapal terbang. Minimum data yang perlu ada adalah : Nama penumpang, tempat berlepas, destinasi,no. penerbangan, jumlah yg. perlu dibayar, status bayaran [telah dibayar|belum dibayar] dan umur penumpang.
  • 4. Struktur 7 2.0 Struktur Bersarang • ahli struktur boleh terdiri dari struct yg lain. • Perhatikan pengisytiharan struktur berikut: struct struktur_pelajar { char nama[31]; int no_metrik; char kod_fakulti[5]; int umur; char jantina; int markah_projek1; int markah_projek2; int markah_projek3; int markah_ujian1; int markah_ujian2 int markah_final; char gred; } rekod_pelajar; • menstrukturkan semula rekod pelajar menggunakan pengistiharan supaya data boleh diklasifikasi mengikut kategorinya: o peribadi pelajar o markah pelajar Asas Komputeran Kejuruteraan 8 Cara 1: struct peribadi_pelajar { char nama[31]; int no_metrik; char kod_fakulti[5]; int umur; char jantina; } struct markah_pelajar { int markah_projek1; int markah_projek2; int markah_projek3; int markah_ujian1; int markah_ujian2 int markah_final; } struct pelajar { struct peribadi_pelajar peribadi; struct markah_pelajar markah; char gred; };
  • 5. Struktur 9 Cara 2: struct pelajar { struct { char nama[31]; int no_metrik; char kod_fakulti[5]; int umur; char jantina; } peribadi; struct { int markah_projek1; int markah_projek2; int markah_projek3; int markah_ujian1; int markah_ujian2 int markah_final; } markah; char gred; }; • Jika 2 p’ubah diisytiharkan: struct pelajar p1, p2; Asas Komputeran Kejuruteraan 10 Kenyatan2 berikut ada adalah sah: p1.peribadi.umur = p2.peribadi.umur; p1=p2; p1.peribadi.kod_fakulti[4] = p2.peribadi.nama[9]; strcpy(p1.peribadi.nama,”Amirah Iman”); p1.gred = ‘A’; 2.1 Umpukan nilai awal kpd struktur • Cth: struct pelajar p1 = {{“Maimunah Muhamad”, 722, FS, 20, P},{10, 10, 20,0,12,60}, ‘C’}; 2.2 Latihan Dari latihan 1.3, tambahkan fungsi berikut. Setiap penempah boleh menempah lebih dari 1 tiket utk penerbangan yg sama, ttp utk orang yg berbeza. Dengan menggunakan struktur bersarang tambahkan data: no. telepon penempah, nama penempah, tarikh & masa tempahan dibuat.
  • 6. Struktur 11 3.0 P’ubah struktur jenis tatasusunan • Penisytiharan: struct <n_struk> <n_tts>[dms]; • cth pengisytiharan: struct pelajar { int no_metrik; char nama[31]; float markah_projek; int markah_ujian; int markah_final; char gred; }; struct pelajar rekod_pelajar[3]; • Saiz tts boleh diabaikan jika nilai awal diber, cth: struct pelajar rekod_pelajar[] = { {2332, “Zainab Ismail”, 10.2, 10, 20, ‘F’}, {2335, “Ali Mamat”, 51.4, 60, 60, ‘C’}, {2337, “Malia Azri”, 100.0, 99, 99, ‘A’} }; Asas Komputeran Kejuruteraan 12 • Tts yg terbentuk: 2332 Zainab Ismail 10.2 10 20 F 2335 Ali Mamat 51.4 60 60 C 2337 Malia Azri 100.0 99 99 A gred no_metrik nama markah_projek markah_ujian markah_final • Cth memasukkan maklumat kedlm tts struktur: struct pensyarah_fsksm { int no_pekerja; struct { char nama_awal[15]; char nama_akhir[15]; } nama; int umur; float gaji; } pensy[100];
  • 7. Struktur 13 for (j=0; j<100; j++) { printf(“nmasukkan no pek, nama awal, nama akhir umur dan gaji %dn”,j+1); scanf(“%d”, pensy[j].no_pekerja); gets(pensy[j].nama.nama_awal); gets(pensy[j].nama.nama_akhir); scanf(“%d”, pensy[j].umur); scanf(“%f”,pensy[j].gaji); } 3.1 Latihan Dari latihan 2.2, tambahkan fungsi berikut. Boleh menyimpan 20 data dlm tts untuk tujuan: • kiraan bil penumpang dlm pesawat tertentu • jumlah tambang yg telah dibayar & belum dibayar. 4.0 P’ubah struktur jenis Penuding • Pengisytiharan: struct <n_struk> *<n_penuding>; Asas Komputeran Kejuruteraan 14 • Perhatikan cth berikut: struct pensyarah_fsksm { int no_pekerja; struct { char nama_awal[15]; char nama_akhir[15]; } nama; int umur; float gaji; }dayang = {777,{“Dayang”, “Jawawi”},30, 1500}; struct pensyarah_fsksm *saya, *kami; • Cth umpukan: saya = &dayang; • Cth merujuk ahli struktur menggunakan penuding: (*saya).no_pekerja @ saya->no_pekerja
  • 8. Struktur 15 • Sambungan cth di atas: struct pensyarah_fsksm pblk162[]= { {777,{“Dayang”, “Jawawi”},20, 1500}, {666,{“Normal”, “Jusoh”},30, 2500} } printf(“Alamat #1: %u #2: %un”, &pblk162[0], &pblk162[1]); kami = &pblk162[0]; printf(“Penuding #1: %u #2: %un”, kami, kami+1); printf(“1. Kami adalah %s:”, kami- >nama.nama_awal); kami++; printf(“2. Kami adalah %s:”, kami- >nama.nama_awal); • Lengkapkan rajah berikut & tulis output dari cth aturcara di atas. Asas Komputeran Kejuruteraan 16 777 Dayang . . . . . . . 1500pblk162[0] kami 666 Normal. . . . . . . . 2500pblk162[0] 4.1 Latihan Dari latihan 3.1, tukar tts kepada penuding.
  • 9. Struktur 17 5.0Operasi2 strukturdgnfungsi structrekod_pelajar {intno_id; intTugasan; intKuiz; intUjian; chargred; }; main() { structrekod_pelajaramir,naim; intjum_mar; : : data_masuk(&amir); jum_mar=kira_jumlah(amir); if(jum_mar>=60) amir.gred='L'; else amir.gred='G'; cetak(amir.gred,amir.no_id); naim=baca_data(); penghantaran alamatstrukturke fungsi penghantaran nilaistrukturke fungsi penghantaran ahlikefungsi menerimanilai strukturdpdfungsi AsasKomputeranKejuruteraan 18 voiddata_masuk(structrekod_pelajar*p) {scanf("%d",&(*p).no_id); scanf("%d%d",&p->Tugasan,&p->Kuiz); scanf("%d",&p->Ujian); } intkira_jumlah(structrekod_pelajarp) {intjum; jum=p.Tugasan+p.Kuiz+p.Ujian; returnjum; } voidcetak(chargred,intid) { printf("Gredpelajar%dialah%c", id,gred); } structrekod_pelajarbaca_data() {structrekod_pelajarp; scanf("%d",&p.no_id); scanf("%d%d",&p.Tugasan,&p.Kuiz); scanf("%d",&p.Ujian); returnp; } menerimastruktur melaluialamat menerimastruktur melaluinilai menerimaahli penghantarannilaike fungsimain
  • 10. Struktur 19 5.1 Latihan Dari latihan 3.1@ 4.1, anda dikehendaki membentukan sekurang-kurangnya 3 fungsi berikut: • baca_masukan • pengiraan • cetak_laporan 6.0 Struktur: Apa seterusnya? • Jelas struktur amat berguna utk membentuk data jenis baru yg terdiri dpd jenis2 data asas. • Bentuk data yg berbagai jenis ini mewakili data sebenar dlm. penyelesaian masalah dgn komputer. • Bentuk data ini akan distukturkan mengikut struktur-struktur tertentu spt tindanan, baris gilir & pehohon sebelum diproses. Asas Komputeran Kejuruteraan 20 7.0 Union •••• berfungsi lebih kurang sama seperti struktur • diguna untuk menyimpan jenis data yang berlainan didalam lokasi memori yang sama • boleh menjimatkan ruang bila pembolehubah tidak digunakan pada satu masa • hanya satu ahli dari satu jenis data diguna pada satu masa • pengguna menentukan bila setiap ahli sesuai digunakan • Cth mudah: #include <stdio.h> union nombor { char x; int y;}; main( ) { union nombor nilai; printf("saiz union ialah %dn", sizeof(nilai)); nilai.x = 0x41;/*ASCII 'A'*/ printf("char: %X t int:
  • 11. Struktur 21 %Xn", nilai.x, nilai.y); printf("alamat bermula pada %dn", &nilai.x); nilai.y = 0x1234; printf("char: %X t int: %Xn", nilai.x, nilai.y); printf("alamat bermula pada %dn", &nilai.y); return 0; } • Output: saiz union ialah 2 char: 41 int: 41 alamat bermula pada 6692 char: 34 int: 1234 alamat bermula pada 6692 • Bila nilai.x diumpukkan: 00 41 nilai 6692 alamat • Bila nilai.y diumpukkan: 12 34 nilai 6692 alamat Asas Komputeran Kejuruteraan 22 8.0 Pernomboran @ Enumeration • set nilai-nilai pemalar integer yagn diwakili oleh pencam. • Pengisytiharan: enum <nama_jenis_enum> { senarai_enum }; • Cth pengisytiharan jenis data BulanIslam & p’ubah: enum BulanIslam { muharram, safar, rabiulawal, rabiulakhir, jamadilawal, jamadilakhir, rejab, syaaban, ramadhan, syawal, zulkaedah, zulhijjah }; enum BulanIslam Bulan; • Apabila jenis data pernomboran diisytiharkan, pencam-pencamnya akan diumpukkan nilai integer secara automatik. • Pencam yang pertama akan diumpukkan nilai ‘0’, pecam kedua bernilai ‘1’ dan begitulah seterusnya.
  • 12. Struktur 23 • Pengaturcara boleh membuat pengubahsuaian berdasarkan peraturan- peraturan berikut: • boleh mengumpukkan nilai pemalar (constant) kepada senarai pernomboran • boleh mengumpukkan nilai kepada senarai pernomboran dengan menggunakan pencam yang sebelumnya dalam ungkapan aritmetik • boleh mengumpukkan nilai yang sama kepada lebih dari satu pencam dalam senarai pernomboran • Cth: Rekabentuk mesin jual air automatik. enum siling { satusen = 1, limasen =5,sepuluhsen= 10, samah = limasen*sepuluhsen,serial = 2*samah }; enum siling duitmasuk; Untuk kira duit yg dimasukkan oleh pembeli cukup @ tidak, diberi harga air sekotak RM1.20: Asas Komputeran Kejuruteraan 24 while (jum_duit<120) { switch(duitmasuk) { case satusen: jum_duit++; break; case limasen: jum_duit=jum_duit+ limasen; break; Case sepuluhsen: jum_duit=jum_duit+ sepuluhsen; break; case samah: jum_duit=jum_duit+ samah; break; case serial: jum_duit=jum_duit+ serial; break; } }