View
213
Download
0
Tags:
Embed Size (px)
Citation preview
1
Structures Containing Arrays This type of structure can be declared
in C. In other word, each item in array
is a structure itself.
Example:
struct tarikh cuti[3];
Allocation for 3 dates
2
Structures Containing Arrays
???hari
bulan
tahun
tarikhLahir
???
???
???hari
bulan
tahun
???
???
???hari
bulan
tahun
???
???
???hari
bulan
tahun
???
???
cuti
struct tarikh tarikhLahir;
struct tarikh cuti[3];
3
Structures Containing Arrays???hari
bulan
tahun
???
???
???hari
bulan
tahun
???
???
???hari
bulan
tahun
???
???
cuti
struct tarikh cuti[3];cuti[0].hari = 1;cuti[0].bulan = 1;cuti[0].tahun = 2004;cuti[1].hari = 1;cuti[1].bulan = 6;cuti[1].tahun = 2004;scanf("%d%d%d",
&(cuti[2].hari),&(cuti[2].bulan),&(cuti[2].tahun));
[0]
[1]
[2]
4
Structures Containing Arrays1hari
bulan
tahun
1
2004
???hari
bulan
tahun
???
???
???hari
bulan
tahun
???
???
cuti
[0]
[1]
[2]
struct tarikh cuti[3];cuti[0].hari = 1;cuti[0].bulan = 1;cuti[0].tahun = 2004;cuti[1].hari = 1;cuti[1].bulan = 6;cuti[1].tahun = 2004;scanf("%d%d%d",
&(cuti[2].hari),&(cuti[2].bulan),&(cuti[2].tahun));
5
Structures Containing Arrays1hari
bulan
tahun
1
2004
1hari
bulan
tahun
6
2004
???hari
bulan
tahun
???
???
cuti
[0]
[1]
[2]
struct tarikh cuti[3];cuti[0].hari = 1;cuti[0].bulan = 1;cuti[0].tahun = 2004;cuti[1].hari = 1;cuti[1].bulan = 6;cuti[1].tahun = 2004;scanf("%d%d%d",
&(cuti[2].hari),&(cuti[2].bulan),&(cuti[2].tahun));
6
Structures Containing Arrays1hari
bulan
tahun
1
2004
1hari
bulan
tahun
6
2004
20hari
bulan
tahun
3
2004
cuti
[0]
[1]
[2]
struct tarikh cuti[3];cuti[0].hari = 1;cuti[0].bulan = 1;cuti[0].tahun = 2004;cuti[1].hari = 1;cuti[1].bulan = 6;cuti[1].tahun = 2004;scanf("%d%d%d",
&(cuti[2].hari),&(cuti[2].bulan),&(cuti[2].tahun));
20 3 2004 _
7
Structures Containing An Item of structure This type of structure is more complex.
Example:struct cuti {
char nama[15];
struct tarikh trkh;
};Item of trkh is an item of structure
8
Example:struct cuti {
char nama[15];struct tarikh trkh;
};struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");cuti_am.trkh.hari = 1;cuti_am.trkh.bulan = 1;cuti_am.trkh.tahun = 2004;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nama
cuti_am ???hari
bulan
tahun
???
???
trkh
9
Example:struct cuti {
char nama[15];struct tarikh trkh;
};struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");cuti_am.trkh.hari = 1;cuti_am.trkh.bulan = 1;cuti_am.trkh.tahun = 2004;
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
cuti_am ???hari
bulan
tahun
???
???
trkh
10
Example:struct cuti {
char nama[15];struct tarikh trkh;
};struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");cuti_am.trkh.hari = 1;cuti_am.trkh.bulan = 1;cuti_am.trkh.tahun = 2004;
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
cuti_am 1hari
bulan
tahun
1
2004
trkh
11
Example:struct cuti {
char nama[15];struct tarikh trkh;
};
struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan),
&(cuti_am.trkh.tahun));
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?nama
cuti_am ???hari
bulan
tahun
???
???
trkh
12
Example:struct cuti {
char nama[15];struct tarikh trkh;
};
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
cuti_am ???hari
bulan
tahun
???
???
trkh
struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan),
&(cuti_am.trkh.tahun));
13
Contoh:struct cuti {
char nama[15];struct tarikh trkh;
};
struct cuti cuti_am;strcpy(cuti_am.nama, "Tahun Baru");scanf("%d%d%d", &(cuti_am.trkh.hari), &(cuti_am.trkh.bulan),
&(cuti_am.trkh.tahun));
1 1 2004 _
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
cuti_am 1hari
bulan
tahun
1
2004
trkh
14
Bear in mind!!! The item of structure
cannot be the type of that structure
Example :struct cuti {
char nama[15];
struct cuti cutilain;
};
ERROR!
16
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
???hari bulan tahun ??????tkh
17
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
Contoh:1 3 2004 _
18
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
Contoh:1 3 2004 _
19
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
Contoh:1 3 2004 _
20
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
1 1 2004 _
1hari bulan tahun 20041t1
1hari bulan tahun 20043t2
21
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
1 1 2004 _
1hari bulan tahun 20041t1
1hari bulan tahun 20043t2
22
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
1 1 2004 _
1hari bulan tahun 20041t1
1hari bulan tahun 20043t2
23
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
1 1 2004 _
1hari bulan tahun 20041t1
1hari bulan tahun 20043t2
24
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
0
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
25
int main() { struct cuti hari_cuti = { "Tahun Baru", 1, 1, 2004 }; struct tarikh tkh; scanf("%d%d%d", &tkh.hari, &tkh.bulan, &tkh.tahun); if (sama(hari_cuti.trkh, tkh)) printf("%s", hari_cuti.nama);}int sama(struct tarikh t1, struct tarikh t2) { if ( t1.hari == t2.hari && t1.bulan == t2.bulan &&
t1.tahun == t2.tahun) return 1; else return 0;}
'T''a''h''u''n' ' ' 'B''a''r''u''\0' ? ? ? ?nama
1hari bulan tahuntrkh 20041hari_cuti
1hari bulan tahun 20043tkh
1 3 2004 _
26
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
27
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
28
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
???hari bulan tahunt1 ??? ???
???hari bulan tahunt2 ??? ???
??? s_tbil ???
29
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
???hari bulan tahunt2 ??? ???
2 s_tbil
30
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
???hari bulan tahunt2 ??? ???
2 s_tbili ???
31
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili ???
32
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili ???
33
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 0
34
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
2hari bulan tahun1 2000
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 0
35
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 0
36
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 1
37
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
3hari bulan tahunsen
2 2000
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 1
38
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
8hari bulan tahunsen
31 1957
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 1
39
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
8hari bulan tahunsen
31 1957
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 2
40
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
8hari bulan tahunsen
31 1957
8hari bulan tahunt1 31 1957
8hari bulan tahunt2 31 1957
2 s_tbili 2
41
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
8hari bulan tahunsen
31 1957
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
42
int main() { struct tarikh sen[2] = { {1, 2, 2000}, {2, 3, 2000} }; struct tarikh tkh1 = { 31, 8, 1957 }; struct tarikh tkh2; setTarikh(tkh1, tkh2, sen, 2);}int setTarikh(struct tarikh t1, struct tarikh t2, struct tarikh s_t[], int bil) { int i; t2 = t1; for (i=0; i < bil; i++) s_t[i] = t1;}
8hari bulan tahun31 1957
8hari bulan tahunsen
31 1957
8hari bulan tahuntkh1 31 1957
???hari bulan tahuntkh2 ??? ???
43
Function can be used to return a
structure. That’s mean, function
can be initialized as structure type
44
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahuntarikhLahir ??? ???
???hari bulan tahun??? ???tarikhMasuk
45
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahuntarikhLahir ??? ???
???hari bulan tahun??? ???tarikhMasuk
46
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahuntarikhLahir ??? ???
???hari bulan tahun??? ???tarikhMasuk
47
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahun??? ???t
48
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahun28 ???t
Contoh:
Hari: 28_
49
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahun28 ???t
Contoh:
Hari: 28Bulan: 4_
50
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahun28 2002t
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
51
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahun28 2002t
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
{ 28, 4, 2002 }
52
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
4hari bulan tahuntarikhLahir 28 2002
???hari bulan tahun??? ???tarikhMasuk
53
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahuntarikhLahir 28 2002
???hari bulan tahun??? ???tarikhMasuk
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
54
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahuntarikhLahir 28 2002
???hari bulan tahun??? ???tarikhMasuk
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
55
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahun??? ???t
Contoh:
Hari: 28Bulan: 4Tahun: 2002_
56
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
???hari bulan tahun20 ???t
Contoh:
Hari: 28Bulan: 4Tahun: 2002Hari: 20_
57
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
10hari bulan tahun20 ???t
Contoh:
Bulan: 4Tahun: 2002Hari: 20Bulan: 10_
58
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
10hari bulan tahun20 1999t
Contoh:
Tahun: 2002Hari: 20Bulan: 10Tahun: 1999_
59
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
10hari bulan tahun20 1999t
{ 20, 10, 1999 }
Contoh:
Tahun: 2002Hari: 20Bulan: 10Tahun: 1999_
60
int main() { struct tarikh tarikhLahir, tarikhMasuk; tarikhLahir = inputTarikh(); tarikhMasuk = inputTarikh();}struct tarikh inputTarikh() { struct tarikh t; printf("Hari: "); scanf("%d", &t.hari); printf("Bulan: "); scanf("%d", &t.bulan); printf("Tahun: "); scanf("%d", &t.tahun); return t;}
4hari bulan tahuntarikhLahir 28 2002
10hari bulan tahun20 1999tarikhMasuk
Contoh:
Tahun: 2002Hari: 20Bulan: 10Tahun: 1999_
61
Type-defined structure (typedef) typedef is the most powerful tools to
declare a structure. Note that the
typedef name is all UPPERCASE.
Example :
typedef float METER;
METER lebar, tinggi;
62
Example:
struct pelajar { char nama[15]; struct tarikh tarikhMasuk;};typedef struct pelajar PELAJAR;
int main() { PELAJAR pelajar; gets(pelajar.nama); scanf("%d%d%d", &pelajar.tarikhMasuk.hari, &pelajar.tarikhMasuk.bulan, &pelajar.tarikhMasuk.tahun); ...}
63
Example:
typedef struct pelajar { char nama[15]; struct tarikh tarikhMasuk;} PELAJAR;
int main() { PELAJAR pelajar; gets(pelajar.nama); scanf("%d%d%d", &pelajar.tarikhMasuk.hari, &pelajar.tarikhMasuk.bulan, &pelajar.tarikhMasuk.tahun); ...}
64
An example of using structure Problem : Write a program that can
receive a date and produce the number
of days from 1st January to the specific
date.
65
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
???hari bulan tahun??? ???tkh
bil ???
66
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
???hari bulan tahun??? ???tkh
bil ???
67
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
???hari bulan tahun??? ???t
68
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
2hari bulan tahun4 2004t
Contoh:
Masukkan tarikh: 4 2 2004_
69
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
2hari bulan tahun4 2004t
Contoh:
Masukkan tarikh: 4 2 2004_
{ 4, 2, 2004 }
70
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil ???
Contoh:
Masukkan tarikh: 4 2 2004_
71
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil ???
Contoh:
Masukkan tarikh: 4 2 2004_
72
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
Contoh:
Masukkan tarikh: 4 2 2004_
73
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah ???
bulan ???
Contoh:
Masukkan tarikh: 4 2 2004_
74
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan ???
Contoh:
Masukkan tarikh: 4 2 2004_
75
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan ???
Contoh:
Masukkan tarikh: 4 2 2004_
76
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan 1
Contoh:
Masukkan tarikh: 4 2 2004_
77
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan 1
Contoh:
Masukkan tarikh: 4 2 2004_
78
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan 1
Contoh:
Masukkan tarikh: 4 2 2004_
79
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }}
2hari bulan tahun4 2004t
jumlah 0
bulan 1
Contoh:
Masukkan tarikh: 4 2 2004_
bulan 1
tahun 2004
80
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
bulan 1
tahun 2004
81
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
bulan 1
tahun 2004
82
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
bulan 1
tahun 200431
83
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
2hari bulan tahun4 2004t
jumlah 31
bulan 1
84
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
2hari bulan tahun4 2004t
jumlah 31
bulan 2
85
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
2hari bulan tahun4 2004t
jumlah 31
bulan 2
86
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
2hari bulan tahun4 2004t
jumlah 35
bulan 2
87
int kiraHari(TARIKH t) { int jumlah, bulan; jumlah = 0; for (bulan=1; bulan < t.bulan; bulan++) jumlah = jumlah + jumHari(bulan, t.tahun); jumlah = jumlah + t.hari; return jumlah; }int jumHari(int bulan, int tahun) { switch (bulan) { case 2: if (tahun % 4 == 0) return 29; else return 28; case 4: case 6: case 9: case 11: return 30; default: return 31; }} Contoh:
Masukkan tarikh: 4 2 2004_
2hari bulan tahun4 2004t
jumlah 35
bulan 235
88
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil 35
Contoh:
Masukkan tarikh: 4 2 2004_
89
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil 35
Contoh:
Masukkan tarikh: 4 2 2004_
90
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
2hari bulan tahun4 2004t
bilHari 35
Contoh:
Masukkan tarikh: 4 2 2004_
91
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
2hari bulan tahun4 2004t
bilHari 35
Contoh:
Masukkan tarikh: 4 2 20044/2/2004 adalah hari ke-35 dalam tahun 2004_
92
TARIKH bacaTarikh() { struct tarikh t; printf("Masukkan tarikh: "); scanf("%d%d%d", &t.hari, &t.bulan, &t.tahun); return t;}void outputHasil(TARIKH t, int bilHari) { printf("%d/%d/%d adalah hari ke-%d dalam tahun %d\n", t.hari, t.bulan, t.tahun, bilHari, t.tahun);}
2hari bulan tahun4 2004t
bilHari 35
Contoh:
Masukkan tarikh: 4 2 20044/2/2004 adalah hari ke-35 dalam tahun 2004_
93
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil 35
Contoh:
Masukkan tarikh: 4 2 20044/2/2004 adalah hari ke-35 dalam tahun 2004_
94
#include <stdio.h>typedef struct tarikh { int hari, bulan, tahun;} TARIKH;
TARIKH bacaTarikh();int kiraHari(TARIKH);void outputHasil(TARIKH, int);int jumHari(int, int);
int main() { TARIKH tkh; int bil; tkh = bacaTarikh(); bil = kiraHari(tkh); outputHasil(tkh, bil);}
2hari bulan tahun4 2004tkh
bil 35
Contoh:
Masukkan tarikh: 4 2 20044/2/2004 adalah hari ke-35 dalam tahun 2004_