Functions
Function
- Simple function
- Passing Arguments to Functions
- Returning values from functions
Example Program
#include<iostream.h>
#include<conio.h>
void starline( ); // function declaration
int main( )
{
clrscr( );
starline( ); //function calling
cout<<“Starline function is work”<<endl;
starline( ); //function calling
getch( );
return 0;
}
// function defination
void starline( )
{
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
}
Program မှာ main function နဲ့ starline function ဆိုပြီးအပိုင်းနှစ်ပိုင်းပါပါတယ်။ အရင် Program တွေမှာ main ( ) ပဲပါတယ်။ အခု function တစ်ခုပိုသွားတယ်။ Function Name ကတော့ starline ပါ။
Function တည်ဆောက်မယ်ဆို အပိုင်း(၃)ပိုင်းလိုပါတယ်။
- function declaration
- call function
- function definition
Simple function
1. Function declaration
ပထမအပိုင်းကတော့ function declare လုပ်တဲ့အပိုင်းပါ။ variable တွေမှာ variable data type နဲ့ name တွေကို ကြေညာပြီးမှ variable ကိုလိုသလိုသုံးလို့ရသလိုပဲ function မှာလဲ function declaration အရင်လုပ်ရပါတယ်။
အပေါ်က program အရ function declaration က
void starline( );
data type တွေကတော့ int float တွေပေါ့နော်။ ဒါတွေကတနည်းအားဖြင့် return ပြန်တဲ့ data type တွေပါ။ Return မပြန်စေချင်တော့ void data type ကိုသုံးလို့ရပါတယ်။ data type နောက်မှာ function name , အဲ့နောက်မှာတော့ ကွင်းအဖွင့်အပိတ်ပါ။ Argument ပါလားမပါလားက ကွင်းအဖွင့်အပိတ်မှာကြည့်ရပါတယ်။ အခု starline funciton declaration မှာ function name starline ရဲ့နောက်ကကွင်းမှာ ဘာမှမပါတဲ့အတွက် argument မပါတဲ့သဘောပါ။
function declare လုပ်ပြီးရင် semicolon ထည့်ဖို့မမေ့ပါနဲ့။
2. Call function
Calling the function, function ကိုခေါ်သုံးပါမယ်။ ဘယ်မှာခေါ်သုံးမှာလဲ? Main function မှာပါ။ function call ကတော့ကိုယ် define လုပ်ထားတဲ့ function ကိုကိုယ်လိုတဲ့ အချိန်မှာခေါ်သုံးတာမျိုးပါ။
Example : starline( );
3. Function defination
Function ကို define လုပ်တဲ့အပိုင်းကတော့ အဓိကပါ။ Function ကို declare လုပ်ပြီး ခေါ်သုံးပေမယ့် ကိုယ်ခေါ်သုံးထားတဲ့ function ဘာလုပ်မယ်ဆိုတာကတော့ function defination ပိုင်းမှာထည့်ရေးရပါတယ်။
Example program အရ function defination ပိုင်းကတော့
void starline( )
{
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
}
အပေါ်က example program ကိုပြန်ရှင်းကြရအောင်။
#include<iostream.h>
#include<conio.h>
void starline( ); // function declaration
int main( )
{
clrscr( );
starline( ); //function calling
cout<<“Starline function is work”<<endl;
starline( ); //function calling
getch( );
return 0;
}
// function defination
void starline( )
{
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
}
Main ( ) မှာစစခြင်း Statement က Starline ( ); ၊ ဒါကတော့ starline function ကိုပြန်ခေါ်တာပါ။ ကဲ starline function ကဘာအလုပ်လုပ်ပါသလဲ? Starline function ကိုကြည့်ရအောင်
// function defination
void starline( )
{
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
}
Return မပြန်တဲ့ (void) data type နဲ့ function name ကတော့ starline ပါ။ Function body တနည်းအားဖြင့် braces ထဲမှာ for loop တစ်ခုရှိပါတယ်။ looping အရ integer j=0 ကနေ j=44 ထိ looping ပတ်မယ်။ looping ပတ်ရင် star တစ်လုံးပေါ်မယ်။ 0 ကနေ 44 ထိဆိုတော့ looping ဘယ်နှစ်ကြိမ်ပတ်မလဲ? 45 ကြိမ်ပါ။ တစ်ကြိမ်ပတ်ရင် တစ်လုံးပေါ်မယ်။ 45 ကြိမ်ဆိုတော့ 45 လုံးပေါ်မယ်ပေါ့နော်။ cout<<endl; က for loop အပြင်ဘက်ကပါ။ for loop ထဲမှာ Statement တစ်ကြောင်းထဲရှိရင် brace ထည့်ပေးစရာမလိုပါဘူး။ အခုလဲ braces မထည့်ထားတဲ့ အတွက် statement တစ်ကြောင်းထဲကိုပဲ looping ပတ်မှာပါ။ အဲ့တာကြောင့် star တွေကိုတစ်ကြောင်းမကျော်ပဲ 45လုံးကိုတစ်ပြိုင်ထဲထုတ်ပြမှာပါ။ ပြီးမှ cout<<endl; တစ်ကြောင်းကျော်မှာပါ။
starline function ကဘာအလုပ်လုပ်ပါသလဲ?
star 45 လုံးကိုတစ်တန်းထဲထုတ်ပြပြီး နောက်တစ်လိုင်းကျော်တဲ့ အလုပ်လုပ်ပါတယ်။
main function မှာ starline ( ) ဆိုပြီး starline function calling လုပ်ထားတယ်။ ဘာဖြစ်မလဲ? အဲ့နေရာမှာ star 45 လုံးပေါ်မှာပါပဲ။ မထူးပါဘူး ။ အဲ့တာဆို Main function မှာ for loop ပတ်လိုက်မယ်လေ။
int main( )
{
clrscr( );
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
cout<<“Starline function is work”<<endl;
for( int j=0; j<44; j++ )
cout<<“*”;
cout<<endl;
getch( );
return 0;
}
Result ကအတူတူပါပဲ။ function ကိုသုံးပြီးရေးလိုက်တော့ ကြည့်တဲ့သူက အမြင်ရှင်းသွားပါတယ်။
Output is
********************************************* Starline function is work *********************************************
Passing Arguments to function
Simple function မှာ Argument မပါပါဘူး။ အခု function မှာ argument ကို pass လုပ်ပါမယ်။ Pass မလုပ်ခင် Argument ဆိုတာဘာလဲ? Argument ဆိုတာ data တစ်ခုပါ။ အဲ့ဒီ value ကအတည်မရှိပါဘူး။ ဒါပေမယ့် အတည်ရှိရမှာက data type ပါ။ အထက်က Starline ( ) အရ star 45လုံးထုတ်ပေးတယ်။ ဒါပေမယ့် 45လုံးလိုချင်မှလိုမယ်။ ဒါမှမဟုတ် star အစားအခြား character တွေလိုချင်တယ်။ အဲ့တာဆိုရင် starline function ကိုတစ်ဆင့်မြှင့်မယ်။
Argument ထည့်ပေးခြင်းဖြင့် ကိုလိုချင်သလောက်ပဲ function calling လုပ်လို့ရပါတယ်။
#include<iostream.h>
#include<conio.h>
void repchar(char , int ); //function declare
int main( )
{
clrscr( );
repchar( ‘ – ‘ , 40 ); //function defination
repchar( ‘ * ‘ , 10 ); //function defination
repchar( ‘ = ‘ , 20 ); //function defination
getch( );
return 0;
}
void repchar( char ch, int n)
{
for( int j=0; j<n; j++)
{
cout<<ch;
cout<<endl;
}
}
အပေါ်မှာပြထားတဲ့ program ရဲ့ function declare လုပ်တဲ့အခါ void repchar မှာ argument နှစ်ခုတောင်းထားတယ်။ data type က character type နဲ့ integer type ပါ။ ပြောချင်တာက declare လုပ်တဲ့အခါမှာ Argument နှစ်ခုတောင်းတဲ့အတွက် function calling လုပ်တဲ့အခါမှာ တောင်းထားတဲ့ data type အလိုက် character တစ်လုံး integer တစ်လုံး pass လုပ်ပေးရပါမယ်။ ကိုယ်ထည့်လိုက်တဲ့ Arguments တွေက ဘယ်ကို pass လုပ်သွားမလဲ။ ? repchar function ကို pass လုပ်မှာပါ။ for looping အရ ကိုယ်ထည့်ထားတဲ့ Character က integer အလုံးအရေအတွက်အလိုက် Screen ပေါ်မှာပါ။ function define လုပ်တဲ့အခါမှာ အတည်မဟုတ်တဲ့အတွက် variable နဲ့အစားသွင်းထားတာကို တွေ့ရမှာပါ။ တစ်နည်းအားဖြင့် pass လုပ်ပေးတဲ့ data တွေက repchar function ရဲ့ variable တစ်ခုစီကိုရောက်သွားတာပါ။
Example repchar ( ‘ – ‘ , 40 )ဆိုရင် Pass လုပ်ပေးလိုက်တဲ့ character Argument ‘ – ‘ က variable ch ထဲအစားထိုးရောက်သွားပြီး integer argument 40 က variable n ထဲကိုအစားထိုးသွားပါတယ်။
output
---------------------------------------- ********** ====================