Pages

Pages

C+ lesson 8

ေရွ႕မွာသင္ခဲ့တဲ့ အခန္းတစ္ခန္းမွာ  funtcion အေၾကာင္းကို အနည္းငယ္ မိတ္ဆက္ေပးခဲ့တယ္၊ ကြန္ျပဴတာ Program ေတြကို function ေတြအမ်ားၾကီးနဲ႔ တည္ေဆာက္ထားတာ၊ ဥပမာ အိပ္ရာထ ျပီးရင္ သြားတိုက္၊ ျပီးရင္ မ်က္ႏွာသစ္၊ ျပီးရင္ အစာစား၊ စသျဖင့္ လုပ္ရမယ့္ကိစၥေတြကိုတစ္ခုစိအမိန္႔ေပးပီး အဲ့ဒီ့ အမိန္႔တစ္ခုစီကို funtion တစ္ခုစီအေနနဲ႔ ေရးရတယ္၊ Program အလုပ္လုပ္တဲ့အခါမွာ လဲ function တစ္ခုစီကို အစကေန အဆံုးအထိ တစ္ခုျပီး တစ္ခု အလုပ္လုပ္သြားတယ္၊ ဒီေတာ့ ကြန္ျပဴတာ Program ဆိုတာက အဲ့ဒီ့ လို တဆင့္စီ အမိန္႔ေပးျပီး ေရးထားတဲ့ functions ေတြကို စုေပါင္းထားတဲ့ ကုတ္ေတြကိုေခၚတယ္၊
Functions ေတြအမ်ားၾကီးဆိုရင္ ဘယ္ Function ကေန Program က အလုပ္စလုပ္မွာလဲ၊ ဒါကေတာ့မပူပါနဲ႔ Program တစ္ခုကို Run လိုက္ရင္ျဖင့္ အဲ့ဒီ့ Program က သူလုပ္ရမယ့္ အလုပ္ျဖစ္တဲ့ Functions ေတြကိုစတင္အလုပ္လုပ္တယ္၊ စအလုပ္လုပ္တဲ့ function ကေတာ့ ေရွ႕အခန္းေတြမွာ လက္ေတြ႔ေတြ႔ခဲ့ျပီး ျဖစ္တဲ့ main function ပါ၊ ေအာက္မွာ main function ကို တစ္ခ်က္ျပန္ျပီး ၾကည့္ပါ၊
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
အထက္က ဥပမာက မွာေတာ့ main( ) ဆိုတဲ့ function ကို တည္ေဆာက္ထားတာပါ၊ အဲ့ဒီ့ main ဆိုတဲ့ function ကိုအေခၚခံရရင္ သူလုပ္မယ့္အလုပ္ကေတာ့ curly bracket ထဲမွာရွိတဲ့ စာသားကို Output လုပ္မွာပါ၊ function ကိုတည္ေဆာက္တဲ့ ပံုက
Int main ( ){
}
အထက္က ပံုအတိုင္း အရင္ဆံုး တည္ေဆာက္မယ့္ function ရဲ့ data type (int) ကိုေရးတယ္၊  ျပီးေတာ့ function နာမည္ကိုေရးတယ္၊  အဲ့ဒီ့ function နာမည္ကို ေတာ့ ၾကိဳက္တဲ့နာမည္ေပးလို႔ရတယ္၊ ဒါေပမယ့္ သင့္ရဲ့ Program မွာ main ဆိုတဲ့ function ကေတာ့ ပါကိုပါရမယ္၊ အေၾကာင္းက ကြန္ျပဴတာ Program အလုပ္စလုပ္ရင္ သူအရင္ဆံုး ရွာမယ့္ function က main function ျဖစ္ေနလို႔ပါ၊ function ကိုေရးျပီးသြားရင္ျဖင့္ သူေနာက္မွာ လက္သံကြင္းထည့္ရပါမယ္၊ အဲ့ဒီ့လက္သဲကြင္းထဲမွာ Parameter ေတြထည့္ရမယ္၊ ( Parameter ေတြအေၾကာင္းေနာက္မွ ရွင္းျပမယ္ )၊ လက္သဲကြင္းရဲ့ေနာက္မွာ ေတာ့ curly bracket တြန္႔ကြင္း လိုက္တယ္၊ အဲ့ဒီ့ တြန္႔ကြင္းထဲမွာ function ကိုအေခၚခံရရင္ အဲ့ဒီ့ function လုပ္မယ့္အလုပ္ကို ေရးပါတယ္၊
 ဒီေတာ့ function တစ္ခုကိုတည္ေဆာက္ဖို႔ function ရဲ့ data type လိုမယ္၊ function ရဲ့ နာမည္လိုမယ္၊ function နာမည္ရဲ့ေနာက္မွာ လက္သံကြင္းလိုက္မယ္၊ ျပီးရင္ေတာ့ Curly bracket တြန္႔ကြင္း အဖြင့္ အပိတ္လိုက္မယ္၊
အခု function တည္ေဆာက္ပံု ကိုသေဘာေပါက္သြားရင္ သင္ကို ပိုင္ function ကိုတည္ေဆာက္ ၾကည့္ၾကရေအာင္၊ အထက္မွာ သင္ေပးခဲ့တဲ့အတိုင္း  function တစ္ခုကိုတည္ေဆာက္ျပီဆိုရင္ အဲ့ဒီ့ တည္ေဆာက္မယ့္ function က ဘယ္လို data type အမ်ိဳးအစားလဲဆိုတာကို စဥ္းစားရမယ္၊ လက္ရွိေတာ့ integer data type ကိုပဲ သိေသးတယ္၊ တကယ္လို႔ သင္လုပ္မယ့္ အလုပ္က ဂဏန္းတန္ဖိုးေတြနဲ႔ ပတ္သတ္ေနရင္ int ကိုသံုးပါ၊ ဥပမာ လူတစ္ေယာက္ရဲ့ အသက္ကို တြက္ခ်က္မယ္ဆို တာမ်ိဳး ကားတစ္စီးရဲ့ တစ္နာရီ သြားႏွဳန္းကို တြက္ခ်က္မယ္ဆိုတာမ်ိဳး ဒါမ်ိဳးေတြက ဂဏန္းေတြနဲ႔ ပတ္သက္ေနတယ္၊ ဒီလိုအခါမွာ လုပ္မယ့္ အလုပ္က ဂဏန္းေတြ နဲ႔ ျဖစ္တာေၾကာင့္ ဂဏန္းေတြကို ကိုင္းတြယ္တဲ့ data type ျဖစ္တဲ့ integer ကိုသံုးပါ၊ အလုပ္လုပ္လို႔ထြက္လာမယ့္ အေျဖကိုေတာ့ return လို႔ေခၚပါတယ္၊  (data type ေတြကို ဆံုးျဖတ္ႏိုင္ေအာင္ ေနာက္ပိုင္း Data type ေတြအားလံုးကိုသင္ေပးမယ္၊ အခုေတာ့ မရွဳပ္သြားေအာင္ int ကိုပဲ မွတ္ထားဦး) တကယ္လို႔ သင္တည္ေဆာက္မယ့္ function က စာသားေတြကို ကိုင္းတြယ္ အလုပ္လုပ္ မယ့္ function အမ်ိဳးအစားဆိုရင္ေတာ့ Void ကိုသံုးပါ၊ (ေလာေလာဆယ္ စာသားအတြက္ data type void ကိုသံုးတယ္လို႔ပဲ မွတ္ထားပါဦး၊
အခု စာသားေတြကို အေျဖထုတ္ေပးမယ့္ function တစ္ခုကိုတည္ေဆာက္မယ္၊ စာသားေတြကို အေျဖထုတ္မယ့္ function ဆိုေတာ့ return data type ကို void လို႔သတ္မွတ္လိုက္မယ္၊ ဒါဆိုရင္ေတာ့ ေအာက္ က အတိုင္းစေရးလိုက္
Void
အထက္က လို Return data type ကိုေရးျပီးသြားရင္ေတာ့ သင္တည္ေဆာက္မယ့္ fucntion ရဲ့ နာမည္ကိုေပးရပါမယ္၊ သင္ၾကိဳက္တဲ့နာမည္ေပးႏိုင္တယ္၊  ေအာက္မွာၾကည့္ပါ၊
Void waiferkolar( )
အထက္မွာေတာ့ waiferkolar ဆိုတဲ့ function တစ္ခုကိုတည္ေဆာက္လိုက္ပါပီ၊ သူ႔ရဲ့ data type က void ပါ၊ waiferkolar ရဲ့ ေနာက္မွာ လက္သဲကြင္း Prarmeter ပါတယ္၊ ျပီးရင္ေတာ့ waiferkolar လို႔တည္ေဆာက္ထားတဲ့ function ရဲ့ အလုပ္ကို ေရးရပါမယ္၊ function တစ္ခုရဲ့ အလုပ္ျဖစ္တဲ့ အတြက္ Curly bracket ထဲမွာေရးမယ္၊ အလြယ္ပဲ “How are you doing waiferkolar” ဆိုတဲ့စာသား အေျဖထုတ္မယ္လို႔ ေရးမယ္၊ ေအာက္မွာၾကည့္
Void waiferkolar ( ){
Count << “How are you doing waiferkolar” ;
}
အထက္မွာေတာ့ waiferkolar ဆိုတဲ့ function ကိုတည္ေဆာက္ျပီးသြားျပီ၊ သူ႔ လုပ္မယ့္ အလုပ္ကိုလဲ သတ္မွတ္ျပီးသြားပီ၊ တစ္ခု သတိေပးစရာရွိတယ္၊ stream data type ျဖစ္တဲ့ “How are you doing wiaferkolar” ကိုေရးတဲ့အခါ ႏွစ္ထပ္ ေကာ္မာ အဖြင့္ အပိတ္ ၾကားမွာေရးတယ္၊ Stream Data ျဖစ္လို႔႔ပါ၊
အခု သင္ကိုတိုင္ function တစ္ခုကို တည္ေဆာက္ျပီးသြားပါပီ၊ အဲ့ဒီ့ function ဘယ္လိုအလုပ္လုပ္မလဲဆိုတာကိုေလ့လာမယ္၊ တကယ္ေတာ့ သင္တည္ေဆာက္ထားတဲ့ function ရဲ့ အေပၚမွာ main function ရွိေနမွာပါ၊ ေအာက္မွာၾကည့္
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
    return 0;
}
void waiferkolar(){
    cout << "How are you doing waiferkolar" ;
}
အထက္က ပံုကေတာ့ သင္တည္ေဆာက္ျပီးသြားတဲ့ function ပါ၊ အေပၚမွာ main function ရွိတယ္၊ ေအာက္မွာ သင့္ကိုပိုင္း function ရွိတယ္၊ အခု သင့္ကိုပိုင္တည္ေဆာက္ထားတဲ့  ေခၚၾကည့္မယ္၊ (အဲ သူမ်ားေတြက function ကိုေခၚတယ္လို႔ ေျပာလို႔သာ လိုက္ေျပာရတာ၊ တကယ္ေတာ့ function ကိုအသံုးျပဳတာပါ) အသံုးျပဳဖို႔အတြက္ အဲ့ဒီ့ function ကို main function ထဲကေနလွမ္းေခၚရမယ္၊ ေအာက္မွာၾကည့္ပါ၊



အထက္ မွေတာ့ သင္တည္ေဆာက္ထားတဲ့ function ကို main function ထဲမွာ void waiferkolar ( ); လို႔ထည့္ျပီးေခၚထားပါတယ္၊ ဒါဆိုရင္အလုပ္ျဖစ္ရမွာ ဒါေပမယ့္ တကယ္ Run လိုက္ရင္ အလုပ္မျဖစ္ဘူးျဖစ္ေနမယ္၊  ကုတ္ေတြမွာပါတဲ့ အနီေရာင္ေလးေထာင့္ကြက္ေလးက မွားေနတယ္ဆိုတဲ့ သေကၤသ၊ ဘာေၾကာင့္မွားေနတာလဲ၊
 တကယ္ေတာ့ ကြန္ျပဴတာ Program က အလုပ္လုပ္ရင္ အေပၚဆံုးက စျပီး လုပ္ပါတယ္၊ အဲေျပာခ်င္တာက $include <iostream> ကိုစျပီး ဖတ္တယ္၊ ေအာ္ ဒါကေတာ့ <iostream> ဖိုင္ကိုထည့္ခိုင္းတာ အိုေက၊
 ျပီးရင္ Program ရဲ့ဒုတိယ စာေၾကာင္းကို အလုပ္လုပ္တယ္၊ using namespace std; ေအာက္ standard Character ကိုအသံုးျပဳခိုင္းတာ ဟုတ္ျပီ၊
အဲ့ဒါျပီးရင္ Program ကတတိယ စာေၾကာင္းကို ၾကည္တယ္၊ int main ( ) ကိုေတြ႔ရင္ ၊ အိုဒါက ငါ့ေဘာ္ဒါၾကီး main function ပဲ၊ အိုေက ဒီေကာင္ ငါ့ကို ဒီတစ္ခါ ဘာေတြ အမိန္႔ေပးထားလဲ ၾကည့္အံုးမွ ဆိုျပီးေနာက္တစ္ေၾကာင္းက အလုပ္လုပ္မယ့္ ကုတ္ကိုၾကည့္တယ္၊
အဲ့ဒီ့ ေနာက္တစ္ေၾကာင္းမွာ Program အလုပ္လုပ္ဖို႔ ၾကည့္လိုက္တဲ့အခါ void waiferkolar( ); ကိုသြားေတြ႔တယ္၊ ဒီမွာပဲ ကြန္ျပဴတာက စျပီျပသနာျဖစ္ေတာ့တယ္၊ အလို ဘာေကာင္ ၾကီးလဲ ဘယ္သူထည့္လိုက္တာလဲ၊ ငါက ဒါၾကီးကို ဘာလုပ္ရမွာလဲ ဟာကြာ ရွဳပ္တယ္ အမွားျပလိုက္မယ္၊ Error ထုတ္ေပးလိုက္ပါတယ္၊
ဒီလိုျဖစ္ရတာက ကြန္ျပဴတာက သင္ဆြဲလိုက္တဲ့ function ကိုၾကိဳမေတြ႔ေသးလို႕ပါ၊ အခု သင္ေရးလိုက္တဲ့ function ကို ေအာက္က အတိုင္းေနရာေျပာင္းျပီး ေရးၾကည့္လိုက္ပါ၊
#include <iostream>

using namespace std;

void waiferkolar(){

cout << "Hello how are you doing waiferkolar";
}


int main()
{
     waiferkolar();
    return 0;
}
အထက္က ဥပမာမွာ သင္တည္ေဆာက္လိုက္တဲ့ function ကို main function  ရဲ့ အေပၚကိုပို႔လိုက္တယ္၊ ဒါ့ေၾကာင့္ ကြန္ျပဴတက Program ကို Run တဲ့ အခါ  အေပၚဆံုးက စျပီး အလုပ္လုပ္မယ္၊ တစ္ေၾကာင္းစီဖတ္မယ္၊
$include <iostream> ကိုစျပီး ဖတ္တယ္၊ ေအာ္ ဒါကေတာ့ <iostream> ဖိုင္ကိုထည့္ခိုင္းတာ အိုေက၊
 ျပီးရင္ Program ရဲ့ဒုတိယ စာေၾကာင္းကို အလုပ္လုပ္တယ္၊ using namespace std; ေအာက္ standard Character ကိုအသံုးျပဳခိုင္းတာ ဟုတ္ျပီ၊
အဲ့ဒါျပီးရင္ Program ကတတိယ စာေၾကာင္းကို ၾကည္တယ္၊ void waiferkolar ဆိုတဲ့ function ကိုေတြ႔တယ္၊ ဒီေတာ့ ကြန္ျပဴတာက ေအာက္ function တစ္ခုပါလား၊ ေကာင္းျပီကြာ မင္းကို ငါမွတ္ထားလိုက္မယ္၊ ေနာက္ေတာ့ မင္းကိုေခၚသံုးတဲ့အခါ အလုပ္အတူ လက္တြဲလုပ္ၾကတာေပါ့ လို႔ သင့္တည္ေဆာက္ထားတဲ့ function ကိုမွတ္သြားတယ္၊ 
အဲ့ဒါျပီးရင္ Program ေနာက္ထပ္ စာေၾကာင္းကို ၾကည္တယ္၊ int main ( ) ကိုေတြ႔ရင္ ၊ အိုဒါက ငါ့ေဘာ္ဒါၾကီး main function ပဲ၊ အိုေက ဒီေကာင္ ငါ့ကို ဒီတစ္ခါ ဘာေတြ အမိန္႔ေပးထားလဲ ၾကည့္အံုးမွ ဆိုျပီးေနာက္တစ္ေၾကာင္းက အလုပ္လုပ္မယ့္ ကုတ္ကိုၾကည့္တယ္၊
ဒီစာေၾကာင္းမွာေတ့  waiferkolar( ); ဆိုတဲ့ function ကိုေခၚထားတာကိုေတြ႔တယ္၊ ေအာ္မင္းကို ၊ ငါမင္းကို အေပၚမွာ ေတြ႔ခဲ့တယ္၊ အခုေတာ့ မင္းကို ေခၚသံုးျပီ ဒီေတာ့ မင္းအလုပ္ျဖစ္တဲ့ “Hello how are you doing waiferkolar” ဆိုတဲ့စာေၾကာင္းကို Output လုပ္ရမယ္ဆိုပီး အေျဖထုတ္ေပးလိုက္တယ္၊
ဒီတစ္ခါေတာ့ အေျဖမွန္သြားပီ၊ အေပၚမွာ ပထမတစ္ခါက  အေျဖမွန္မရတာကေတာ့  ကြန္ျပဴတာက သင့္တည္ေဆာက္ထားတဲ့ function ကိုအရင္ဆံုးစမေတြ႔ေသးလို႔ပါ၊  တကယ္ေတာ့ main function မတိုင္းမီ သင္ တည္ေဆာက္ထားတဲ့ function ကိုေတြ႔ခဲ့ရင္ အလုပ္မျဖစ္စရာအေၾကာင္းမရွိဘူး၊ ဒီေတလာ့ သင္တည္ေဆာက္တဲ့ function ကို main function ရဲ့ေရွ႕မွာထားေပးပါ၊
ဒီမွာ တစ္ခုေျပာစရာရွိတယ္၊ ကြန္ျပဴတာက Program မွာ စေတြ႔တဲ့ waiferkolar ဆိုတဲ့ function ကို အရင္အလုပ္စမလုပ္ပဲ ဘာလို႔ main က ေခၚမွအလုပ္လုပ္ေပးတာလဲ၊ ဟုတ္ပါတယ္၊ ကြန္ျပဴတာ Program တိုင္းမွာ main funcion ပါတယ္၊ Program တစ္ခုကို Run လိုက္ရင္လဲ အဲ့ဒီ့ main fucntion ထဲမွာ ရွိတဲ့ အမိန္႔ေတြကိုပဲ အလုပ္လုပ္ပါတယ္၊

သင္တည္ေဆာက္ထားတဲ့ function ကို main function ရဲ့ေအာက္မွာပဲထားခ်င္တယ္ဆိုရင္ေတာ့ လုပ္လို႔ရတဲ့နည္းရွိပါတယ္၊ ဒါကေတာ့ သင္တည္ေဆာက္ထားတဲ့ function ရဲ့ data type, function name နဲ႔ Parameter (လက္သဲကြင္း) တို႔ကိုပဲ အေပၚမွာထားျပီး function တစ္ခုရွိေၾကာင္း အသိေပးတဲ့နည္းပါ၊ ေအာက္မွာ ဥပမာ ၾကည့္ပါ၊


#include <iostream>

using namespace std;

void waiferkolar();

int main()
{
     waiferkolar();
    return 0;
}
void waiferkolar(){

cout << "Hello how are you doing waiferkolar";
}အထက္က ဥပမာ ကို Run လိုက္ရင္လဲ အေျဖရမယ္၊ သံုးထားတဲ့နည္းက သင္တည္ေဆာက္ထားတဲ့ function ရဲ့ data type , function name နဲ႔ parameter တို႔ကို main function ရဲ့ အေပၚမွာ တင္ထားလိုက္ျပီး function တစ္ခုရွိတယ္လို႔အသိေပးလိုက္တာပါ၊
void waiferkolar(); ဆိုတဲ့ စာသားရဲ့ ေနာက္ဆံုးမွာ simicolon ထည့္ဖို႔မေမ့ပါနဲ႔၊

No comments:

Post a Comment