Home > Uncategorized > Pseudo Code ဆိုုတာဘာလဲ?

Pseudo Code ဆိုုတာဘာလဲ?

Pseudo ကုုဒ္အေၾကာင္းခုုမွေရးလိုု ့ရယ္ေနမလားပဲ။ ဒါေပမယ့္ ညီမေလးတစ္ေယာက္က သူတက္ေနတဲ့ Diploma သင္တန္းမွာပါတဲ့ assignment လုုပ္ေတာ့ Pseudo ကုုဒ္ဆိုုတာ ဘာလဲ ေသခ်ာ မသိလိုု ့ေမးလာတာနဲ ့ဒါေလး ေရးျဖစ္သြားတာပါ။ မသိေသးတဲ့သူေတြလဲရွိေတာ့ က်ေနာ္သိတာေလး မ်ွေပးယုုံပါ။ လိုုအပ္တာေတြလည္းရွိမွာပါ လိုုအပ္တာေလးေတြလဲ မွတ္ခ်က္ေလးေရးသားေပးသြားပါအုုံး။

Pseudo Code ဆိုုတာ အသံထြက္အားျဖင့္ ဆူဒိုု ကုုဒ္လိုု ့ဖတ္ပါတယ္။ က်ေနာ္ ကြန္ပ်ဳတာ စေလ့လာခါစတုုန္းကေတာ့ ပဆူဒိုုကုုဒ္လိုု ့ဖတ္လိုု ့တတန္းလုုံးက ရယ္တာ ခံရဖူးပါတယ္။ လူေတြဟာ ကြန္ပ်ဳတာ ပရုုိဂရမ္ဆိုုတာ ကိုုအရင္သိဖုုိ ့လိုုပါလိမ့္မယ္။ ပရိုုဂရမ္ဆိုုတာ စနစ္တက်ေရးဖြဲ ့ထားတဲ့ အစီစဥ္တက် လုုပ္ေဆာင္ရန္ခိုုင္းေစခ်က္လိုု ့ပဲ အရုုိးရွင္းဆုုံးအဓိပၺါယ္ဖြင့္

ပါရေစ။ ဒီလိုု လူေတြက ကြန္ပ်ဳတာကိုု စနစ္တက် လုုပ္ေဆာင္ဖိုု ့အတြက္ ပရိုုဂရမ္ေတြေရးသားျပီး ခိုုင္းေစပါတယ္။ ကြန္ပ်ဳတာကလဲ လူေတြခိုုင္းတဲ့အတုုိင္းတေသြမတုုိင္းလိုုက္နာေဆာင္ရြက္ပါတယ္။ ဒါကိုု ကြန္ပ်ဳတာ ပရိုုဂရမ္းမင္းလိုု ့လူေတြေခၚၾကတာပါ။ ဒါကိုု ကြန္ပ်ဳတာ ေဆာ့၀ဲလ္ေရးတယ္လိုု ့လဲ ေခၚဆိုုၾကပါေသးတယ္။

အဲလိုု ေရးသားရာမွာ ကြန္ပ်ဳတာနဲ ့လူနဲ ့ဆက္သြယ္ဖိုု ့ဘာသာစကားတခုုလိုုလာပါတယ္။ အဲဒါကိုု  Computer Programming Language ကြန္ပ်ဳတာ ပရိုုဂရမ္မင္း  ဘာသာစကား ( ကြန္ပ်ဳတာ နွင့္လူ ဆက္သြယ္တဲ့ဘာသာစကားလိုု ့ပဲဆိုုပါေတာ့) လိုု ့ေခၚပါတယ္။ အဲလိုု ဆက္သြယ္ရာမွာ ဘာသာစကားေပါင္းမ်ားစြာရွိပါတယ္။ လူေတြမွာလဲ ဘာသာစကားေတြအမ်ားၾကီးရွိသလိုုေပါ့။ ဒီလိုုဆက္သြယ္ၾကတဲ့အခါမွာ လူေတြအတြက္ အခက္ခဲ အနည္းငယ္ရွိပါတယ္။ ဘာလိုု ့လဲဆိုုေတာ့ ကြန္ပ်ဳတာဟာ အေျခခံက်တဲ့ decimal ျဖစ္တဲ့ 0 , 1 နွစ္မ်ဳိးကိုုသာ သိတဲ့ ခက္တုုံးတုုံး မုုိ ့ပါပဲ။ အဲ ေတာ့ က်ေနာ္တိုု ့သူ ့ကိုု တခုုခုု ခုုိင္းဖိုု ့ဆိုုတဲ့ေနရာမွာ Machine Level အထိ လိုုက္မွတ္ေနဖိုု ့မျဖစ္နုုိင္ပါဘူး ဥပမာ A ဆိုုတဲ့ Character နဲ a ဆိုုတဲ့ character  ၾကားမွာေတာင္ တန္ဖိုု းမတူညီတဲ့ တန္ဖိုုးေတြရွိေနပါတယ္။ အဲေတာ့ ကြန္ပ်ဳတာကိုုခိုုင္းဖိုု ့လူေတြအတြက္ မွတ္သားရ အရမ္းခက္လာပါတယ္။ ဒီလိုုအခါမွာလူေတြဟာ ကြန္ပ်ဳတာနဲ ့လူၾကားထဲမွ နားလည္ဖိုု ့ဘာသာစကားေတြ တီထြင္ၾကပါတယ္။ လူနားလည္ေလာက္မယ့္ အရာမ်ားေတြေပါ့ 0  ေတြ  1 ေတြပဲမဟုုတ္ေတာ့ဘဲ လူေတြဖတ္လိုု ့ရတဲ ့text ေတြပါ၀င္လာခဲ့တယ္။ ဥပမာ Show () ဆိုုတဲ့ Method ေလးလိုု ေပါ့ ၾသ လူေတြနားလည္ျပီ Show ဆိုု ျပမယ္ဆိုုတာ ဒါေပမယ့္ ကြန္ပ်ဳတာကေတာ့ Show() ဆိုုတာကိုုနားလည္လိမ့္မယ္လိုု ့သင္ထင္သလား။ ဟုုတ္ပါတယ္ သူလုုံး၀နားမလည္ပါဘူး အဲဓိအခါ သူနားလည္ဖိုု ့ၾကားထဲက ဘာသာျပန္ေပးမယ့္ Translators ေတြ compilers ေတြ လိုုအပ္လာတာေပါ့။ အဲေတာ့လူက လူလိုုေျပာလာနုုိင္တယ္ဆိုုပါေတာ့။

ကဲဒီေနရာမွာ က်ေနာ္ ရွင္းျပလိုု တာက Pseudo Code  အေၾကာင္းပါ။ ကြန္ပ်ဳတာ ပရိုုဂရမ္ေတြ ေရးသားရာမွာလဲ လူေတြရဲ ့ဘာသာစကားလိုုပဲ ဘယ္လိုု ေရးသားရမယ့္ ဘာေတြမလုုပ္ရဘူးဆိုုတဲ့ သဒၵါ (grammar) ရွိသလိုု သူ ့မွလဲ Syntax ေတြရွိပါတယ္။ ျပသတဲ့အခါေတာ့ဘယ္လိုုေရး ဘာေတြမေရးရဘူး အစရွိသည္ျဖစ္ေပါ့။ ဥပမာ Java program ေလးတခုုမွာဆိုုပါေတာ့ တခုုခုုကိုု ရိုုက္ထုုတ္ျပခ်င္တဲ့အခါ

System.out.print (” Hello World!”);   လိုု ့ေရးေလ့ရွိပါတယ္။ အဲဒိမွာ System က S ကုုိအၾကီးနဲ ့ေရးရမယ္ ျပီးရင္ ကိုုျပခ်င္တဲ့ message  ကိုု “” quote နဲ ့ျပမယ္ statement အဆုုံးသတ္မွာ semicolon (;) နဲ ့ပိတ္ရမယ္ ဒါေတြက language တခုုရဲ ့ syntax ပါ။ ဒီလိုုမွန္ေအာင္ေရးသားရပါတယ္။

ဒါေပမယ့္ Pseudo code မွာ အဲလိုုမ်ဳိး ဘယ္လိုုေရးရမယ္ဆိုုတဲ့ တကယ့္ ကြန္ပ်ဳတာ ပရိုုဂရမ္ဘာသာစကားေတြလိုုမ်ဳိး Rule (ဥပေဒသ)ေတြကိုုလုုိက္နာဖိုု ့မလိုုပါဘူး။ သူ ့မွာလဲ ေနရာေဒသ အဖြဲ ့အစည္းအလိုုက္ စံေတြကလဲကြဲျပားပါတယ္။ တေက်ာင္း တကာထာလိုု ေပါ့။ သူက တကယ့္ေပါ့ေပါ့ပါးပါး လြတ္လြတ္လပ္လပ္ရွိတဲ့ ဘာသာစကား ကုုဒ္ပါပဲ။ သူက တကယ့္ artificial & informal language ပါ။ ျပီးေတာ့ Text base system နဲ ့ေရးပါတယ္။ လူနားလည္ဖိုု ့စာသားနဲ ့ပဲေရးေလ့ရွိပါတယ္။ ေအာက္က ဥပမာ ပရိုုဂရမ္ေတြ ေလ့လာတဲ့အခါ နားလည္သြားပါလိမ့္မယ္။  သူက အမွန္တကယ္ေတာ့ system တခုုရဲ detail (algorithmic) design tool တခုုပါပဲ။ Pseudo code ကိုုဖတ္ျပီး က်ေနာ္တုုိ ့Control Flow (ပရိုုဂရမ္ ဘာျပီးရင္ဘာလုုပ္မယ္ဆိုုတဲ့ ပရိုုဂရမ္ရဲ ့လုုပ္ေဆာင္ပုုံ) ေတြကိုုေရးသားပါတယ္။ သူကိုုေတာ့ တကယ့္ပရိုုဂရမ္ေရးသားရမွာ မသုုံးၾကေတာ့ပါဘူး။ (သုုံးတဲ့အဖြဲ ့စည္း ပုုဂၢိဳလ္ေတြလဲပဲရွိတန္ေကာင္းပါရဲ ့) ။ပရိုုဂရမ္မာေတြ အစည္းအေ၀းတိုု ့ အခ်င္းခ်င္း တစ္ေယာက္နဲ ့တစ္ေယာက္ ပရိုုဂရမ္ရဲ ့ flow ကိုုခ်ျပရမွာေတာ့ အၾကမ္းသုုံးတာေတြ ေနာက္ျပီး ကိုုယ့္ဖာသာကိုု စဥ္းစားမိတာေတြကိုု ဒီတုုိင္းခ်ေရးတာေတြေလာက္ေပါ့။ ကဲ ဒီေလာက္ဆိုု အၾကမ္းမ်ဥ္းနားလည္ေလာက္မယ္ထင္တယ္ အဲဒါဆိုု ေအာက္က ဥပမာေတြေလ့လာျပီး သေဘာေပါက္နုုိင္မွာပါ။

Example (1) Checking a number positive or not? ( ဂဏန္းတခုုကိုု အေပါင္းလား ဒါမွမဟုုတ္ အေပါင္းမဟုုတ္ဘူးလားစမ္းသတ္မယ္ ( အနွုုတ္လိုု ့မဆိုုလိုုပါ) အေပါင္းမဟုုတ္တဲ့ ဂဏန္း ၾကိဳက္တာျဖစ္) စမ္းတဲ့ ပရိုုဂရမ္ေလးကိုု ၾကည့္ၾကရေအာင္ပါ။

begin
accept A;
if   A > 0 then
display   “Positive Number”;
endif;

end

ဒီေနရမွာ ပရိုုဂရမ္ကိုု Begin နဲ ့စျပီး end နဲ ့အဆုုံးသတ္ထားပါတယ္။တခ်ဳိ ့က လုုံး၀ Capital Letter နဲ ့ေရးၾကတယ္ BEGIN END အဲလိုု ေပါ့။ ဒါက ကိုုယ့္သေဘာပဲ။ မ်ဥ္းတားတာလဲ ကိုုယ့္သေဘာပဲ။ ဒါေပမယ့္ ကိုုယ့္ေက်ာင္းက ဘယ္လိုုေရးမွ အမွတ္ေပးမယ္ဆိုုရင္ေတာ့ တမ်ဳိးေပါ့ သိတဲ့အတုုိင္းျမန္မာ ေက်ာင္းေတြ တကၠသိုုလ္ေတြက သိပ္ကေလးဆန္တုုံးခုုထိ။ ဒီေနရမွာအေရးၾကီးတာ ပရိုုဂရမ္တခုုကိုုေရးတဲ့အခါမွာ အစရွိသလိုု အဆုုံးသတ္ပါရမယ္ဆိုုတာ သိရမယ္။ ေနာက္ျပီး   accept A; လိုု ့ေရးထားတာ သတိထားမိမယ္ထင္တယ္ A ဆိုုတဲ့ variable  အခန္းေလး တစ္ခုုလက္ခံလိုုက္တာပါပဲ။ တကယ့္ပရိုုဂရမ္မွာဆိုုေတာ့ရင္ေတာ့ Int A  ဆိုုျပီးလက္ခံမွာေပါ့ ။ ဆုုိလိုုခ်င္တာက လူက  A ဆိုုတဲ့ အခန္းေလးထဲကိုု ဂဏန္းတခုုခုုရိုုက္ထည့္လိမ့္မယ္။ အဲဒါကိုု လက္ခံဖိုု ့ေျပာတဲ့သေဘာပါ။ ျပီးေတာ့ if ဆိုုတဲ့ conditional logic နဲ ့စစ္ပါတယ္ ။ if ဆိုုတာက ပရိုုဂရမ္းမင္းမွာ အကယ္ ရြယ္ ျဖစ္ခဲ့ရင္ ေအာက္က အလုုပ္ကိုုလုုပ္မယ္ မျဖစ္ခဲ့ရင္ မလုုပ္ဘူးလိုု ့အဓိပၺါယ္ရပါတယ္။ က်ေနာ္ တုုိ ့ဒီေန ရမွာ A ထဲကိုု ရိုုက္ထည့္တဲ့ ဂဏန္းက 0 ထက္ ၾကီးသလား ဆိုုျပီး စစ္ထားတယ္။ ျပီးေတာ့ တကယ္လိုု ့ၾကီးခဲ့ရင္ ေအာက္မွာ display ဆိုုျပီး Positive Number ဆိုုတဲ့ message ေလးရိုုက္ထုုတ္ျပထားတယ္။ ျပီးေတာ့ end if ဆိုုျပီး if ကိုုျပန္ပိတ္ထားတာ သေဘာေပါက္မယ္ထင္ပါတယ္။ ဂဏန္းပါ 0 ထက္သာ ငယ္ခဲ့မယ္ဆိုုရင္ ပရုုိဂရမ္ဟာ ဘာမွမလုုပ္ဘဲ ျပန္ထြက္သြားမွာပါ။ ဒါ အရိုုးရွင္းဆုုံး ပရိုုဂရမ္ေလး တခုုပါပဲ။

အဲေတာ့ if အတြက္ ေ၇းတဲ့ပုုံက ဒီလိုုေပါ့။

if <condition> then
          [Module A]
endif;
တကယ္လိုု ့မ်ား ( ဒါျဖစ္ခဲ့ရင္ ) ေအာက္က

ကိုုယ္ခိုုင္းခ်င္တဲ့ အလုုပ္ လုုပ္ပါ
ျပီးရင္ထြက္

ကဲ ေနာက္တခုု ထပ္ျပီး ေလ့လာၾကည့္ရေအာင္
Example 2

begin

accept A;         /* input an integer */
if A/2 =0 then
display “Even Number”;
else 
display “Odd Number”;
endif;
end

အထက္ က သေဘာတ၇ားလိုုပါပဲ ပရိုုဂရမ္ကိုု စတယ္ ျပီးေတာ့ Aထဲကိုု ဂဏန္းလက္ခံတယ္ အဲေနာက္ မွာ ေရး ထားတာက ( /*  comment */) comment ပါ ကိုုယ္က ပရိုုဂရမ္ေရးတဲ့ အခါ ျပန္ဖတ္တဲ့အခါ နားလည္ေအာင္ မွတ္မိေအာင္ မွတ္ခ်က္ေ၇းထားတာပါ ဒါက ဘာလဲဆိုုတာကိုု ဒီေလာက္ထိက လြယ္ေသးလိုု ့အရမ္း အဆင့္ျမင့္ျပီးရွုုတ္ေထြးလာရင္ အဲလိုုေရးထားမွ အမွားျပင္တဲ့အခါ ျပန္ၾကည့္တဲ့အခါ နားလည္နုုိင္မွာ။ ျပီးေတာ့ တစ္ေယာက္နဲ ့တစ္ေယာက္ကေရးသားတဲ့ ပုုံစံမတူၾကေတာ့ အဲလိုု မွတ္ခ်က္ေလးပါမွ အဆင္ေျပတာ။ ဒါေၾကာင့္ ဒါဟာ အေလ့က်င့္ေကာင္းတခုုပဲ။ သူကိုုယ့့္ ကြန္ပ်ဳတာက က execute လုုပ္တဲ့အခါမွာ ထည့္ျပီးမလုုပ္ဘူး သူ က အဲလိုု (/* */ ) ေလးျမင္တာနဲ ့ ဒါ comment မွန္းသိတယ္ေက်ာ္သြားေပးတယ္။

တကယ္လိုု ့A ထဲ ကိုုေရာက္ေနတဲ့ ဂဏန္းဟာ 2 နဲ ့စာလိုု ့ျပတ္ရင္ အၾကြင္း 0 ရရင္ ဒါ even number ဆိုုျပီး ျပထားတယ္။ ရင္ပရိုုဂရမ္တုုန္းကလဲ ၾကီးရင္  Positive လိုု ့စစ္ထားတယ္ ေနာ္ မဟုုတ္ရင္ထြက္သြားတယ္။ ခုုက အဲလိုုမဟုုတ္ေတာ့ဘူး ။ တကယ္လိုု ့စားလိုု ့0 မၾကြင္းရင္ စားလိုု ့မျပတ္ရင္ else  (တကယ္လိုု ့မ်ား မဟုုတ္ခဲ့ရင္ ) odd  number   ဆိုုျပီးရိုုက္ထုုတ္ျပထားတယ္။

ကဲ ေနာက္တပုုဒ္ေလ့လာၾကည့္ရေအာင္

Example 3

begin
accept A;
if  A> 0 then
display “Positive Number”;
else if  A < 0 then

display “Negative”;
else

display “Zero”;
endif;

ကဲ ဒီ ပရိုုဂရမ္ေလးမွာေတာ့ အဆင့္ေလး တဆင့္ပိုုလာခဲ့တယ္ elseif
တကယ္လိုု ့မ်ား A ဟာ 0 ထက္ၾကီးရင္ ပရိုုဂရမ္ဟာ Positve ကိုု ျပျပီး ထြက္သြားမယ္။ အဲ 0  ထက္မၾကီး ဘူးဆိုုရင္ ေအာက္ကိုု ဆက္ျပီးဆင္းလာတယ္ 0 ထက္ေကာ ငယ္သလားလိုု ့စစ္တယ္ 0 ထက္ငယ္ရင္ေတာ့ Negative ျပျပီးထြက္မွာပါ။ မငယ္ဘူးဆိုုရင္ ထပ္ျပီးစစ္လိုု ့၇ေသးတယ္ else if ေတြအမ်ားၾကီးနဲ ့ ဒါဆိုု အေပၚက ပရိုုဂရမ္ပါထည့္လိုု ့ရေသးတယ္ A က 2 နဲ့ေကာ စားလိုု ့ျပတ္လားေပါ့ ျပတ္ရင္ေတာ့ ကိုုယ့္ျပခ်င္တဲ့ message ထည့္ျပ။ ဆိုုလိုုခ်င္တာ else if  ေတြ တစ္ေၾကာင္းထပ္မက စစ္လိုု ့ရေသးတယ္လိုု ့ဆိုုလိုု တာ။ ေနာက္ဆုုံးပ else က အေပၚကဟာေတြ တခုုမွမဟုုတ္ ခဲ့ရင္ Zero ဆိုုျပီး ျပမွာေလ ။ ေသခ်ာ ျပန္ စဥ္းစားၾကည့္ 0 ထက္ၾကီးရင္ Positive ပဲျပီးျပီ ။ ဘာမွဆက္လုုပ္စရာမရွိဘူး။ တကယ္လိုု ့0 ထက္မၾကီးဘူးဆိုု ရင္ သူက ငယ္ေသးလားေပါ့ ငယ္ရင္လဲ Negative ျပျပီး ျပီးျပီ။ အဲဒါေတာင္ မွ မၾကီးလဲမၾကီး မငယ္လဲ မငယ္ရင္ ဘာျဖစ္ရအုုံးမွာလဲ ေသခ်ာတယ္ ညီေနလိုု ့ေပါ့။ ေနာက္ဆုုံးအေျခအေန မွာ  else ကိုုသုုံးတယ္ နားလည္ေလာက္မယ္ထင္တယ္

ဒါက ကိုုယ့္ဖာသာကိုု A ထ႕ဲကိုု ဘာထည့္မွန္းမသိလိုု ့ကိုုယ့္ဖာသာ A ထဲကိုု ယူဆာထည့္တာမခံဘဲ ကိုုယ့္ဖာသာ default ထည့္ထားလိုု ့လဲရတာပဲ

ကဲ ဒါဆိုု Mark ဆိုုတဲ့ ထဲကိုု အမွတ္ထည့္မယ္ ျပီးရင္ 40 ထက္ၾကီးရင္ ေအာင္တယ္ 40 ထက္ငယ္ရင္ က်မယ္။ ကိုုယ္ၾကိဳက္သလိုု နည္းနဲ့ ေရးလိုု ့ရတယ္ အေျဖက အတူတူပဲထြက္ရမယ္။
ေနာက္ အမွတ္ကိုု ယူဆာဆီက ေတာင္းျပီးရင္ ၄၀ ကေန ၆၄ ၾကားဆိုု သာမန္ ေအာင္ “pass” ၆၅ ကေန ၈၄ ထိ credit ၈၅ ကေန အထက္ကိုု D ေပးမယ္ အဲဒါေတြတခုုမွမဟုုတ္ ရင္ဘာလဲ က်မယ္ေပါ့။ ကိုုယ့္ဖာသာ စမ္းေရးၾကည့္ပါ။ ျပီးရင္ yepaingphyo7035@gmail.com ကိုု ျပန္ပိုု ့လိုုက္ပါ က်ေနာ္ ၾကည့္ေပးပါ့မယ္ မွန္မမွန္ေပါ့။

အျခား conditional logic ေတြရွိပါေသးတယ္ ဒီေန ့ေတာ့ ဆူဒိုုကုုဒ္ဆိုု တာ ဘာ ျပီးေတာ့ if, else if , else ကိုုနားလည္မယ္ထင္ပါတယ္ တကယ္လိုု ့မ်ားအခ်ိန္ရခဲ့ရင္ Case statement ,while, do while စတာေတြ တင္ျပသြားေပးပါ့မယ္။ နားမလည္တာမ်ားရွိခဲ့ရင္ လဲ  yepaingphyo7035@gmail.com ကိုု တုုိက္ရိုုက္ဆက္သြယ္ ေမးျမန္နုုိင္ပါတယ္။

Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a comment