Programming ဆိုတာဘာလဲ
၁။ Input- Process- Output
ေအာက္မွာေပးထားတ့ဲပုစာၦကို စဥ္းစားၾကည့္ပါ။
အမ်ိဳးသား ၅ေယာက္၏ အသက္မ်ားမွာ၂၂ ႏွစ္၊၂၁ႏွစ္၊ ၁၈ႏွစ္၊ ၁၉ႏွစ္၊ ၂၀ႏွစ္ အသီးသီးျဖစ္ၾကျပီး ထိုသူတို႕၏ ပ်မ္းမွ်အသက္ကိုရွာပါ။
ဒီပုစာၦရဲ့ အေျဖကေတာ့ အသက္အားလုံးကို ေပါင္းျပီး၅နဲ႕စားလိုက္ရင္ ရျပီလို႕ေျဖၾကမွာပါ။ အေသးစိတ္တြက္ၾကည့္ရမယ္ဆိုရင္
(၁) ၅ေယာက္လုံးရဲ့ အသက္ကိုေပါင္းမယ္
(၂) ေပါင္းလို႕ရလာတဲ့ အေျဖကို ၅နဲ႕စားမယ္
ကြၽန္ေတာ္တို႕က ဒီအဆင့္ႏွစ္ဆင့္နဲ႕ တြက္ၾကရမွာပါ။
ဒီလိုတြက္နည္းမ်ိဳးနဲ႕ ေျဖရွင္းတာကို Algorithm ( ျပသနာေျဖရွင္းနည္း) လို႕ေခၚပါတယ္။ ကြန္ျပဴတာကို ဒီပုစာၦ ေျဖရွင္းခိုင္းခ်င္တယ္ဆိုရင္ေတာ့ Algorithm ကို Program ဘာသာစကားနဲ႕ ေရးေပးရပါမယ္။ ဒီလို Program ဘာသာစကားနဲ႕ ေရးထားတဲ့ Algorithm ကို Program လို႕ေခၚပါတယ္။
ဒါနဲ႕ ပုစာၦကို ဒီလိုေပးထားမယ္ဆိုရင္ေကာ ဘယ္လိုေျဖရွင္းၾကမွာလဲ?
လူ၅ေယာက္၏ ပ်မ္းမွ်အသက္ကိုရွာပါ။
ဒီပုစာၦမွာဆိုရင္ေတာ့ သင္က အေျဖရွာနည္းကို သိေပမဲ့ လူတစ္ေယာက္ခ်င္းစီရဲ့ အသက္ကို မသိလို႕တြက္လို႕မရပါဘူး။ Algorithm လိုတယ္ဆိုေပမဲ့လည္း data (အခ်က္အလက္)ကလည္း အေရးၾကီးပါတယ္။
၂၀ႏွစ္၊ ၁၈ႏွစ္ စတဲ့အသက္ေတြနဲ႕ လူအေရအတြက္က ဒီ program ကတစ္ဆင့္တြက္ထုတ္ဖို႕အတြက္ လိုအပ္တဲ့ data ေတြပါ။ ျပီးေတာ့ ပ်မ္းမွ်အသက္ဆိုတာ တြက္ထုတ္လို႕ရလာတဲ့ data ပါ။ အဲဒါက Output data (ရလဒ္) ျဖစ္ပါတယ္။
ေအာက္ပါအခ်က္အလက္ေတြကို သင္နားမလည္ဘူးဆိုရင္ေတာ့ program ကိုအသုံးျပဳလို႕မရပါဘူး။
(၁) Input data ဆိုတာဘာလဲ?
(၂) Output data ဆိုတာဘာလဲ?
(၃) Algorithm ဆိုတာဘာလဲ?
၂။ တြက္ခ်က္ျခင္း – သိမ္းဆည္းျခင္း – ဆုံးျဖတ္ျခင္း
ကဲ ဒါဆို ပ်မ္းမွ်အသက္ရွာေပးႏိုင္တဲ့ တစ္ခုတည္ေဆာက္ၾကရေအာင္။
– အသက္ေတြကို ေပါင္းမယ္။
– ေပါင္းလို႕ရလာတဲ့အေျဖကို လူအေရအတြက္နဲ႕ စားမယ္။
ဒီေလာက္ပဲဆိုရင္ေတာ့ ကြန္ျပဴတာက နားမလည္ပါဘူး။ သူက တြက္ခ်က္ျခင္း- သိမ္းဆည္းျခင္း- ဆုံးျဖတ္ျခင္း ေလာက္ပဲနားလည္တဲ့အတြက္ ကိန္းဂဏန္းေတြ +, -, = ေတြကိုမေဖာ္ျပလို႕မရပါဘူး။
“= “ကကိန္းဂဏန္းေတြနဲ႕ data ကိုဆက္သြယ္ေပးပါတယ္။
လူအေရအတြက္ကို ေဖာ္ျပေသာကိန္းဂဏန္းမ်ား
ျပီးေတာ့ ေအာက္မွာေဖာ္ျပထားတဲ့အတိုင္း လုပ္ငန္းစဥ္ကို စတင္ပါတယ္။
num = 5 //လူအေရအတြက္ ကိန္းဂဏန္းကို သိမ္းဆည္းတယ္။
sum = 0 // 0ကို ေပါင္းလဒ္အျဖစ္သိမ္းဆည္းတယ္။
sum = sum + 21 // လူ၅ေယာက္ရဲ့အသက္ကို ထည့္ေပါင္းမယ္။
sum = sum + 18 //
sum = sum + 22 //
sum = sum + 19 //
sum = sum + 20 //
ave = sum/ num //ရထားတဲ့ေပါင္းလဒ္ကို လူအေရအတြက္နဲ႕ စားတယ္။
//ရလာဒ္ကို ပ်မ္းမ်ွကိန္းဂဏန္းထဲမွာ သိမ္းဆည္းတယ္။
၃။ Programming စတိုင္
ကဲ ဒါဆို coding ကိုလက္ေတြ႕ ေရးၾကည့္ၾကရေအာင္။ Coding ဆိုတာကေတာ့ Program ကို Program ဘာသာစကားနဲ့ေရးသားျခင္းျဖစ္ပါတယ္။ ေအာက္မွာ ေဖာ္ျပထားတဲ့ ဥပမာက “C”လို႕ေခၚတဲ့ program ဘာသာစကားနဲ့ ေရးထားတာျဖစ္ပါတယ္။
average.c
#include
main()
{
int num;
int sum;
int ave;
num = 5;
sum = 0;
sum = sum + 21;
sum = sum + 18;
sum = sum + 22;
sum = sum + 19;
sum = sum + 20;
ave = sum / num;
printf(“Average age:%d\n”, ave);
}
C ရဲ့ program ေတြကို ပံုမွန္အေျခအေနမွာဆိုရင္ စာလံုးအေသးနဲ့ပဲ ေရးရပါတယ္။ ၿပီးေတာ့ သင့္ေတာ္တဲ့ တန္ဖိုးရဖို့အတြက္ သင့္ေတာ္သလို ေနရာခ်န္ၿပီးေရးလို႕ရပါတယ္။ ဒါကို free format လို့ေခၚပါတယ္။ ဒါေပမယ့္ အစျဖစ္လို့ ၾကည့္ရလြယ္ေအာင္ အရင္လိုပဲ ေရးတာေကာင္းပါတယ္။
၄။ Coding- Compile- Perform
ကြန္ျပဴတာကို Program နဲ့လည္ပတ္ေစဖို့ဆိုရင္ သိသင့္တဲ့အခ်က္ တစ္ခ်က္က်န္ပါေသးတယ္။
အဲ့ဒါကေတာ့ programဘာသာစကား (programming language) ကို စက္ဘာသာစကား (Machine language) အျဖစ္ ေျပာင္းေပးဖို့ပါ။စက္ဘာသာစကားကေတာ့ 1နဲ့0 ႏွစ္မ်ိုးထဲနဲ့ပဲေရးပါတယ္။ကြန္ျပဴတာက စက္ဘာသာစကားပဲ နားလည္တာပါ။
ကြန္ျပဴတာထဲမွာ အရမ္းကြၽမ္းက်င္တဲ့ စကားျပန္တစ္ေယာက္ရွိတယ္။ အဲ့ဒီစကားျပန္က program ဘာသာစကားကေန စက္ဘာသာစကားကို ဘာသာျပန္ေပးတဲ့ သူ႕ကို compiler လို႕ေခၚ ပါတယ္။
program ဘာသာစကားမွာေတာ့ ကြန္ျပဴတာကိုအသံုးျပုတဲ့ ရည္ရြယ္ခ်က္ေပၚမူတည္ျပီး FORTRAN, COBOL, PASCAL, C စသည္ျဖင့္ အမ်ိုးမ်ိုးရွိၾကတယ္။
Compile စလုပ္ျပီဆိုတာနဲ့ စက္ဘာသာစကား program ကလည္းသူ႕အလိုလို အလုပ္လုပ္မွာျဖစ္ပါတယ္။
၁။ Program ၏တည္ေဆာက္ပံု
၁။ အေျခခံ တည္ေဆာက္ပံု
အခုေနာက္ပိုင္းမွာေတာ့ ေဆာ့ဖ္ဝဲလ္ေတြ ေျပာင္းလဲတိုးတက္လာတာႏွင့္အမ်ွ လုပ္ငန္းေတြကို ထိန္းသိမ္းဖို႕ ေဆာ့ဖ္ဝဲလ္အသစ္ေတြ အမ်ားၾကီးလိုအပ္လာပါတယ္။ ေဆာ့ဖ္ဝဲလ္ဆိုတာက ဖတ္ရလြယ္ဖို့နဲ႕ စစ္ေဆးရလြယ္ဖို့လိုပါတယ္။ အဲ့ဒီလို ေဆာ့ဖ္ဝဲလ္ေတြက –
Program ေတြအားလံုးကို ေျခခံတည္ေဆာက္ပံု သံုးမ်ိုးျဖစ္တဲ့ အစဥ္လိုက္တည္ေဆာက္ျခင္း၊ ေရြးခ်ယ္တည္ေဆာက္ျခင္း၊ ထပ္ကာထပ္ကာတည္ေဆာက္ျခင္း နဲ့ တည္ေဆာက္ႏို္င္ပါတယ္္။
၂။ Program ဒီဇိုင္း
Program တစ္ခုလုပ္ေဆာင္ပံုက Input- process – output ကို အစဥ္လိုက္လုပ္ေဆာင္ျခင္းပါ။
Coding နဲ့ယွဥ္ရင္ေတာ့ Input မလုပ္ခင္မွာ ကိန္းဂဏာန္းေတြကို အသိေပးဖို့လိုပါတယ္။
၃။ Programming အဆင့္မ်ား
၁။ စိတ္ကူးကို ပံုေဖာ္ျခင္း
Program ေရးဆြဲတယ္ဆိုတာျပႆနာတစ္ခုခုကို ေျဖရွင္းခိုင္းေစခ်င္လို့ပါ။ အရင္ဆုံးျပႆနာေျဖရွင္းဖို့ စိတ္ကူးတယ္။ ျပီးေတာ့ အဲ့ဒီစိတ္ကူးကို ကြန္ျပဴတာဖန္သားျပင္ေပၚတင္လိုက္တာက Program ဆြဲလိုက္တာပါ။
၄။ Program ဒီဇိုင္း
Program တစ္ခုလုပ္ေဆာင္ပံုက Input-Process-Output ကို အစဥ္လိုက္လုပ္ေဆာင္ျခင္းပါ။
Coding နဲ့ယွဥ္ရင္ေတာ့ Input မလုပ္ခင္မွာ ကိန္းဂဏန္းေတြကိုအသိေပးဖို့လိုပါတယ္။
၅။ Coding – အျပစ္အနာအဆာ (bug) ရွာျခင္း
Coding ဆိုတာက Program ဘာသာစကားကို အသံုးျပဳျပီး Program ေရးဆြဲျခင္း ျဖစ္ပါတယ္။ Program အေျကာင္း အခုမွစေလ့လာသူေတြက Coding ဟာလည္း Program တစ္ခုလို့ထင္ၾကေပမယ့္ သူက Program လုပ္ငန္းစဥ္ရဲ့ တစ္စိတ္ တစ္ေဒသ
ထက္ မပိုပါဘူး။
၆။ Program setting ၏အဆင့္မ်ား
၁။ အဆင့္ဆင့္တိုးတက္လာပံု
Programs ေတြကိုတည္ေဆာက္ျပီးတဲ့အခါ program တစ္ခုလံုးရဲ႕အေသးစိတ္ကို စဥ္းစားျပီး
တိက်တဲ့ operations ေတြကိုဆုံးျဖတ္ဖို႕ဆိုတာကမျဖစ္နိုင္ပါဘူး။ဥပမာအေနနဲ့ million နဲ႕ခ်ီတဲ့ Programs မ်ားစြာကိုယူနစ္တစ္ခုခ်င္းစီ Compile လုပ္ၾကည့္ရေအာင္။
၇။ Program design ၏အက်ိဳးေက်းဇူး
Program ကို ဝါသနာပါလို့ ေရးမယ္ဆိုရင္ Programကို အခုေရပန္းစားေနတဲ့ Flow Chartနဲ့ Structured Chart ကိုအသံုး ျပဳ ျပီးေရးၾကည့္သင့္ပါတယ္။
Program Chart ကိုအသံုး ျပဳ ျခင္း ရဲ႕အက်ိုးေက်းဇူးေတြကေတာ့ေအာက္ပါအတိုင္းျဖစ္ပါတယ္္။
၈။ ယူနစ္ပိုင္းျခားျခင္း
၁။ Module ေျပာင္းလဲျခင္း အယူအဆ
Module ေျပာင္းလဲျခင္း အယူအဆကို Program မွာတင္မက အျခားနယ္ပယ္မ်ားမွာလည္း အသံုးျပုလ်က္ရွိပါတယ္။ ဒီေျပာင္းလဲျခင္း အယူအဆကိုေတာ့ လြယ္လြယ္ကူကူပဲ ေဖာ္ျပပါမယ္။
၉။ Function ခြဲထုတ္ျခင္း
Module Seperation ရဲ့ေယဘုယ်နည္းလမ္းကေတာ့ အဓိက function ကို function ငယ္ေလးမ်ားအျဖစ္ခြဲထုတ္ျခင္းျဖစ္ပာတယ္။
၁ဝ။ အေျခခံ function ခြဲထုတ္ျခင္း
(၁) အရြယ္အစားတိုင္းတာၿခင္း
Module ၏ size က manage လုပ္ႏိုင္ရမယ့္ size ျဖစ္ရမည္။
ပံုမွန္အားျဖင့္ program ရဲ႕ size က တစ္မ်က္နွာစာျဖစ္ျပီးေတာ့ module ခြဲတဲ႕ ေနရာမွာ အရမ္း ေသးငယ္တဲ့ module ခြဲမယ္ဆုိရင္္လည္း function လုိ႕ ေခၚလို႕မရႏိုင္ပါဘူး။