Professional Documents
Culture Documents
Chap 3
Chap 3
Pengaturcaraan Modular/Fungsi
Fungsi Takrifan Pengguna
Elemen-elemen Fungsi : takrifan ,prototaip
dan panggilan fungsi
Jenis-jenis Fungsi
Skop Pembolehubah
DIT 1104 - Pengaturcaraan 2
FUNGS satu bahagian aturcara untuk melakukan tugas,
ditulis dan diuji secara berasingan
Prototaip fungsi
Elemen penting Takrifan fungsi
dalam fungsi
Panggilan fungsi
DIT 1104 - Pengaturcaraan 3
Pemecahan Modul
#include <stdio.h>
void main()
{ int a,b, hasildarab,hasiltambah,hasiltolak;
int hasilbahagi; //Mendapatkan nilai
printf(“\nMasukkan dua nombor integer”);
//Mendapatkan nilai
printf(“\nMasukkan dua nombor integer”); scanf(“%d %d”, &a, &b);
scanf(“%d %d”, &a, &b);
Jenis fungsi
Senarai parameter
-Tempat menentukan bilangan dan jenis data yang diterima
-Parameter adalah pembolehubah sementara
-Dikenali juga sebagai argumen
Pernyataan C
-Keratan aturcara untuk melaksanakan tugas-tugas fungsi
-Dimulakan dengan { dan ditutup dengan } .
DIT 1104 - Pengaturcaraan 8
Elemen-elemen fungsi(samb..)
Contoh:
1. void Cetak_segiempat (void)
{ int panjang, lebar;
2. void mesej()
{
printf(“\nHello”);
printf(“\nSelamat pagi”);
printf(“\nSelamat datang”);
}
-Pengisytiharan fungsi
-Perlu ditulis dalam aturcara sebelum penakrifan fungsi
-Memberitahu kepada pengkompil bahawa aturcara mengandungi
takrifan fungsi.
Format:
jenis_fungsi nama_fungsi(jenis paramater);
Cth:
void mesej();
void Cetak_segiempat(void);
int Kira_harga(int);
mesej();
Cetak_segiempat();
Kira_harga(harga);
void main()
{
Prototaip fungsi:
Ditulis pada bahagian atas sebelum fungsi
void mesej(); main()
Panggilan fungsi:
Ditulis pada bahagian dalam fungsi
mesej(); main()
Takrifan fungsi:
void mesej()
{ printf(“\nHello”);
printf(“\nSelamat pagi”); Ditulis pada bahagian atas atau
printf(“\nSelamat datang”); bawah fungsi main()
}
DIT 1104 - Pengaturcaraan 13
Elemen-elemen fungsi(samb..)
Contoh 1:
#include <stdio.h>
void main()
{
mesej(); //panggilan fungsi
}
void mesej()
{ printf(“\nHello”);
printf(“\nSelamat pagi”); Takrifan fungsi
printf(“\nSelamat datang”);
} DIT 1104 - Pengaturcaraan 14
Elemen-elemen fungsi(samb..)
Contoh 2:
kira_diskaun(harga);
}
DIT 1104 - Pengaturcaraan 15
Elemen-elemen fungsi(samb..)
Contoh 3:
Contoh 4:
#include <stdio.h> void input()
{ printf(“Nilai x ?”);
void input(); scanf(“%d”,&x);
void output(); printf(“\nNilai y ?”);
scanf(“%d”,&y);
int x,y; output(); 2 5
void main() }
{
input(); 1 void output()
output(); { printf(“\nNilai x = %d”,x);
3
input(); printf(“\nNilai y = %d”,y);
} 4 }
Contoh
#include <stdio.h>
Diisytiharkan sebelum int a,b;
fungsi main() float c;
void main()
{ }
DIT 1104 - Pengaturcaraan 18
Skop pembolehubah (samb..)
Contoh
void dapatnilai()
{ int z;
…………
}
DIT 1104 - Pengaturcaraan 19
Skop pembolehubah (samb..)
Contoh 1:
#include <stdio.h>
void main()
{ printf(“\nMasukkan nilai a dan b:”);
scanf(“%d %d”,&a,&b);
paparnilai();
}
void paparnilai()
{
printf(“Nilai a ialah % dan b ialah %d”, a,b);
}
DIT 1104 - Pengaturcaraan 20
Skop pembolehubah (samb..)
Contoh 2:
#include <stdio.h> Output?
int a,b; //pembolehubah sejagat
void paparnilai();
void main()
{ int c;
a= 5;
b = 9;
c = 12;
paparnilai();
printf(“\nNilai c ialah %d”, c);
}
void paparnilai()
{
printf(“\nNilai a ialah %d”,a);
printf(“\nNilai b ialah %d”,b);
printf(“\nNilai c ialah %d”,c);
DIT 1104 - Pengaturcaraan 21
}
Skop pembolehubah (samb..)
Contoh 3:
#include <stdio.h> Output?
void paparnilai();
void main()
{ int c;
a= 5;
b = 9;
c = 12;
paparnilai();
printf(“\nNilai c ialah %d”, c);
}
void paparnilai()
{ int a,b;
printf(“\nNilai a ialah %d”,a);
printf(“\nNilai b ialah %d”,b);
}
DIT 1104 - Pengaturcaraan 22
Skop pembolehubah (samb..)
Contoh 4:
#include <stdio.h>
void fungsi1()
void fungsi1(); { int i,j ;
void fungsi2(); i= 3;
int z; j = i;
printf(“\nNilai i ialah %d”,i);
void main() printf(“\nNilai j ialah %d”,j);
{ fungsi1(); }
x = 7;
z = 15; void fungsi2()
fungsi2(); { int x = 4;
} z = j;
printf(“\nNilai x ialah %d”,x);
printf(“\nNilai z ialah %d”,z);
}
Cth:
void fungsi_satu(void);
void fungsi_dua(void);
Cth:
void fungsi_satu(int);
void fungsi_dua(int,int);
void fungsi_tiga(int,float,int);
Tidak pulang nilai Terima dua nilai berjenis integer dan satu nilai float
DIT 1104 - Pengaturcaraan 27
Jenis-jenis fungsi (samb..)
Cth 1:
Prototaip: #include <stdio.h>
void fungsi1(int);
void fungsi1(int);
Panggilan:
fungsi1(a); void main()
{ int a ;
Takrifan: printf(“Dapatkan nilai :”);
scanf(“%d”,&a);
void fungsi1(int a) fungsi1(a);
{ printf(“Nilai a ialah %d”,a); }
}
void fungsi1(int a)
{ printf(“Nilai a ialah %d”,a); }
Cth:
int fungsi_satu(int);
float fungsi_dua(int,int);
int fungsi_tiga(int,float,int);
Pulang nilai Terima dua nilai berjenis integer dan satu nilai float
DIT 1104 - Pengaturcaraan 30
Jenis-jenis fungsi (samb..)
Prototaip: #include <stdio.h>
float kira_diskaun(int); void cetak_diskaun(int);
float diskaun;
Panggilan:
void main()
kira_diskaun(kuantiti);
{ int kuantiti ;
printf(“Masukkan kuantiti :”);
Takrifan: scanf(“%d”,&kuantiti);
printf(“Diskaun %d”,cetak_diskaun(kuantiti));
float kira_diskaun(int b) }
{ if (b > 1000)
diskaun = 0.5; float kira_diskaun(int b)
else { if (b > 1000)
diskaun = 0.5;
diskaun = 0.1;
else
return diskaun; diskaun = 0.1;
} return diskaun;
}
DIT 1104 - Pengaturcaraan 31
Latih tubi:
1. Tuliskan prototaip fungsi bagi pernyataan berikut:
int main() {
int num1, num2;
char ch;
num1 = 10; num2 = 15; ch = 'A';
cout << "Line 4 : inside main : num 1 = "<<num1<< ",num2 ="<<num2;
cout << " and ch = " <<ch<<endl;
funOne(num1, num2,ch);
cout << "Line 6 : After funOne : num 1 = "<<num1<< ", num2 ="<<num2;
cout << " and ch = " <<ch<<endl;
funTwo(num2, 25,ch);
cout << "Line 8 : After funTwo : num 1 = "<<num1<< ", num2 ="<<num2;
cout << " and ch = " <<ch<<endl;
return 0; }
Output:
Line 4 : inside main : num 1 = 10, num2 = 15 and ch = A
Line 13 : inside funOne : num a = 10, b = 30 and v = B
Line 6 : after funOne : num 1 = 10, num2 = 30 and ch = A
Line 17 : inside funTwo : num x = 31, y = 50 and w = G
Line 8 : after funTwo: num 1 = 10, num2 = 31 and ch = G
int main()
{
int num=5;
cout << "Line 1: inside main : num = " << num << endl;
addFirst(num, num);
cout << "Line 3: inside main after addFirst: num = " << num << endl;
doubleFirst(num, num);
cout << "Line 5: inside main after doubleFirst: num = " << num << endl;
squareFirst(num, num);
cout << "Line 7: inside main after squareFirst: num = " << num << endl;
return 0;
}
first = first + 2;
cout << "Line 10: inside addFirts: first = " << first ;
cout << "second : "<< second << endl;
second = second*2;
cout << "Line 12: inside addFirts: first = " << first ;
cout << "second : "<< second << endl; }
DIT 1104 - Pengaturcaraan 36
void doubleFirst (int one, int two)
{
cout << "Line 13: inside doubleFirst: one = " << one ;
cout << "two : "<< two << endl;
one = one * 2;
cout << "Line 15: inside doubleFirst: one = " << one ;
cout << "two : "<< two << endl;
two= two + 2;
cout << "Line 17: inside doubleFirsts: one = " << one ;
cout << "two : "<< two << endl;
}
int t;
void funOne(int a, int& b, char v);
int main() {
int num1, num2;
num1 = 10; num2 = 20; t = 15;
cout << "Line 4 : inside main : num 1 = "<<num1<< ",num2 ="<<num2;
cout << " and t = " <<t<<endl;
funOne(num1, t);
cout << "Line 6 : inside main After funOne : num 1 = "<<num1<< ", num2 ="<<num2;
cout << " and t = " <<t<<endl;
return 0; }
z = a + x;
cout << "Line 9 : Inside funOne1 : a = "<< a << ",x ="<<x;
cout << " z = " << z << " and t = " << t <<endl;
x = x + 5;
cout << "Line 11 : Inside funOne1 : a = "<< a << ",x ="<<x;
cout << " z = " << z << " and t = " << t <<endl;
a = a + 12;
cout << "Line 13 : Inside funOne1 : a = "<< a << ",x ="<<x;
cout << " z = " << z << " and t = " << t <<endl;
t = t + 13;
cout << "Line 15 : Inside funOne1 : a = "<< a << ",x ="<<x;
cout << " z = " << z << " and t = " << t <<endl;
}
DIT 1104 - Pengaturcaraan 39