340 likes | 505 Views
Knowledge Understand the concept of structure data types Skills Able to write application program using structure. Structure. Introduction. Here is the list of students’ details: Nama nombor kad pengenalan nombor matrik tahun kemasukan. It could be represented by :.
E N D
KnowledgeUnderstand the concept of structure data typesSkillsAble to write application program using structure Structure
Introduction • Here is the list of students’ details: • Nama • nombor kad pengenalan • nombor matrik • tahun kemasukan
It could be represented by : char nama[15], noKP[15], matrik[7]; int tahunMasuk; • C was provided with an alternative approaches to combined students’ detail. • C used structure
Structure Initialization • This C’s features specifically used for combining various types of data • Structure can be initialized by struct. Here is the general structure of struct: • struct structure_name { takrifan_unsur_1 takrifan_unsur_2 ... takrifan_unsur_n };
Example of Structure Initialization • Example: struct pelajar { char nama[15], noKP[15], matrik[7]; int tahunMasuk; }; • Example: struct tarikh { int hari, bulan, tahun; };
Initialize structure variables struct pelajar { char nama[15], noKP[15], matrik[7]; int tahunMasuk; }; • Structure variables can be used for allocating data. • Example: struct pelajar p1; nama noKP p1 matrik tahunMasuk
Initialize structure variables • Structure variables can also be declared at the end of struct declaration. • Example: struct tarikh { int hari, bulan, tahun; } tarikhLahir, tarikhMasuk; hari hari bulan bulan tahun tahun tarikhMasuk tarikhLahir
Initialize structure variables • Example: struct tarikh tarikhLahir = {31, 10, 1966}; hari 31 bulan 10 tahun 1966 tarikhLahir
Initialize structure variables struct tarikh { int hari, bulan, tahun; }; • Example : struct tarikh tarikhLahir = {31, 10, 1966}; hari 31 bulan 10 tahun 1966 tarikhLahir
Initialize structure variables struct tarikh { int hari, bulan, tahun; }; • Example : struct tarikh tarikhLahir = {31, 10, 1966}; hari 31 bulan 10 tahun 1966 tarikhLahir
Declaration of structure variables struct tarikh { int hari, bulan, tahun; }; • Example : struct tarikh tarikhLahir = {31, 10, 1966}; hari 31 bulan 10 tahun 1966 tarikhLahir
struct pelajar { char nama[15], noKP[15], matrik[7]; int tahunMasuk; }; Declaration of structure variables • Example: struct pelajar ketua = {"A Bin B", "651230-01-5298", "A34444", 1990}; nama 'A' ' ' 'B' 'i' 'n' ' ' 'B' '\0' noKP '6' '5' '1' '2' '3' '0' '-' '0' '1' '-' '5' '2' '9' '8' '\0' ketua matrik 'A' '3' '4' '4' '4' '4' '\0' tahunMasuk 1990
Accessing structures • Structure item can be accessed by pointer operator and item name. • Example: struct tarikh hariIni; hariIni.hari = 8; hariIni.bulan = 9; hariIni.tahun = 2003; hari ??? bulan ??? tahun ??? hariIni
Accessing structures • Structure item can be accessed by pointer operator and item name. • Example: struct tarikh hariIni; hariIni.hari = 8; hariIni.bulan = 9; hariIni.tahun = 2003; hari 8 bulan ??? tahun ??? hariIni
Accessing structures • Structure item can be accessed by pointer operator and item name. • Example : struct tarikh hariIni; hariIni.hari = 8; hariIni.bulan = 9; hariIni.tahun = 2003; hari 8 bulan 9 tahun ??? hariIni
Accessing structures • Structure item can be accessed by pointer operator and item name. • Example : struct tarikh hariIni; hariIni.hari = 8; hariIni.bulan = 9; hariIni.tahun = 2003; hari 8 bulan 9 tahun 2003 hariIni
Accessing structures • Example: struct pelajar p1; strcpy(p1.nama, "C Bin D"); strcpy(p1.noKP, "661122-02-5554"); strcpy(p1.matrik, "A11122"); p1.tahunMasuk = 1990; nama ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? noKP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Accessing structures • Example struct pelajar p1; strcpy(p1.nama, "C Bin D"); strcpy(p1.noKP, "661122-02-5554"); strcpy(p1.matrik, "A11122"); p1.tahunMasuk = 1990; nama 'C' ' ' 'B' 'i' 'n' ' ' 'D' '\0' noKP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Accessing structures • Example struct pelajar p1; strcpy(p1.nama, "C Bin D"); strcpy(p1.noKP, "661122-02-5554"); strcpy(p1.matrik, "A11122"); p1.tahunMasuk = 1990; nama 'C' ' ' 'B' 'i' 'n' ' ' 'D' '\0' noKP '6' '6' '1' '1' '2' '2' '-' '0' '2' '-' '5' '5' '5' '4' '\0' p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Accessing structures • Example struct pelajar p1; strcpy(p1.nama, "C Bin D"); strcpy(p1.noKP, "661122-02-5554"); strcpy(p1.matrik, "A11122"); p1.tahunMasuk = 1990; nama 'C' ' ' 'B' 'i' 'n' ' ' 'D' '\0' noKP '6' '6' '1' '1' '2' '2' '-' '0' '2' '-' '5' '5' '5' '4' '\0' p1 matrik 'A' '1' '1' '1' '2' '2' '\0' tahunMasuk ???
Accessing structures • Example struct pelajar p1; strcpy(p1.nama, "C Bin D"); strcpy(p1.noKP, "661122-02-5554"); strcpy(p1.matrik, "A11122"); p1.tahunMasuk = 1990; nama 'C' ' ' 'B' 'i' 'n' ' ' 'D' '\0' noKP '6' '6' '1' '1' '2' '2' '-' '0' '2' '-' '5' '5' '5' '4' '\0' p1 matrik 'A' '1' '1' '1' '2' '2' '\0' tahunMasuk 1990
Accessing structures • Example struct tarikh tarikhLahir; printf("Masukkan tarikh lahir: "); scanf("%d%d%d", &(tarikhLahir.hari), &(tarikhLahir.bulan), &(tarikhLahir.tahun)); printf("Tarikh lahir anda: %d/%d/%d\n", tarikhLahir.hari, tarikhLahir.bulan, tarikhLahir.tahun); hari ??? bulan ??? tahun ??? tarikhLahir
Masukkan tarikh lahir: _ Accessing structures • Example: struct tarikh tarikhLahir; printf("Masukkan tarikh lahir: "); scanf("%d%d%d", &(tarikhLahir.hari), &(tarikhLahir.bulan), &(tarikhLahir.tahun)); printf("Tarikh lahir anda: %d/%d/%d\n", tarikhLahir.hari, tarikhLahir.bulan, tarikhLahir.tahun); hari ??? bulan ??? tahun ??? tarikhLahir
Masukkan tarikh lahir: 19 4 2001 _ Accessing structures • Example struct tarikh tarikhLahir; printf("Masukkan tarikh lahir: "); scanf("%d%d%d", &(tarikhLahir.hari), &(tarikhLahir.bulan), &(tarikhLahir.tahun)); printf("Tarikh lahir anda: %d/%d/%d\n", tarikhLahir.hari, tarikhLahir.bulan, tarikhLahir.tahun); hari 19 bulan 4 tahun 2001 tarikhLahir
Masukkan tarikh lahir: 19 4 2001 Tarikh lahir anda: 19/4/2001 _ Accessing structures • Example struct tarikh tarikhLahir; printf("Masukkan tarikh lahir: "); scanf("%d%d%d", &(tarikhLahir.hari), &(tarikhLahir.bulan), &(tarikhLahir.tahun)); printf("Tarikh lahir anda: %d/%d/%d\n", tarikhLahir.hari, tarikhLahir.bulan, tarikhLahir.tahun); hari 19 bulan 4 tahun 2001 tarikhLahir
Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? noKP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Nama, no KP, matrik, tahun? _ Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? noKP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Nama, no KP, matrik, tahun? E Bin F _ Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama 'E' ' ' 'B' 'i' 'n' ' ' 'F' '\0' noKP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Nama, no KP, matrik, tahun? E Bin F 711010-03-5100 _ Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama 'E' ' ' 'B' 'i' 'n' ' ' 'F' '\0' noKP '7' '1' '1' '0' '1' '0' '-' '0' '3' '-' '5' '1' '0' '0' '\0' p1 matrik ? ? ? ? ? ? ? tahunMasuk ???
Nama, no KP, matrik, tahun? E Bin F 711010-03-5100 A23324 _ Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama 'E' ' ' 'B' 'i' 'n' ' ' 'F' '\0' noKP '7' '1' '1' '0' '1' '0' '-' '0' '3' '-' '5' '1' '0' '0' '\0' p1 matrik 'A' '2' '3' '3' '2' '4' '\0' tahunMasuk ???
E Bin F 711010-03-5100 A23324 1997 _ Accessing structures • Example struct pelajar p1; printf("Nama, no KP, matrik, tahun?\n"); gets(p1.nama); gets(p1.noKP); gets(p1.matrik); scanf("%d", &(p1.tahun)); nama 'E' ' ' 'B' 'i' 'n' ' ' 'F' '\0' noKP '7' '1' '1' '0' '1' '0' '-' '0' '3' '-' '5' '1' '0' '0' '\0' p1 matrik 'A' '2' '3' '3' '2' '4' '\0' tahunMasuk 1997
Accessing structures • Structure can be assigned to another structure • Example: struct tarikh hariIni, salinan; scanf("%d%d%d", &(hariIni.hari), &(hariIni.bulan), &(hariIni.tahun)); salinan = hariIni; hari hari ??? ??? bulan bulan ??? ??? tahun tahun ??? ??? hariIni salinan
8 9 2003 _ Accessing structures • Structure can be assigned to another structure • Example: struct tarikh hariIni, salinan; scanf("%d%d%d", &(hariIni.hari), &(hariIni.bulan), &(hariIni.tahun)); salinan = hariIni; hari hari 8 ??? bulan bulan 9 ??? tahun tahun 2003 ??? hariIni salinan
8 9 2003 _ Accessing structures • Structure can be assigned to another structure • Example: struct tarikh hariIni, salinan; scanf("%d%d%d", &(hariIni.hari), &(hariIni.bulan), &(hariIni.tahun)); salinan = hariIni; hari hari 8 8 bulan bulan 9 9 tahun tahun 2003 2003 hariIni salinan