C programming language notes (9)

  • Published on
    05-Dec-2014

  • View
    490

  • Download
    3

DESCRIPTION

 

Transcript

  • 1. Struktur1STRUKTUR, UNION & PENOMBORANObjektif!"Pengnalan kpdstruktur dlm bhspengaturcaran C!"Memberi penekanan kpd bhg struktur ygakan digunakan dgn fungsi & tts.!"union & sistem penomboran1.0 Pengenalan Struktur satu kumpulan pembolehubah ygdikumpulkan & dirujuk di bawah satunama @ pencam. jenis data yang ditakrif oleh pengguna data terdiri dari jenis yang berlainan yangmembentuk maklumat mengenai sesuatudata berbeza dengan tatasusunan yang terdiridari jenis data yang sama Pengisytiharan:struct {;;:;} ;Asas Komputeran Kejuruteraan2 Cth:Seorang pensyarah hendak menentukan gredkepada setiap pelajarnya pada setiapsemester. Pelajar-pelajar telah menjalaniprojek, ujian dan peperiksaan akhir.Nama Data Jenis Data CNo matrik Nilai integer intNama pelajar Tatasusunanaksara 31char [31]Markah projek Nilai titikterapungfloatMarkah ujian Nilai integer intMarkah pep. akhir Nilai integer intGred Aksara char Saiz ingatan yg diperlukan utk struktur inidlm bait:2No matrik31Nama pelajar4Markah projek2Markah ujianMarkah pep. akhir2Gred1
  • 2. Struktur3struct{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;CthpengisytiharaniCthpengisytiharaniiCthpengisytiharaniiiAsas Komputeran Kejuruteraan4 Satu lagi pilihan pengisytiharan strukturmenggunakan typedef, cth:typedef struct{int no_metrik;char nama[31];int markah_projek1;int markah_projek2;int markah_projek3;int markah_ujian1;int markah_ujian2int markah_final;char gred;} JENISPELAJAR;JENISPELAJAR rekod_pelajar;1.1 Umpukan nilai awal kpd strukturstruct pelajar{int no_metrik;char nama[31];float markah_projek;int markah_ujian;int markah_final;char gred;} rekod_pelajar = {722, MaimunahMuhamad, 30.5, 10, 50, B};
  • 3. Struktur5Ataustruct 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 bolehdirujuk spt berikut:

    . Contoh cetakan nama pelajar dibuat:printf(%s, rekod_pelajar.nama); Contoh mengumpukan nilai ke no_metrik:rekod_pelajar.no_metrik = 5443;Asas Komputeran Kejuruteraan6 Untuk merujuk elemen tertentu didlmtatasusuan subskrip @ indek perludidunakan. Cth menyalin nama pelajar:struct pelajar p1, p11;for (i=0; inama.nama_awal);kami++;printf(2. Kami adalah %s:, kami->nama.nama_awal); Lengkapkan rajah berikut & tulisoutput dari cth aturcara diatas.Asas Komputeran Kejuruteraan16777 Dayang . . . . . . . 1500pblk162[0]kami666 Normal. . . . . . . . 2500pblk162[0]4.1 LatihanDari latihan 3.1, tukar tts kepada penuding.

  • 9. Struktur175.0Operasi2strukturdgnfungsistructrekod_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;elseamir.gred=G;cetak(amir.gred,amir.no_id);naim=baca_data();penghantaranalamatstrukturkefungsipenghantarannilaistrukturkefungsipenghantaranahlikefungsimenerimanilaistrukturdpdfungsiAsasKomputeranKejuruteraan18voiddata_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;}menerimastrukturmelaluialamatmenerimastrukturmelaluinilaimenerimaahlipenghantarannilaikefungsimain
  • 10. Struktur195.1 LatihanDari latihan 3.1@ 4.1, anda dikehendakimembentukan sekurang-kurangnya 3 fungsiberikut: baca_masukan pengiraan cetak_laporan6.0 Struktur: Apa seterusnya? Jelas struktur amat berguna utk membentukdata jenis baru yg terdiri dpd jenis2dataasas. Bentuk data yg berbagai jenis ini mewakilidata sebenar dlm. penyelesaian masalahdgn komputer. Bentuk data ini akan distukturkan mengikutstruktur-struktur tertentu spt tindanan, barisgilir & pehohon sebelum diproses.Asas Komputeran Kejuruteraan207.0 Union berfungsi lebih kurang sama seperti struktur diguna untuk menyimpan jenis data yangberlainan didalam lokasi memori yang sama boleh menjimatkan ruang bilapembolehubah tidak digunakan pada satumasa hanya satu ahli dari satu jenis data digunapada satu masa pengguna menentukan bila setiap ahlisesuai digunakan Cth mudah:#include 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. Struktur21%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 2char: 41 int: 41alamat bermula pada 6692char: 34 int: 1234alamat bermula pada 6692 Bila nilai.x diumpukkan:00 41nilai6692alamat Bila nilai.y diumpukkan:12 34nilai6692alamatAsas Komputeran Kejuruteraan228.0 Pernomboran @ Enumeration set nilai-nilai pemalar integer yagn diwakilioleh pencam. Pengisytiharan:enum {senarai_enum}; Cth pengisytiharan jenis data BulanIslam& pubah:enum BulanIslam{muharram, safar, rabiulawal,rabiulakhir, jamadilawal,jamadilakhir, rejab,syaaban, ramadhan, syawal,zulkaedah, zulhijjah};enum BulanIslam Bulan; Apabila jenis data pernomborandiisytiharkan, pencam-pencamnya akandiumpukkan nilai integer secara automatik. Pencam yang pertama akan diumpukkannilai 0, pecam kedua bernilai 1 danbegitulah seterusnya.
  • 12. Struktur23 Pengaturcara boleh membuatpengubahsuaian berdasarkan peraturan-peraturan berikut: boleh mengumpukkan nilai pemalar(constant) kepada senarai pernomboran boleh mengumpukkan nilai kepadasenarai pernomboran denganmenggunakan pencam yang sebelumnyadalam ungkapan aritmetik boleh mengumpukkan nilai yang samakepada lebih dari satu pencam dalamsenarai 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 pembelicukup @ tidak, diberi harga air sekotakRM1.20:Asas Komputeran Kejuruteraan24while (jum_duit