Saturday, March 30, 2013
Sunday, March 24, 2013
g.c.d ကို python ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္းသုံးၿပီး ရွာနည္း
အႀကီးဆုံး ဘုံဆခြဲကိန္းကို ယူကလစ္၏ Algorithm သုံးရွာျခင္း
def euclid(a,b): """ယူကလစ္၏ အႀကီးဆုံး ဘုံဆခြဲကိန္းရွာသည္ Algorithm ဖန္ရွင္ျဖစ္သည္။""" if a < b: a ,b =b ,a else: pass while b != 0: print(a,b) a, b = b, a%b print("g.c.d is "+ str(a)) print() return a euclid(216,240) ##euclid(21,14) ##euclid(216,240) ##euclid(345,225) ##euclid(2560,1160) ##euclid(256,116) def euclid1(a,b): """ယူကလစ္၏ အႀကီးဆုံး ဘုံဆခြဲကိန္းရွာသည္ Algorithm ဖန္ရွင္ျဖစ္သည္။""" if a < b: a ,b =b ,a else: pass while b != 0: print(a,b) tmp = a%b a, b = b, tmp print("g.c.d is "+ str(a)) print() return a euclid1(216,240)
Algorithm အဆင့္ဆင့္တြက္နည္း
Algorithm ဆိုသည္မွာ
"Algorithm ဟူသည္မွာ ပုစၧာတစ္ခုကို အဆင့္ဆင့္ တြက္ရာတြင္ လိုက္နာေဆာင္ရြက္ရမည့္ နည္းဥပေဒမ်ားျဖစ္သည္" ဟု ဆရာႀကီးေဒါက္တာ ခင္ေမာင္ဝင္း ၏ ကြန္ပ်ဴတာသုံး သခၤ်ာတြင္ ဆိုထားပါသည္။
ထိေရာက္ေသာ Algorithm အသစ္ကို တစ္ခုကို တီတြင္လိုက္နိဳင္သည္ နွင့္ ကြန္ပ်ဴတာသည္ အခ်ိန္တိုအတြင္း အေျဖ ထုတ္ေပးနိဳင္ေအာင္ေဆာင္ရြက္ေပးနိဳင္သည္။
ဘာလဲဟဲ Algorithm?
Algorithm ဆိုတာၾကားစဉ္က ကိုယ္နွင့္ တကယ္ မရင္းနွီးေသာ စာလုံးဟုထင္မိသည္။ ကြန္ပ်ဴတာ နွင့္ ယွဉ္ၿပီး ခ်က္ထိုးလို တစ္ခါမွမနိဳင္သည္လည္း Algorithm ျဖင့္ပင္ေဆာင္ရြက္ ထားသည္။ Google က ကြၽန္တို့ ရွာခ်င္တာကို လူေလာက္ျပန္ေျဖေပးနိဳင္တာသည္လည္း Algorithm ။
ေတြ့ၿပီးသူဘဲ
အေျခခံ အက်ဆုံး Algorithm သည္ ကြၽတ္ေတာ္တို့ ၆ တန္းက သင္ရေသာ အေပါင္းကိန္းနွစ္ခု၏ အႀကီးဆုံးဘုံဆခြဲကိန္း(Greatest Common Divisor ) ရွာသည့္ နည္းျဖစ္သည္။ မသိလိုသာ မသိရတယ္ ကြန္ပ်ဴသုံးသခၤ်ာကို ေျခာက္တန္းေလာက္တည္းက စတာပါကလား။ အႀကီးဆုံးဘုံဆခြဲကိန္း g.c.d သည္ ကိန္းနွစ္လုံးကို စား၍ ျပတ္ေသာ အႀကီးဆုံးဂဏန္းကို ဆိုလိုသည္။ တီထြင္တာက လြန္ခဲ့တဲ့ နွစ္ေပါင္ ၂၃၀၀ ေလာက္ ယူကလစ္ ဆိုတဲ့ ဘိုးေတာ္ႀကီးက ေတြ့ခဲ့တာ။ ကြန္ပ်ဴတာ ေခတ္အထိ စည္းဝါးကိုက္ အသုံးတဲ့ေနတုန္း။
ယူကလစ္ ၏ ရွာနည္း
ကိန္းနွစ္လုံးကို a နွင့္ b ဟုထားပါ။
အဆင့္ (၁)။ a နွင့္ b ဟုေသာ ကိန္းနွစ္လုံးကို စစ္ေဆးၾကည့္ပါ။ အဆင့္ (၂) ကိုသြားပါ။
အဆင့္ (၂)။ ထိုကိန္းနွစ္လုံးကို နႈိင္းယွဉ္ၾကည့္ပါ။ ျဖစ္နိုင္ေျခ သုံးမ်ိုးရွိသည္။
a နွင့္ b တူခ်င္တူမည္။
a သည္ b ေအာက္ ငယ္ခ်င္ငယ္မည္။
a သည္ b ထက္ႀကီးခ်င္ႀကီးမည္။ အဆင့္(၃)ကိုသြားပါ။
အဆင့္ (၃)။ a နွင့္ b တူခဲ့လ်င္ ၎င္းသည္ g.c.d ျဖစ္သည္။
အကယ္၍ a နွင့္ b မတူခဲ့လ်င္ အဆင့္(၄) ကိုသြားပါ။
အဆင့္ (၄)။ a သည္ b ေအာက္ ငယ္လ်င္ သူတို့ကို ေနရာေျပာင္းပါ။ (ဆိုလိုသည္မွာ ေစာေစာက a ကိုေရွ့တြင္ထားခဲ့ၿပီး b ကို ေနာက္တြင္ထားခဲ့၏။ အဆင့္(၄) ၏ ဆိုလိုရင္းမွာ ႀကီးေသာကိန္းကို a ဟုျပန္ေခၚ၍ ငယ္ေသာကိန္းကို b ဟု ေခၚရမည္ ဟူ၍ျဖစ္သည္။ ) အဆင့္(၅) သို့သြားပါ။
အဆင့္(၅)။ a ထဲမွ b ကိုနႈတ္ပါ။နႈတ္ခဲ့ေသာကိန္း (b) နွင့္ နႈတ္၍ရေသာ အေျဖ (a-b) တို့ကိုသူပါ။ အဆင့္(၂) သို့ျပန္သြားပါ။
ဤနည္းျဖင့္ အဆင့္ဆင့္တြက္သြားလ်င္ အဆင့္(၂) သို့ျပန္ေရာက္မည္။ ၿပီးလ်င္ အဆင့္(၃)၊ (၄) သို့ေရာက္မည္။ ေနာက္ဆုံးကိန္း နွစ္လုံးတူသြားလ်င္ အဆင့္ (၃) တြင္ အဆုံးသတ္သည္။
နမူနာ
21 နွင့္ 14 တို့၏ g.c.d ကိုရွာပါ။
အဆင့္(၁) 21, 14
အဆင့္(၂) 21 သည္ 14 ထက္ႀကီးသည္။
အဆင့္(၃) အေျဖမရေသးပါ။
အဆင့္(၄) 21 နွင့္ 14
အဆင့္(၅) 21-14=7
14 နွင့္ 7 ကိုယူပါ။
အဆင့္(၂) 14 သည္ 7 ထက္ႀကီး၏။
အဆင့္(၃) အေျဖမရေသးပါ။
အဆင့္(၄) 14 နွင့္ 7
အဆင့္(၅) 14 - 7 = 7
အဆင့္(၂) 7 နွင့္ 7 တူ၏။
အဆင့္(၃) g.c.d = 7
အသုံးခ်
အဲဒီ အႀကီးဆုံးဘုံဆခြဲကိန္းသိေတာ့ဘာလုပ္လိုရလဲ။ ေမးရေပမည္။
Steve Jobs (စတိဗ္ေဂ်ာ့စ္) ကေျပာဖူးသည္ တစ္စုံတရာေသာ ပစၥည္းတစ္ခုကို လူႀကီးေတြက ဒါဘာလဲလို့ ေမးမည္။ လူငယ္ေတြက်ေတာ့ ကြၽန္ေတာ္တို့ ဒါနဲ့ဘာလုပ္လို့ရလဲ ဟုဆိုသည္။ ကိုင္း အခုလည္း အႀကီးဆုံးဘုံဆခြဲကိန္းg.c.d သိေတာ့ ဘာလုပ္လို့ရမလဲေမးမည္။
ဥယ်ာဉ္ၿခံ တစ္ခုသည္ 216 မီတာက်ယ္၍ 240 မီတာအရွည္ရွိသည္။ အဲဒီဥယွဉ္ၿခံကို ၿခံစည္ရိုးခတ္မည္။ ကိုယ္ၿခံကို ကိုယ္ပိုင္ေလယဉ္နွင့္ ျဖစ္ေစ Google earth ကေနျဖစ္ေစ ၾကည့္ရင္ ၿခံစည္းရိုးတိုင္ေတြ ပတ္ပတ္လည္ အကြာအေဝးညီရွိေနေစေအာင္လုပ္သည့္ေနရာတြင္သုံးသည္။
ထိုအတူ ကိုယ္ပိုင္လယ္ကြက္မ်ားကို တူညီေသာ အကြက္မ်ား စိတ္ခ်င္သည့္ အခါသုံးနိဳင္သည္။ ကြၽန္ေတာ္တို့ နိဳင္ငံရွိ လယ္ကြက္မ်ားကို အေပၚစီးမွ ၾကည့္လ်င္ ေအာ္ငါတို့ေတြ မ်ဉ္းေဖ်ာင့္ေအာင္မဆြဲနိဳင္ေသးပါလား လို့ေတာင္ သံသယျဖစ္မိသည္။ ဟုတ္မဟုတ္ကို Google earth မွရႈစားၾကည့္ၾကပါ။
g.c.d ကို python ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္းသုံးၿပီး ရွာနည္းကို ဆက္လက္ေရးသားပါမည္။
အြန္လိုင္းေပၚတြင္ Python ကိုေလ့လာမယ္
ကြၽန္ေတာ္တို့ ပိုင္းသြန္ကို online ေပၚတြင္ ေလ့လာ လိုပါက ဒီေနရာေလး သည္
အလြန္ေကာင္ေသာ ေနရာတစ္ခုျဖစ္သည္။
Zen of Python
ပိုင္သြန္ကို ေလ့လာလိုေသာ သူမ်ား အတြက္ Zen of Python ကိုသိခ်င္ပါက။
ေလ့လာၾကပါကုန္။
import this
ကိုယ္ပိုင္းသြန္ ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း သူမွာ ပါလာေသာ builtin ပါလာေသာ module မ်ားကိုသိခ်င္သလား။
help()
ရိုက္ ၿပီးရင္modules လို့ရိုက္လိုက္ပါ Python တြင္ပါလားေသာ standard lib ကို ေတြ့ရမည္။ေလ့လာၾကပါကုန္။
Wednesday, March 20, 2013
အသုံးခ် ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း Applied Computer Programming
အစ
ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း စ စိတ္ဝင္စားသည္မွာ GTI တက္စဉ္ ကာလကစ၍ ျဖစ္သည္။ PLC ကို ကြန္ပ်ဴတာ မပါ ဘဲ စာအုပ္ထဲတြင္ code ေတြေရးၿပီး ေမာ္တာ တစ္လုံးကို Star-Dalta ေျပာင္းရာတြင္ အဆိုပါ PLC ကိုသုံး၍ လိုသေလာက္ အခ်ိန္ထားၿပီး ေမာင္းနိဳင္သည္ ကို စိတ္ဝင္စားျခင္းျဖစ္သည္။ ဆရာ ဦးေစာသိန္းထူး ကိုလည္းေမးၾကည့္သည့္ ဒီလိုစာလုံးေတြရိုက္ၿပီး ခိုင္းနိဳင္သလားဆိုၿပီးေတာင္ ေမးၾကည့္မိသည့္ ဆရာက ရသည္ ဆိုေတာ့ ေပ်ာ္မိသည္။ တကယ္ ေမာင္းနိဳင္သည္ ကိုေတာ့ လက္ေတြ့ စမ္းမၾကည့္ လိုက္ရဘဲ ေက်ာင္းၿပီးသြားသည္။ ေနာက္ လုပ္ငန္းခြင္ထဲေရာက္ေတာ့ Touch Screen ျဖင့္ေမာင္းရေသာ ေကာ္ေရသန့္ဗူးေတြလုပ္သည့္ Stretch Blow စက္မ်ား၊ Injection စက္မ်ားကို ကိုင္ရေသာ အခါ ကိုယ္နွင့္ေတာ္ေတာ္ အလွမ္းကြာ လွမည္ ဟုထင္ရသည္။
စာအုပ္
အလုပ္တြင္ အတူလုပ္ေသာ ကိုနိဳင္လြင္ဦး ဆိုေသာ အစ္ကိုတစ္ေယာက္သည္ BE ဆင္းတစ္ေယာက္ျဖစ္ၿပီး သူဆီတြင္ ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း စာအုပ္ တစ္အုပ္ရွိသည္ ဆိုသျဖင့္ ငွါးဖတ္ၾကည့္ရာ မည္သို့မွ် နားမလည္နိဳင္ပါ။ သို့နွင့္ ဆက္လက္မလုပ္နိဳင္ဘဲရွိေန၏။ တန္ဖိုးႀကီး သင္တန္းမ်ား မတက္နိဳင္သျဖင့္ ဤမွ်နွင့္ ပင္ရပ္ေနရသည္။
CNC
cnc ကို Nibban တြင္ အလုပ္လုပ္ေနစဉ္ သင္တန္းေပးသျဖင့္ ကြန္ပ်ဴတာကို ဒီလို အလုပ္ခိုင္းလို့ ရပါလားဆိုတာသိရသည္။ တို့ေက်ာင္းတြင္ သင္ရေသာ ကိုဩဒီနိတ္ျပင္ညီ သည္ ဒီလိုစက္ကို ခိုင္းစာလို့ရတဲ ဘာသာရပ္ တစ္ခုပါလားဆိုတာသိလာသည္။
အသုံးခ် Programming
သခၤ်ာနွင့္ ကြန္ပ်ဴတာ လူသား ဆက္စပ္ေနသည္ကို သိရွိၿပီး ေလ့လာလိုစိတ္မ်ားျပင္းျပလာရာမွ Python ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္းကို ေလ့လာမိသည္။ ဘယ္လို အသုံးခ်နိဳင္သလဲကို ၾကည့္ရင္ အသုံးခ် Programming ကိုေရးစမ္းၾကည့္မိပါသည္။
ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း စ စိတ္ဝင္စားသည္မွာ GTI တက္စဉ္ ကာလကစ၍ ျဖစ္သည္။ PLC ကို ကြန္ပ်ဴတာ မပါ ဘဲ စာအုပ္ထဲတြင္ code ေတြေရးၿပီး ေမာ္တာ တစ္လုံးကို Star-Dalta ေျပာင္းရာတြင္ အဆိုပါ PLC ကိုသုံး၍ လိုသေလာက္ အခ်ိန္ထားၿပီး ေမာင္းနိဳင္သည္ ကို စိတ္ဝင္စားျခင္းျဖစ္သည္။ ဆရာ ဦးေစာသိန္းထူး ကိုလည္းေမးၾကည့္သည့္ ဒီလိုစာလုံးေတြရိုက္ၿပီး ခိုင္းနိဳင္သလားဆိုၿပီးေတာင္ ေမးၾကည့္မိသည့္ ဆရာက ရသည္ ဆိုေတာ့ ေပ်ာ္မိသည္။ တကယ္ ေမာင္းနိဳင္သည္ ကိုေတာ့ လက္ေတြ့ စမ္းမၾကည့္ လိုက္ရဘဲ ေက်ာင္းၿပီးသြားသည္။ ေနာက္ လုပ္ငန္းခြင္ထဲေရာက္ေတာ့ Touch Screen ျဖင့္ေမာင္းရေသာ ေကာ္ေရသန့္ဗူးေတြလုပ္သည့္ Stretch Blow စက္မ်ား၊ Injection စက္မ်ားကို ကိုင္ရေသာ အခါ ကိုယ္နွင့္ေတာ္ေတာ္ အလွမ္းကြာ လွမည္ ဟုထင္ရသည္။
စာအုပ္
အလုပ္တြင္ အတူလုပ္ေသာ ကိုနိဳင္လြင္ဦး ဆိုေသာ အစ္ကိုတစ္ေယာက္သည္ BE ဆင္းတစ္ေယာက္ျဖစ္ၿပီး သူဆီတြင္ ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း စာအုပ္ တစ္အုပ္ရွိသည္ ဆိုသျဖင့္ ငွါးဖတ္ၾကည့္ရာ မည္သို့မွ် နားမလည္နိဳင္ပါ။ သို့နွင့္ ဆက္လက္မလုပ္နိဳင္ဘဲရွိေန၏။ တန္ဖိုးႀကီး သင္တန္းမ်ား မတက္နိဳင္သျဖင့္ ဤမွ်နွင့္ ပင္ရပ္ေနရသည္။
CNC
cnc ကို Nibban တြင္ အလုပ္လုပ္ေနစဉ္ သင္တန္းေပးသျဖင့္ ကြန္ပ်ဴတာကို ဒီလို အလုပ္ခိုင္းလို့ ရပါလားဆိုတာသိရသည္။ တို့ေက်ာင္းတြင္ သင္ရေသာ ကိုဩဒီနိတ္ျပင္ညီ သည္ ဒီလိုစက္ကို ခိုင္းစာလို့ရတဲ ဘာသာရပ္ တစ္ခုပါလားဆိုတာသိလာသည္။
အသုံးခ် Programming
သခၤ်ာနွင့္ ကြန္ပ်ဴတာ လူသား ဆက္စပ္ေနသည္ကို သိရွိၿပီး ေလ့လာလိုစိတ္မ်ားျပင္းျပလာရာမွ Python ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္းကို ေလ့လာမိသည္။ ဘယ္လို အသုံးခ်နိဳင္သလဲကို ၾကည့္ရင္ အသုံးခ် Programming ကိုေရးစမ္းၾကည့္မိပါသည္။
Python ကွန်ပျူတာ ပရိုဂရမ်းမင်း
Python ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း ဘာသာစကားကို သည္ ကြၽန္ေတာ္ အႀကိဳက္သည့္ ကြန္ပ်ဴတာ ပရိုဂရမ္းမင္း ဘားသာ စကားတစ္ခုျဖစ္သည္။ အခမဲ့ ရနိဳင္သည္။ ဆက္လက္တိုးပြားေနသည္။ တတ္သြားလ်င္ တကယ္လုပ္စားနိဳင္သည္ အဆင့္ အထိရွိသည္။ သင္လိုလဲ လြယ္ကူသည္။ Google တြင္ python ကိုသုံးထားသည္။ Dropbox သည္လည္း python ျဖင့္ပင္ေရးထားျခင္းျဖစ္သည္။ Python ျဖင့္ဖန္တီး ထားေသာ ေအာင္ျမင္ေနသည့္ application မ်ားစြာရွိသည္။
ကြၽန္ေတာ္ႀကိဳက္ရသည္မွာ အလြန္ကူေသာ ေၾကာင့္ျဖစ္သည္။ လြယ္ကူသေလာက္ အလုပ္လည္းအေတာ္ျဖစ္ပါသည္။ Python ကိုေလ့ထားသည့္ လက္စရွိသြားေသာ အခါ အျခား ပရိုဂရမ္းမင္း ဘာသာစကား မ်ားကို ေလ့လာရာတြင္လည္း အလြန္အေထာက္ အကူျပဳသည္။ Python ပရိုဂရမ္းမင္း ဘာသာစကား Object-Oriented programming လည္းျဖစ္သည္။
ကြၽန္ေတာ္ႀကိဳက္ရသည္မွာ အလြန္ကူေသာ ေၾကာင့္ျဖစ္သည္။ လြယ္ကူသေလာက္ အလုပ္လည္းအေတာ္ျဖစ္ပါသည္။ Python ကိုေလ့ထားသည့္ လက္စရွိသြားေသာ အခါ အျခား ပရိုဂရမ္းမင္း ဘာသာစကား မ်ားကို ေလ့လာရာတြင္လည္း အလြန္အေထာက္ အကူျပဳသည္။ Python ပရိုဂရမ္းမင္း ဘာသာစကား Object-Oriented programming လည္းျဖစ္သည္။
Subscribe to:
Posts (Atom)