Algorithm(алгоритм)

Algorithm(алгоритм)

ပထမဆံုး အေနနဲ႕ algorithm ဆိုတာဘာလဲဆိုေတာ့္ instruction sequence (ညြန္းၾကားခ်က္(လုပ္ေဆာင္ခ်က္) အစဥ္အစီ ကိုေခၚဆိုတာပါ။
( /* ကၽြန္ေတာ္တို႕ computer science အေၾကာင္းေလ့လာခဲ့ရာတြင္ computer ဆိုတာ computer science နယ္ပယ္တြင္ tool တစ္ခုၿဖစ္ၿပီး ထို႕ေနာက္ မည္ကဲ့သို႕ အသံုးၿပဳနိဳင္ေၾကာင္းနွင့္ ၎အကူအညီၿဖင့္ အစြမ္းထက္ေစနိဳင္ေသာ programming ဆုိတာ coding အဓိက မဟုတ္ပဲ problem solving ၿဖစ္ၿပီး ထို problem solve ၿပဳလုပ္ရာတြင္ မည္ကဲ့သို႕ step by step ၿပဳလုပ္ရန္ေလ့လာရာတြင္ algorithm ၿဖင့္ အက်ဥ္းမ်ဥ္း သံုးသပ္ရၿဖင့္ computer_algorithm ကို စတင္ေလ့လာခဲ့ရၿခင္းၿဖစ္သည္ */ )

Algorithm မွာ အဓိက အသံုးၿပဳတဲ့ support ၿဖစ္ေစတဲ့ tool နွစ္ခုကေတာ့္ flowchart နဲ႕ Pseudocode တို႕ပဲၿဖစ္ပါတယ္။flowchart ကေတာ့္ program အေသးေတြအတြက္ၿဖစ္ၿပီး Pseudocode ကေတာ့္ large problem အတြက္ပဲၿဖစ္ပါတယ္။
Flowchart ဆိုတာကေတာ့္ algorithm ကို graphical နဲ႕ေဖာ္ၿပတယ္လို႕ပဲ အလြယ္မွတ္ယူနိဳင္ပါတယ္။
ကၽြန္ေတာ္တို႕ graphical နဲ႕ေဖာ္ၿပဖို႕အတြက္ symbol ေတြအမ်ားၾကီးရွိပါတယ္။အဲထဲကမွ အဓိကအသံုးၿပဳတဲ့ symbol 6 ခု (အေၿခခံ အက်ဆံုး ) ကေအာက္ပါအတိုင္းပဲ ၿဖစ္ပါတယ္။


Basic Symbols(основной символ)


  
အရွင္းဆံုးဥပမာ တစ္ခုအေနနဲ႕ ကိန္းနွစ္လံုးေပါင္းၿပီး average ယူတာကို algorithm နွင့္ flowchart နဲ႕အတူၿပပါမယ္။

Algorithm
အဆင့္(၁) ကိန္းနွစ္လံုးတန္ဖိုးကိုထည့္ရပါမယ္ // Input:two number  x and y
အဆင့္(၂) ထိုကိန္းနွစ္လံုး တန္ဖိုးရဲ႕ average တန္ဖိုးကို တြက္ခ်က္ၿပီး output ၿပရပါမယ္။ //Output: the average of x and y

Algorithm step:
1.input x
2.input y
3.sum = x+y
4.average = sum/2
5.output -> average

flowchart




Decision(switching logic)
Decision logic ကို အေၿခအေနနွစ္မ်ိဳးမွာ အသံုးၿပဳေလ့ရွိပါတယ္။conditon test နွင့္ goto command မွာအသံုးၿပဳေလ့ရွိတာပါ။အသံုးမ်ားတာကေတာ့္ condition test ပါ။
==     Equals
!=      Not Equal
<       Less than
<=     Less than or equal to
>       Greater than
>=     Greater than or equal to

တကယ့္လက္ေတြ႕မွာ ကြန္ပ်ဴတာက true/false နွစ္ခုပဲ စစ္ေဆးမွာၿဖစ္ပါတယ္။ဥပမာ a=10 , b=20 , c=100  ဟုသတ္မွတ္ထားပါက ၎ အား condition test ၿပဳလုပ္လွ်င္ ေအာက္ပါအတိုင္း ၿဖစ္လိမ့္မည္ ၿဖစ္သည္။
Condition (Question)      "Answer"
Is       a == b?                      No
Is        b > a?                       Yes
Is       c <= 100?                  No
Is        c > 90?                     Yes

ယခုေနာက္ထပ္ အေနနဲ႕ စာေမးပြဲရလဒ္ကို စစ္ေဆးတဲ့ algoritm တစ္ခုေရးၾကည့္ပါ့မယ္။အကယ္၍ ရမွတ္က 50 ထက္ေက်ာ္ေနရင္ ေအာင္ၿပီး မေက်ာ္ပါက က်ရွံဳးမယ့္ algorithm ပဲၿဖစ္ပါတယ္။

Algorithm step;
-input mark
- If mark>50           //conditional test
  Mark = pass
  else
  Mark = fail;
- mark(pass(or)fail)



Loop
Loop ဆိုတာကေတာ့္ serial of instruction ေတြကို ထပ္ခါထပ္ခါ ၿပဳလုပ္တာပါ။(မိမိလိုအပ္တဲ့ အေၿခအေနတစ္ခု မေရာက္ခင္အထိ ၿဖစ္နိဳင္ပါတယ္)။အကယ္၍ ကၽြန္ေတာ္တို႕ ကိန္း 10 လံုးလိုခ်င္ရင္ လိုကိန္း10 လံုးမၿပည့္မခ်င္း loop ၿပဳလုပ္မည္ၿဖစ္သည္။

ဥပမာ အေနနဲ႕ ကိန္း 10 လံုးကို loop ၿပဳလုပ္မယ့္ flowchart တစ္ခုကိုေရးသားၿပပါ့မယ္။
Begin-> A=1 , count-> B=10 , ကၽြန္ေတာ္တို႕ a(1) ကေနၿပီး b(10) အထိ သတ္မွတ္မွာပါ။




အထက္မွာေဖာ္ၿပခဲ့တဲ့ အတိုင္းပင္  A ရဲ႕ Initial value က 1 အေနနဲ႕စတင္ၿပီး ၎ တန္ဖိုးက B ထက္ငယ္ေနသ၍ false ၿဖစ္ၿပီး module ( သီးသန္႕ ၿပဳလုပ္မယ့္အပိုင္းတစ္ခုခု // ဥပမာ array တစ္ခုထဲကို store ၿပဳလုပ္တာလည္း ၿဖစ္နိဳင္ပါတယ္)။ ထို႕ေနာက္မွ A မွ 1 တိုးသြားၿပီး B တန္ဖိုးၿဖစ္တဲ့ 10 ေအာက္မငယ္မခ်င္း loop ၿပဳလုပ္ေနမွာၿဖစ္ပါတယ္။ A<B condition မွန္ေတာ့္ ေနာက္ထပ္မိမိတို႕ၿပဳလုပ္ခ်င္တဲ့ ဘက္ကို ဆက္လက္ၿပဳလုပ္မွာၿဖစ္ပါတယ္။

တစ္ၿခား အနည္းငယ္အသံုးၿပဳေသးတဲ့ case statement နဲ႕ while looping ကိုမေဖာ္ၿပေတာ့္ပါဘူး။
ယခုေဖာ္ၿပခဲ့တဲ့ algorithm ရဲ႕ flowchart ကလည္း အေၿခခံသေဘာတရားတစ္ခုရတဲ့အထိပဲ အၾကမ္းဖ်ဥ္းေဖာ္ၿပပါေပးတာပါ။Loop တစ္ခုရဲ႕ သေဘာတရားကိုနားလည္ရင္ က်န္တဲ့ flowchart တည္ေဆာက္ ပံုေတြ ဆက္လက္ၿပီး အလြယ္တကူေလ့လာနိဳင္ပါတယ္။



written by zmk@miet51

1 comment: