အသုံးချ Ruby

၁ အဖွင့်။
၁.၁ နိဒါန်း။
ယခု Rubyသင်ခန်းစာများကို Mystery Zillion Education Site(http://www.edu.mysteryzillion.org) အတွက် ရည်ရွယ် ရေးသားပါသည်။သင်ခန်းစာ စီစဉ်ရေးသားသော်လည်း၊ ကျွန်ုပ်ကိုယ်တိုင် Ruby အပါအဝင် အခြားprogramming language များကို တစ်ဖက်ကမ်းခတ် တတ်ကျွမ်းသူမဟုတ်ပါ။ကိုယ်သိသလောက်၊ မှတ်သလောက်၊ တတ်သလောက် နှင့် ကျမ်းကြီး ကျမ်းငယ်အသွယ်သွယ်ကို ညှိနှိုင်း ခြင့်ချိန် ရေးသားပါသည်။ ထို့ကြောင့် အမှားပါရင်ခွင့်လွှတ်ဖို့ စကား ပလ္လင် ခံရပါသည်။ ကျွန်ုပ်သည် စာရေးဆရာ တစ်ယောက်လည်းမဟုတ်သဖြင့် ရေးသားပုံ ည့ံဖျင်းလျှင်လည်း ပွင့်လင်းစွာဝေဖန် အကြံပေးနိုင်ပါသည်။ သင်ခန်းစာပါ အကြောင်းအရာများ၊ အရေးအသား များကို၊ စာရှုသူများ၏တုံ့ပြန်မှုပေါ်မူတည်၍၊ ဆက်တိုက် ပြုပြင်၊ မွမ်းမံ ရေးသား သွားမည်ဖြစ်ပါ၍အဖက်ဖက် မှ ကောင်းမွန်စေရန်၊ စာရှုသူများ၏ ကိုယ်တိုင် ပါ၀င်၊ ဝေဖန်အကြံပေးမှု များ အထူးလိုအပ်ပါသည်။

သင်ခန်းစာပါအကြောင်းအရာများတွင်၊ အမှားပါလျှင်၊ မှီငြမ်းသောစာအုပ်များ၊ ကျွနု်ပ်၏သင်ဆရာ၊ မြင်ဆရာ၊ ကြားဆရာများ ၏ အမှားမဟုတ်ဘဲ၊ စာရေးသားစီစဉ်သူ ကျွနု်ပ်၏ညံ့ဖျင်းမှုကြောင့်သာဟု မှတ်ယူ ကြစေလိုပါသည်။
၁.၂ ရည်ရွယ်သူ စာဖတ် ပရိတ်သတ်များ။သင်ခန်းစာများသည်Programming တတ်ကျွမ်းပြီးသူများ ကိုချန်လှပ်၍ တစ်ခါမှ computerprogramming နှင့် မထိတွေ့ မသင်ကြားဖူးသူများအတွက် ရည်ရွယ်ပါသည်။ Rubylanguage ကို လေ့လာလိုသူ၊ Programmer များအနေဖြင့် တစ်ခြား စာအုပ်များကိုသာဖတ်ရှုကြစေလိုပါသည်။ ထိုသူများ အဖို့ ယခု သင်ခန်းစာများမှာလွယ်ကူလွန်းနေနိုင်ပေသည်။

ရည်ရွယ်ရင်းမှာ၊Computer Programming မသင်ကြားဖူးသေးသူများအား လွယ်ကူသော Ruby ကိုသုံး၍အခြေခံ သီဝရီများကို မိတ်ဆက်ပေးရန်၊ အခြေခံမှ တစ်ဆင့် မိမိဖာသာရှာဖွေလေ့လာနိုင်စေရန်၊ ခနတာ ပေးလိုက်သော အချိန်နှင့် တူညီသောတန်ဖိုးရှိသည့် အသုံးချမှုမျိုး လုပ်ဆောင်နိုင်ရန်။ Programmingနှင့်ဆိုင်ရာ အခြေခံ၊ အသုံးအနှုန်း များနှင့်ရင်းနှီးကာ အခြား ProgrammingLanguage များကိုလွယ်ကူစွာ ဆက်လက် လေ့လာနိုင်စေရန် တို့ဖြစ်ပါသည်။

Rubyရဲ့ အစွမ်းကို မိမိ နေ့စဉ် လုပ်နေကျ အလုပ်တွေထဲ မှာ ထည့်သွင်းအသုံးချလို့ရစေဖို့ ကိုလည်း အဓိက ထားကာ သင်ခန်းစာများကို စီစဉ်ထားပါသည်။
၁.၃ သင်ခန်းစာ ဖွဲ့စည်းပုံ။သင်ခန်းစာများတွင်သီဝရီ များကိုသာ ရေးသားဖော်ပြခြင်းထက်၊ လက်တွေ့ အသုံးချ မှုကို ဦးတည်ရေးသားပါသည်။ သို့သော် လက်တွေ့ မလုပ်ဆောင်မီ သိသင့်သည့် သီဝရီ အနည်းငယ်ကိုကားချပြရပေသည်။ ထို့နောက်၊ လက်တွေ့ တစ်ဆင့်ပြီး တစ်ဆင့် စမ်းသပ်မှုများကိုပြသ ရှင်းပြပါမည်။ (သင်ခန်းစာပါ Ruby Code များကို ကူးယူ ခြင်းထက်၊မိမိကိုယ်တိုင် လက်တွေ့ ရေးသား စေလိုပါသည်။) စာရေးကျွမ်းကျင် လိုလျှင်များများ ရေးပေး၊ စက်ဘီးစီကျွမ်းကျင်လိုလျှင် များများ စီးကျင့်ရသလို၊programming တတ်လိုလျှင် လည်း များများ ရေးသား စမ်းသပ် မှုများလိုအပ်ပါသည်။

သင်ခန်းစာ တစ်ခုစီ အပြီး တွင်၊အလျင်းသင့်သလို၊ အိမ်စာ လေ့ကျင့်ခန်းငယ်များ ပေးပါမည်။ ၄င်းမှာလည်း၊ကျွန်ုပ် ရှာဖွေ ကြံဆနိုင်မှုတွင် မူတည်သဖြင့်၊ လေ့ကျင့်ခန်းမပေးနိုင်လျှင် လည်း မိမိဖာသာ ရှာဖွေ ကြံဆ လေ့ကျင့်ကြစေလိုပါသည်။နောက်ဆုံးပိုင်းတွင်၊ မိမိ ဖာသာ လေ့လာ ဖတ်ရှုသင့်သည့် Web Site များ၊စာအုပ်များကို ထည့်သွင်း ဖော်ပြ ထားသည်။ ဖော်ပြပါ Reference များသာမကမိမိဖာသာ လညး် လက်လှမ်းမီသလောက် ရှာဖွေ ဖတ်ရှုကြစေလိုပါသည်။

သင်ခန်းစာတစ်ခုခြင်းစီ ၏ ပမာဏ ကို ဖြစ်နိုင်သ၍ သီဝရီ ၅ မိနစ်ခန့်။ စမ်းသပ်ချိန် ၂၀မှ ၃၀ မိနစ်ခန့်။ လေ့ကျင့်ခန်းများနှင့် ဖတ်စာများမှာ မိမိအားရင် အားသလိုလိုက်နိုင် လျှင် လိုက်နိုင်သလို ဖတ်ရှုနိုင်ရန် ကန့်သတ်စီစဉ်ရေးသားထားပါသည်။
ရည်ရွယ်ရင်းမှာ ယခုလို မြန်မာဘာသာနှင့်ရေးသော သင်ခန်းစာများကို ဖတ်ရှုခြင်းအပြင်၊ မူရင်း လက်တွေ့ လောကတွင်ရေးသားဖလှယ်ကြသော Ruby လောက နှင့် ထိတွေ့စေရန်နှင့် အခြေခံသိသွားသောအခါ၊မိမိဖာသာ ရှာဖွေ ဖတ်ရှု တိုးတက်စေရန်ဖြစ်ပါသည်။

၁.၄ Ruby ဘယ်ကစ၊ ဘာကို ရည်ရွယ်၊ ဘာကောင်းလဲ။
Ruby ကို ဘယ်သူက ဘယ်အချိန်မှာ စတင် တီထွင် လိုက်သလဲ ကို ဒီနေရာမှာ ရှာဖွေ ဖတ်ရှုကြပါ။ http://www.ruby-lang.org/en/about/

Rubyရဲ့ ရည်ရွယ်ချက် ကို Web Site အများမှာ၊ အမျိုးမျိုး ဖွင့်ဆိုတာကိုတွေ့နိုင် ပါသည်။ ကျွနု်ပ်၏ ကိုယ်တွေ့၊ Ruby ကောင်းပုံလေးများမှာProgrammer ကို programming ရေးရန် ပျော်ရွှင်၊ အလုပ်တွင်စေတာရယ်ပဲဖြစ်ပါသည်။
Compile Language မဟုတ်တာကြောင့်၊ခုရေး ခု run ကြည့်လို့ရပါသည်။ ထို့ပြင် IRB (နောက်ပိုင်းတွင်အသေးစိတ်ရှင်းပြပါမည်) ရဲ့ အကူအညီကြောင့် Ruby code ကို ကိုယ့် Program ထဲထည့်မရေးခင်၊ စမ်းသပ်ကြည့်နိုင်ခြင်းကြောင့်၊ Coding Error ထက် ကိုယ့် ရဲ့Problem ကို အဓိကထား ရှင်းလင်းနိုင်တာကြောင့် Ruby ကိုချစ်ရပါသည်။
၁.၆ Ruby ကို Computer တွင် တပ်ဆင် ခြင်း။စာရှုသူအများစုဟာWindows အသုံးပြုကြတာမို့ Window အတွက် Install လုပ်ပုံကိုသာအဓိကထားပြောသွားပါမည်။ Linux သုံးသူများကတော့ နည်းပညာပိုင်း အတော်အတန်တီးခေါက်မိသူတွေဖြစ်တာမို့ အထွေအထူး ရှင်းမပြတော့ပါ။ ဘာ OS ပဲ သုံးသုံးRuby ကို ဒီနေရာ (http://www.ruby-lang.org/en/downloads/) မှာရယူနို်င်ပါသည်။ Windows အသုံးပြုသူများ အနေနဲ့ “Ruby on Windows”ခေါင်းစဉ်အောက်က “One Click Installer” ကို ရယူစေလိုပါတယ်။ ဒါဟာအလွယ်ဆုံးနဲ့ အရှင်းဆုံး Install လုပ်နည်းဖြစ်ပါသည်။

ယခုရေးသား နေချိန်မှာ One Click Installer တွင် Ruby version 1.8.6ပါ၀င်ပါတယ်။ နောက်ဆုံး စမ်းသပ်ဆဲကတော့ 1.9.0 ဖြစ်ပါတယ်။ One ClickInstaller ဟာ Microsoft Installer Package ဖြစ်လို့ လွယ်လင့်တကူ installလုပ်နိုင်ပါတယ်။ ဖြစ်နိုင်လျှင် Ruby ကို C:\Ruby အောက်မှာ ပဲ Installလုပ်စေချင်ပါတယ်။ ဘာ့ကြောင့်ဆို တစ်ချို့ Ruby ကို သုံးတဲ့ applicationတွေမှာ Ruby ရဲ့ location ကို C:\Ruby အောက်မှာ သွားရှာတတ်ကြလို့ပါ။

Ruby ကို install လုပ်ပြီးပြီဆိုရင် (Start+R) ကို နှိပ်ပြီး “cmd” လို့ ရိုက်ထည့်လိုက်ပါ။ ပြီးလျှင် “ruby -v” ဟု ရိုက်ပြီး “Enter” ခေါက်လိုက်ပါ။
အောက်ဖော်ပြပါကဲ့သို့ install လုပ်ထားသော Ruby ၏ version number ပေါ်လာပြီဆိုလျှင် Rubyအား အောင်မြင်စွာ install လုပ်ပြီးပြီး ဖြစ်ကြောင်းမှတ်ယူနိုင်ပါသည်။
[LEFT]Image[/LEFT]၁.၇ Command Line အခြေခံ။ကွန်ပြူတာအသုံး ချသူတိုင်း Command Line ကို သုံး တတ်သင့်ပါသည်။ Ruby ရေးမည့်Rubyist များအဖို့၊ မသိမဖြစ် သိသင့် သည့် အချက်အလက်အချို့ကိုရေးသားဖေါ်ပြလိုပါသည်။ ဒီနေရာတွင် Command Line သည် Windows Command Lineအကြောင်းကိုသာ ဖော်ပြပါမည်။

(Command Line အခြေ ခံ အကြောင်းကို သီးခြား သင်ခန်းစာ တစ်ခု အနေဖြင့် ရေးသားဖော်ပြပါမည်။)

၁.၈ Ruby Editorမည်သည့်programming language ကို ရေးသား ပြုပြင်သည်ဖြစ်စေ၊ editor တစ်ခုတော့လိုအပ်သည်ပင်။ Ruby ကို Edit လုပ်ရန် မည်သည့် editor ကို မဆိုသုံးနိုင်ပါသည်။ ယုတ်စွ အဆုံး windows တွင် ပါသော NotePad ကိုပင်အသုံးပြုနိုင်ပေသည်။ သို့သော် အကြံပြုလိုသည်မှာ အလုပ်တွင်ကျယ်စေရန် အတွက်၊အနည်းဆုံး syntext highlighting , find and replace နှင့် line numberဖော်ပြပေးနိုင်သော editor တစ်ခုခုကို ရွေးချယ်စေလိုပါသည်။

၁.၆ တွင်ဖော်ပြသော Ruby installation တွင် SciTE ဟူသည် free text editor တစ်ခုပါ၀င်ပါသည်။ NotePad++ သည်လည်း ကိရိယာ စုံလင်သော editorကောင်းတစ်ခုဖြစ်ပါသည်။ Ruby application အကြီးကြီးတစ်ခု ရေးလိုပါကIntegrated Development Environment ခေါ် editor အကြီးကြီး တစ်ခုကိုသုံးလျှင် ပိုကောင်းပါသည်။ ကျွန်ုပ် ကိုယ်တိုင် အနေဖြင့် မူ NetBeans 6.1ကို အသုံးပြုရန် အားပေးပါသည်။ NetBeans တွင် အထက် ဖော်ပြပါ၊ အခြေခံကိရိယာများ အပြင် အဆင့်မြင့် editing ကိရိယာများ (Auto Complete,Intellisense, Project management နှင့် Difference comparison စသည်ဖြင့်)ပါ၀င်ပါသည်။

သင်ခန်းစာများ လေ့ကျင့်ရန်အတွက်ကို ကား၊ SciTE, NotePad သို့မဟုတ် NotePad++ ကိုသာ အသုံးပြုကြရန်အကြံပြုလိုပါသည်။ သို့မှသာ၊ လက်ဖြစ် ရေးစွမ်းရည် တိုးတက်လာမည်ဖြစ်သည်။
၁.၉ အခြား Ruby နှင့်ပတ်သက် သည့် အကြောင်းများ။၁.၉.၁ Computer နှင့် Program လုံခြံုရေး။
Rubyသည် scripting language ဖြစ်သဖြင့်၊ code များကို၊ plain text file (.rb)များအဖြစ် သိမ်းဆည်းပါသည်။၊ မည်သူမဆို source code ကို ၀င်ရောက် ကြည့်ရှုပြုပြင်လို့ရသည်မို့၊ ကိုယ့် program code ထဲကို ဖျက်လိုဖျက်ဆီးလုပ်တဲ့code များ ၀င်ရေးလိုက်ရင်၊ မလိုလားအပ်တဲ့ ပြဿနာများဖြစ်ပေါ်စေနိုင်ပါသည်။ဥပမာ system ထဲ က အရေးကြီးတဲ့ ဖိုင် တစ်ချို့ ကိုဖျက်ပစ်တာမျိုးလုပ်နိုင်ပါသည်။

၁.၉.၂ Anti-Virus များနှင့် Ruby။
အထက်ကဆိုခဲ့ သလိုပင်၊ Ruby Library ထဲ က ဖိုင်အားလုံးဟာလည်း Plain Text fileတွေဖြစ်လို့ တစ်ခုကို တစ်ခု ခေါ်ယူ သုံးစွဲတဲ့ အခါမှာ Anti-Virusများကြောင့် လည်း ကိုယ့် program မြန်သင့်သလောက်မမြန်တာမျိုးလည်းကြံုရနိုင်ပါသည်။ အကြောင်းမှာ၊ အချို့သော Anti-Virusများသည် Computer ထဲမှ ဖိုင်တစ်ခုကို ဖွင့်တိုင်း၊ ဖွင့်သည့် program(process) ကို scan လုပ်လေ့ရှိသဖြင့် Ruby ကဲ့သို့ ဖိုင် များစွာ ကိုဖွင့်ယူ ခေါ်ဆောင် အသုံးပြုသည့် အပြုအမူမျိုး သည် ruby interpreter processအား (မလိုအပ်ဘဲ) အခါပေါင်းများစွာ scan လုပ်လေ့ရှိပါသည်။ ထိုသို့သောAnti-Virus အတွက်၊ .rb ဖိုင်အား ချွင်းချက် ပေးသည့် setting ကိုပြောင်းလဲထားရန်လိုပါသည်။

သို့သော်သတိပြုရန်မှာ ထိုသို့ချွင်းချက်ပေးထားပါက၊ Virus သိုမဟုတ် Trojan တစ်ခုခုက .rb ဖိုင်များကို ခေါ်ယူ သုံးစွဲခြင်းမှ ကာကွယ်ပေးနိုင်ခြင်း မရှိတော့ပေ။

၁.၉.၃ Interactive RuBy သို့မဟုတ် IRB ။
Rubycode များကို အသေအချာ မရေးမီ၊ စမ်းသပ်လိုသည့် code အစိတ်အပိုင်းလေးများကို IRB ကိုသုံး ၍ စမ်းသပ်ကြည့်နိုင်ပါသည်။ မိမိဖြစ်စေလိုသော ပုံစံကဲ့သို အလုပ်လုပ်သည်ဆိုမှ ထို code ကို အမှန် တကယ်ရေးနေသော program ကြီးထဲကို ရေးထည့်ခြင်းဖြင့် အဓိက program အားမလိုလားအပ်သော၊ မသေချာသော စမ်းသပ်မှုမျိုး ပြုပြင်ခြင်းမျိုးမှာရှောင်ကျဉ်နိုင်ပါသည်။

IRB ကို သီးခြားခွဲမရေးတော့ဘဲ၊ သင်ခန်းစာများနှင့် တွဲလျက်အလျဉ်းသင့်သလိုရေးသားဖော်ပြပါမည်။ သို့မှသာ IRB အား မည်သို့ နေရာတွင်အသုံးချရသည်ကို လက်တွေ့ သိရှိ လေ့ကျင့်ပြီးသားဖြစ်ပေမည်။

၁.၉.၄ Ruby Documentation သို့မဟုတ် RI။
RIcommand သည် မိမိသိလိုသော Ruby နှင့် သက်ဆိုင်သည့် code များ အကြောင်းကို(documentation, help and info) ဖော်ပြပေးပါသည်။ RI ကို သုံး၍ဖန်တီးထားသောUser Interface ပါသည့် program မှာ FXRI ဖြစ်ပါသည်။ FXRI သည် Rubyinstallation နှင့်ပါ၀င်လျက်ရှိရာ Start menu အောက်တွင်ရှာဖွေဖွင့်ကြည့်နိုင်ပါသည်။

၁.၉.၅ Ruby GEMs (Ruby ရတနာခဲလေးများ)။
ပတ္တမြားတစ်လုံးတည်းလည်း လှသလို၊ ပတ္တမြား ကို တစ်ခြား ရောင်စုံ ကျောက်မျက်ရတနာလေးတွေ ရံတော့ ပို လှလာပါသည်။ အလားတူစွာ၊၊ Ruby နှင့် တွဲလျက်၊တစ်ခြား Gems လေးတွေကိုပါ တွဲသုံးခြင်းဖြင့် Rubyist တွေ အတွက် မိမိလုပ်လိုတဲ့ program တစ်ခုကို အချိန် တို အတွင်း လွယ်လွယ်ကူကူ ရေးနိုင်၊ပြီးစီးနိုင်ပါသည်။

Gem သည် ကြိုတင်ရေးသားထားသော Ruby program ငယ်လေးများဖြစ်ပါသည်။ Ruby programတစ်ခုရေးရာတွင် ကိုယ်နှင့် တိုက်ရိုက်မပတ်သက်သော function မျိုးတွေကိုကိုယ်တိုင် ရေးသားဖန်တီးမယ့် အစား၊ သူများ ရေးပြီးသား ruby code ကိုခေါ်ယူသုံးစွဲနိုင်ပါသည်။ ထိုသို့ သုံးစွဲရ လွယ်ကူစေရန် ရေးသားထားသော codeများကို .rb ဖိုင်တွေနဲ့ ဖြန့်ဝေမည့်အစား Gem အဖြစ် ထုတ်ပိုးပြီးဖြန့်ဝေခြင်းသည် Ruby သမားများ ရဲ့ ဓလေ့တစ်ခုဖြစ်ပါသည်။ Gem သည် Rubyinstallation နှင့် အတူ တွဲလျက်ပါပြီးဖြစ်ပါသည်။

Gem တစ်ခုကို သုံးချင်လျှင်၊ gem command ကိုသုံးကာ online မှ တိုက်ရိုက် install လုပ်နိုင်ပါသည်။
gem -v” လို့ ရိုက်ပြီး “Enter” ခေါက်လိုက်ရင် လက်ရှိ install လုပ်ထားတဲ့ Gem version ကို ဖော်ပြပြီး။ “gem list” လို့ရိုက်လိုက်ရင် တော့ လက်ရှိ install လုပ်ထားတဲ့ Gems တွေကို list လုပ်ပြပါလိမ့်မယ်။

ယခု အဖွင့်ပိုင်းကို ဖတ်အပြီး တွင် စာရှုသူများ အနေဖြင့်၊ http://www.ruby-lang.org မှ Ruby ကို download လုပ်ကာ install လုပ်စေလိုပါသည်။
နောက် ဆက်လက် မည့် သင်ခန်းစာများတွင် Ruby အသုံးချနည်းကို ဖော်ပြမည် ဖြစ်သဖြင့် Ruby ကို မိမိစက်တွင် တပ်ဆင် ထားရန် လိုအပ်ပါသည်။

ကျေးဇူးအထူး တင်ရှိပါသည်။

စကားချပ်။ ။ သင်ခန်းစာများကို တစ်ပတ်တစ်ခါ မှန်မှန် တင်နိုင် အောင်ကြိုးစားရေးသားပါမည်။ စာဖတ်သူများ အနေဖြင့် မရှင်းလင်းသည်များကို MysteryZillion forum တွင်ဖြစ်စေ၊ edu တွင်ဖြစ်စေ ရေးသား မေးမြန်းဆွေးနွေးနိုင်ပါသည်။ မအားလပ်သဖြင့် သင်ခန်းစာများကို မှန်မှန်မတင်နိုင်လျင်လည်း ခွင့်လွှတ်စေလိုပါသည်။

သင်ခန်းစာ ၁။ ။ Editing and Running Ruby

စာရှုသူများ Ruby ကို Install လုပ်ပြီးပြီဟုယူဆပါသည်။ သို့မဟုတ်ပါက၊ အဖွင့် အခန်းကို ဖတ်ရှု၍ Install လုပ်ကြပါကုန်။
ယခု အခန်းတွင် Text File manipulation ကို ရေးသားရန် ရည်ရွယ်သော်လည်း၊ Ruby ရေးသားရာတွင် မဖြစ်မနေ၊ ထပ်မံတလဲလဲ လုပ်ကိုင်
ရမည့် အဆင့်များကို ရင်းနှီးစေရန်နှင့်၊ ၄င်းတို့ကို အချိန်အသက်သာဆုံးလုပ်ကိုင်နိုင်စေရန်၊ ယခု အခန်းကို ရေးသားလိုက်ပါသည်။
ရေရှည်တွင်လည်း အကြိုးရှိမည်ဟု ယူဆပါသည်။

၁။ ။ Ruby ဖိုင်တစ်ခု ဖန်တီးခြင်း

Ruby ကို install လုပ်ပြီးပါက Windows ၏ right click menu ရှိ New menu အောက်တွင် ဖော်ပြပါ (Figure 1) ကဲ့သို့
Ruby Program ဟု Menu အသစ်ရောက်ရှိလာပါသည်။ ၄င်း ကို အသုံးပြု၍ Ruby ဖိုင်တစ်ခု ဖန်တီးနိုင်ပါသည်။

aVK93dr
[Figure 1]

Notepad ကဲ့သို့ ရိုးရှင်းသော text editor ကိုသုံးလျက် ဖိုင်ကို .rb နှင့် သိမ်းဆည်း၍လည်း ဖန်တီးနိုင်ပါသည်။
Ruby installation နှင့် အတူပါလာသော SciTE editor ကိုသုံး၍လည်း ဖိုင်ကို .rb extension နှင့်သိမ်းဆည်း၍လည်းဖန်တီးနိုင်ပါသည်။

၂။ ။ Ruby Editor

Programming ရေးရာတွင် Syntax Highlighting ပါသော Editor ကိုသုံးမှသာ အလုပ်တွင်ကျယ်ပေသည်။
Editor တိုင်းတွင် အားသာချက်များ၊ အားနက်ချက်များရှိကြသကဲ့သို့၊ programmer ၏ စိတ်ကြိုက် Editor များလည်း ကွာခြားနိုင်ပေသည်။
ယခု သင်ခန်းစာများ အတွက်မူ၊ Ruby နှင့်တွဲပါလာသော SciTE editor ကို စံထား၍ အသုံးချရေးသားဖော်ပြပါသည်။

မည်သည့် Editor ကိုသုံးသုံး၊ အကြံပြုလိုသည်မှာ အောက်ပါ သတ္တိများပါသော text editor ကိုရွေးချယ်အသုံးပြုစေလိုပါသည်။

1. Syntax Highlighting
2. Line Number
3. Code Fold
4. Shortcuts for ease of editing
5. Multiple File view (tabbed view)

အောက်ဖော်ပြပါ (Figure 2) တွင် SciTE editor မှ Feature များကို ဖော်ပြထားပါသည်။

fig2

[Figure 2]
SciTE editor သည် များစွာသော programming language များ၏ syntax ကို highlight လုပ်နိုင်ပါသည်။
Save မလုပ်ရသေးသော ဖိုင်ကို * နှင့်ဖော်ပြပြီး၊ တစ်ခုထက်ပိုသော ဖိုင်များကို လည်း တပြိုင်နက် edit လုပ်နိုင်ပါသည်။
Line Number နှင့် Code Fold တို့သည် ရှည်လျားသော program ဖိုင်ကို editor လုပ်ရာတွင် အလွန် အသုံးဝင်ပါသည်။
SciTE တွင်ပါသော quick run window ကို သုံး၍ F5 ကို နှိပ်ပြီး လက်ရှိ ရေးသားနေသော ruby program ကိ်ု run နိုင်ပါသည်။

SciTE editor တွင် အလွန်အသုံးဝင်သော Short cut များပါ၀င်ပါသည်။ ၄င်းတို့ကို အလျဉ်းသင့်သလို့ သင်ခန်းစာများနှင့်အတူ
ရေးသားဖော်ပြသွားပါမည်။

၃။ ။ Ruby ကို ဘယ်လို Run မလဲ
Ruby သည် scripting language ဖြစ်သဖြင့် Ruby intepreter နှင့် run ရပါသည်။

ဥပမာ test.rb သည် C:\ အောက်တွင်ရှိသည် ဆိုကြပါစို့။
Windows command line မှ တစ်ဆင့် ruby test.rb ဟု ရိုက်ထည့်ပြီး Enter ခေါက်ပြီး test.rb ကို run နိုင်ပါသည်။
ruby.exe (ruby interpreter) သည် System Path ထဲတွင် ရှိပြီးဖြစ်သဖြင့် ruby ကိုချန်လှပ်ကာ test.rb ဟုသာ ရိုက်ပြီးလည်း
run နိုင်ပါသည်။ ထို့ပြင် ruby ဖိုင်ကို double click လုပ်ခြင်းဖြင့်လညး် ပြီးမြောက်စေနိုင်ပါသည်။

aVK9pFJ

[Figure 3]

၄။ ။ Basic Input, Output (အခြေခံ အသွင်း၊ အထုတ်)

Ruby program တွင် တစ်ခါတစ်ရံ မိမိ ပေးသွင်းလိုသော အချက်အလက်များကို command line မှတစ်ဆင့်ပေးသွင်းနိုင်သည်။
ဥပမာ test.rb “AOK” ဟုရိုက်လိုက်ပါက အောက်ပါ Figure 4 အတိုင်းတွေ့ရပေမည်။ test နေရာတွင် AOK ၀င်ရောက်လာသည်ကို သတိချပ်ပါ။

fig4

[Figure 4]
၄င်းနည်းဖြင့် အချက်အလက်များကို Ruby ဖိုင်ထဲတွင် အသေမရေးထည့်ဘဲ၊ ပေးသွင်းနိုင်ပါသည်။

Figure 4 တွင်ဖော်ပြသော ruby မှရေးထုတ်လိုက်သည့် စာကြောင်းများကို ယခုကဲ့သို့ command line တွင်ကြည့်ရှုနိုင်သော်လည်း
စာကြောင်းပေါင်း ရာထောင်ချီလာသော အခါ command line သည် စာကြောင်းအားလုံးကို မဖော်ပြနိုင်တော့ပေ။
ထိုကြောင့် အောက်ပါ command line အခြေခံကိုသုံးကာ ruby မှ output စာကြောင်းများကို မိမိ စိတ်ကြိုက် text file တွင် ထည့်သွင်းနိုင်ပါသည်။

fig5

[Figure 5]

fig6

Figure 6]
test.rb > output.txt သည် output.txt text file ကို ဖန်တီးပြီး ruby မှ output များကို ထည့်သွင်းသိမ်းဆည်းလိုက်ပေသည်။
ထို့ကြောင်း command line တွင် မည်သည့်စာမှမပေါ်တော့ပေ။ ယခုဖော်ပြပါ၊ သတ္တိမှာ ruby ၏စွမ်းပကား မဟုတ်ပေ။ command line
တွင်ပါ၀င်သော စွမ်းပကားသာဖြစ်ပါသည်။

test.rb ကို Server ပေါ်မှ ဆွဲချကာ စမ်းသပ်ကြည့်စေလိုပါသည်။ လတ်တလောတွင်မူ test.rb တွင်ပါ၀င်သော code များကို ဂရုပြုစရာမလိုပေ။
နောက်ပိုင်းတွင် test.rb မှ code များကို ရှင်းလင်းလွယ်ကူစွာနားလည်း လာနိုင်ပေမည်။

သင်ခန်းစာ ၂ တွင်Ruby ကိုသုံးကာ text file များကို ဖွင့်ခြင်း၊ ရှာဖွေခြင်းနှင့် ပြုပြင်ခြင်း၊ ပြန်လည် သိမ်းဆည်းခြင်းများကို ရေးသားဖော်ပြပါမည်။

နောက်သင်ခန်းစာမှစ၍ စာနည်းနည်း များလာမည့်ပြင်၊ ခပ်သွက်သွက်နှင့် အကြောင်းအရာ
များများကို၊ ဥပမာ ပြဿနာများအခြေခံကာ ဖော်ပြပါမည်။ ဆိုလိုရင်းမှာ၊ သင်ခန်းစာများသည်
ပြဿနာ ဖြေရှင်းရေး ကို ဦးတည်၍၊ ruby အခြေခံများကို အလျဥး်သင့်သလိုဖော်ပြမည်ဖြစ်ရာ၊ အခြား programming စာအုပ်များနှင့် ပုံစံကွဲပြားမည်ဖြစ်ပါသည်။ ထို့ကြောင့် သင်ခန်းစာ အဆုံးတွင် အကြံပြုသည့် ဖတ်စာများကို
ဖတ်ရှုခြင်းဖြင့် စုံလင် စေ့င စွာသိရှိရန်ကြိုးစားစေလိုပါသည်။

test.rb

# Just Save this content in test.rb
def test_definition

value = ARGV[0]
value = ‘test’ if value.nil?
puts “this is #{value}”

#This is a loop
(0..2).each do
end

#This is another loop
(0..2).each do
puts ‘Another loop’
end

puts “that’s it!”
end

test_definition

သင်ခန်းစာ ၂ ။ ။ Data အမျိုးအစားများ နှင့် Data ဖွဲ့စည်းမှုပုံ

အမှာ။ ။ အသုံးချ Ruby လို့ခေါင်းစဉ်တပ်ထားပြီး ခုထိ အသုံးမချရသေးပါလားလို့ အပြစ်တင်ရင်လည်းခံရမည်ပင်။
သို့သော်၊ ထိုသို့အသုံးချသည့်အဆင့်ကိုရောက်ရန်၊ သိရမည့် အကြောင်းများကိုကား ရေးသားရပေဦးမည်။
Programming ဟူသည် Data များကို ပြုပြင်ပြောင်းလဲ အသုံးချခြင်းဖြစ်ရာ၊ အသုံးပြုနိုင်သော Data အမျိုးအစားများ
အကြောင်းကိုသိရန်လိုအပ်ပါသည်။
ပထမဦးစွာ Variable များကြေငြာခြင်းအကြောင်းကို နားလည်လွယ်စေရန်၊ ကြိုးစားအားထုတ်ကာ၊ ဆက်စပ်ရှင်းလင်းရေးသားထားပါသည်။
၄င်းနောက်မှ Ruby ၏ Data အမျိုးအစားများနှင့် Data ဖွဲ့စည်းမှုပုံစံများ ကိုဖော်ပြထားပါသည်။

၂.၁ ။ ။ Class, Object and Object Oriented Programming

ယခု သင်ခန်းစာများသည် Object Oriented Programming (OOP) ကိုဦးတည်ရေးသားသည် မဟုတ်သော်လည်း၊
Ruby သည် OOP Language တစ်ခုဖြစ်သည် တစ်ကြောင်း၊ Object သည် အခြေခံအကျဆုံး၊ Data အမျိုးအစားဖြစ်နေသည်ကြောင့် တစ်ကြောင်း
ရေးသားရပေသည်။

ပထမဦးစွာ မှတ်သားရမည်မှာ “Everything is object in Ruby.”
Ruby ထဲတွင် အရာတိုင်းသည် Object ဖြစ်သည်။
ဤစာကြောင်းကို စွဲမြဲအောင် အခါတစ်ရာလောက်ရွတ်ဆိုပါ။ (ဟီ ဟီ)

object ဆိုသည်မှာ အဘယ်နည်း။ ဥပမာ ယူကြပါစို့။ ကိုသာသာ သည် ယောကျ်ားတစ်ယောက်ဖြစ်သည်။ (မရယ်ရ)
မသီတာ သည်မိန်းမတစ်ယောက်ဖြစ်သည်။ ထို့ကြောင့် ကိုသာသာတွင် ယောက်ျားများတွင် ရှိအပ်သော စွမ်းရည်များရှိသကဲ့သို့၊
မသီတာ တွင် မိန်းမများတွင် ရှိအပ်သော စွမ်းအားများရှိ၏။ ယောကျ်ား၊ မိန်းမတို့သည်၊ လူများဖြစ်ကြ၏။

ထို့ကြောင့် အဆင့်ဆင့် စွမ်းရည်ဆက်ခံမှု ပုံစံကို ရုပ်ပုံဆွဲကြည့်ပါက အောက်ပါအတိုင်းရလေသည်။

aVN_VrJ

Figure 3

Figure 3 တွင် ရှင်းလင်းစေရန်၊ ဆွဲသားထားသော်လည်း၊ သက်ရှိသတ္တဝါ၊ သက်မဲ့အရာဝထ္ထု အတန်းအစားများနှင့် Object တို့အကြားတွင် များစွားသော
အတန်းအစားများကို ဖန်တီးနိုင်သေးကြောင်း သတိပြုရာ၏။

အထက်ပါ ဥပမာ နည်းတူ၊ Ruby တွင်ပါ၀င်သော Data အမျိုးအစား (အတန်းအစား) အားလုံးသည်လည်း အတန်းအစား အားလုံး၏ဘုံစွမး်ရည်ကို ပိုင်သော
မူလဘူတ Object အတန်းအစားမှ ဆင်းသက်လာသည်ဟုသတ်မှတ်ထားလေသည်။ ထိုသို့ သတ်မှတ်မှုမျိုးထားရှိသော Programming language များ၊ ဥပမာ
Java, C#, Ruby စသည်တို့ကို Object Oriented Language ဟုခေါ်ကာ၊ ၄င်း သတ်မှတ်မှုမျိုးကို လိုက်နာကာ Program ရေးသားခြင်းကို
Object Oriented Programming ဟုခေါ်ဆိုခြင်းဖြစ်သည်။

အထက်ပါ ဥပမာတွင်၊ ကိုသာသာနှင့် မသီတာမှလွဲ၍ အားလုံးသည် အတန်းအစား (class) များဖြစ်ကြပြီး၊ ထိုနှစ်ဦးမှာကား (object instance)
သီးခြား object များဖြစ်ကြသည်။ ဆိုလိုရင်းမှာ၊ ကိုသာသာ အတန်းအစား ဟူသတ်မှတ်၍၊ ကိုသာသာ တစ်ဦးထက်ပို၍ ရှိရန် သတ်မှတ်က၊ မဖြစ်နိုင်ချေ။

ရှင်းလင်းခဲ့သော အချက်များသည် Object Oriented Programming အကြောင်းအရာ၊ တစ်ခုလုံးကို ခြံငုံမိသည်မဟုတ်ချေ။ OOP ၏ အရိပ်အမြွက်၊ Object, Class နှင့်
Inheritance အကြောင်းတို့ကို ဥပမာပေးခဲ့ခြင်းသာဖြစ်ပါသည်။ OOP အကြောင်းကို http://en.wikipedia.org/wiki/Object-ori … rogramming တွင်
ဖတ်ရှုနိုင်ပါသည်။ ယခုကဲ့သို OOP subject မဟုတ်ဘဲ လျှာရှည်ရခြင်းမှာ၊ အောက်တွင် ပါ၀င်သော အခန်းများ၌ object ဟုဆိုလျှင်ဘာကိုဆိုလိုမှန်းသိနိုင်စေရန်နှင့်၊
inheritance သဘောကို မြင်သာစေရန်ဖြစ်ပါသည်။

ထိုမှ တစ်ဖန်….လူ၊ ခွေး၊ လင်းပိုင်၊ လင်းနို့ တို့သည် နို့တိုက်သတ္တဝါများဖြစ်ကြသည်။ မြွေ၊ငါးတို့ သည် နို့မတိုက်သော သတ္တဝါများဖြစ်ကြသည်။
နို့တိုက်နှင့် နို့မတိုက် သတ္တဝါများသည်၊ သက်ရှိသတ္တဝါများဖြစ်ကြသည်။ ၄င်းတို့၏ အဆင့်ဆင့် စွမ်းရည်ဆက်ခံမှုပုံစံကား အောက်ပါအတိုင်းဖြစ်၏။

PqKWAqA

Figure 2

နို့တိုက်သတ္တဝါအားလုံးနှင့် နို့မတိုက်သတ္တဝါ အားလုံးတို့သည် သက်ရှိသတ္တဝါ တွင်ပါရှိသည့် စွမ်းရည်များကို အဆင့်ဆင့် ဆက်ခံကာ၊ မိမိ တွင်သာသီးခြားရှိသည့်
အခြားစွမ်းရည်သစ်များလည်းပါ၀င်စေလေသည်။ ဥပမာ အသက်ရှိခြင်း အရည်အသွေးတူညီသော်လည်း၊ နို့တိုက်နိုင်ခြင်းနှင့် နို့မတိုက်နိုင်ခြင်းကွာခြားသကဲ့သို့၊
လူနှင့်ခွေးတို့တွင်၊ နို့တိုက်နိုင်ခြင်းစွမ်းရည်တူသော်လည်း၊ ခြေထောက် အရေအတွက်တို့ ကွဲပြားခြင်းစသည်တို့ဖြစ်သည်။

သက်ရှိသတ္တဝါ နည်းတူ၊ သက်မဲ့အရာဝတ္ထု ဟူသည့် အတန်းအစားလည်း ရှိအံ့။ ၄င်းအောက်တွင်၊ သက်မဲ့ဖြစ်သော၊ ခုံ၊ ပေတံ၊ ဖျာ၊ ဦးထုပ်၊ စသည်ဖြင့်
များစွာရှိနိုင်သေး၏။

Figure 1 နှင့် Figure 2 တွင် အထက်၌ရှိသော အဆင့်အတန်းများ သည်၊ အောက်ဖက်တွင်ရှိသော အဆင့်အတန်းများ ၏ ဘုံကျသော၊ စွမ်းရည်များကိုပိုင်ဆိုင်၏။
ဤသို့ဆိုလျှင်၊ သက်ရှိသတ္တဝါ နှင့် သက်မဲ့ အရာဝတ္ထုတို့ ၏အထက်တွင်၊ ၄င်းတို့ ဘုံ စွမ်းရည် ဆက်ခံနိုင်သည့် အတန်းအစားကားအဘယ်နည်းဟူသည်ကား
စဉ်းစားဖွယ်ဖြစ်လေသည်။

အထက်ပါ အဆင့်ဆင့်စွမ်းရည် ဆက်ခံမှု သီဝရီ အရတွေးလျှင်၊ ဟိုး….ထိပ်ဆုံး၌၊ အတန်းအစား အားလုံး၏ဘုံစွမ်းရည်ကို ပိုင်ဆိုင်သော အတန်းအစားတစ်ခု
ရှိရမည်ဖြစ်သည်။ သို့သော်၊ ၄င်း၌မည်သည့်စွမ်းရည်ရှိသည်၊ မည်သို့ခေါ်တွင်မည်ကို လက်တွေ့သတ်မှတ်ရန်ခက်လေသည်။ သီဝရီအရ၊ ယထာဘူတ ကျကျ
တွေးခေါ်ခြင်းဖြင့်သာ၊ ထိုမူလဘူတ အတန်းအစားရှိကြောင်းသက်သေထူနိုင်၏။ ၄င်း အတန်းအစားကို Object ဟုသတ်မှတ်ခြင်းဖြစ်လေသည်။

aVN_VrJ

၂.၂ ။ ။ Variable Declaration

ငယ်စဉ်က သချင်္ာတွက်ရာတွင်၊ အောက်ပါအတိုင်းရေးကြသည်ကို မှတ်မိကြပေမည်။

a = 10
b = 20
c = a + b = 30

ဒီနေရာတွင် a = 10 ဟုရေးခြင်းမှာ a ၏ တန်ဖိုးကို သတ်မှတ် ကြေငြာလိုက်ခြင်းပင်။
၄င်း a ကို variable name ဟုခေါ်ပြီး 10 မှာ variable value ဖြစ်လေသည်။
= ကား assignment operator ဟုခေါ်သည်။ “=” ကသာလျှင် a သည် 10 ဖြစ်ကြောင်းသတ်မှတ်ပေးခြင်းဖြစ်သည်။

အထက်ပါ ဥပမာကို ချဲ့ထွင်အံ့။

a = 10
b = 20.0
a = 20
c = a + b = 40.0

a ၏ တန်ဖိုး ကို နှစ်ကြိမ် သတ်မှတ်လိုက်လျှှင် နောက်ဆုံး သတ်မှတ်လိုက်သည့် တန်ဖိုးသာ အကျုံးဝင်ပေသည်။
ယခုကဲ့သို့ တန်ဖိုးကို အချိန်မရွေးပြောင်းလဲသတ်မှတ်နိုင်ခြင်းကြောင့် ပြောင်းလဲနိုင်သောကိန်း (variable) ဟုခေါ်ခြင်းဖြစ်သည်။

အထက်ပါဥပမာတွင် ကျွန်ုပ်တို့ ကိန်းဂဏန်းများ ကို ကြေငြာသတ်မှတ်ကြသည်။ အောက်ပါ ဥပမာတွင် ကိန်းဂဏန်းများ အစား စာကြောင်းများကို သုံးပြထားပါသည်။

a = my name is
b = ko thar thar
c = a + b = my name is ko thar thar

ယခုလို စာကြောင်းများကို လည်း variable တန်ဖိုးအဖြစ်သုံးနိုင်သည်။

ကိန်းဂဏန်းများနှင့် စာကြောင်းများ သည် အမျိုးအစားကွဲပြားကြောင်း အထူးရှင်းစရာမလိုပေ။
ထိုကဲ့သို့ အမျိုးအစားများကို variable types သို့မဟုတ် data types ခေါ်သည်။
ထို variable ၏တန်ဖိုးများကို ပေါင်း၊နှုတ်၊မြှောက်၊စား လုပ်နိုင်သည်။ သို့သော် အမျိုးအစား မတူသော variable များကို အတူ တကွမည်သို့ ပေါင်း၊နှုတ်၊မြှောက်၊စား လုပ်နိုင်အံ့နည်း။
ဥပမာဆိုရသော်

a = my name is
b = 10
c = a + b = ?

ဤနေရာတွင်၊ my name is နှင့် 10 တို့ကို ကိန်းဂဏန်း တန်ဖိုးအဖြစ်ပေါင်းအ့ံ။
my name is ၏ ကိန်းဂဏန်းတန်ဖိုးသတ်မှတ်ချက်ကားမရှိ။ ထို့ကြောင့်မဖြစ်နိုင်။

စာကြောင်းတန်ဖိုး အဖြစ်ပေါင်းအ့ံ။ 10 ကို စာကြောင်းအဖြစ်ယူဆကရ၏၊ ထို့ကြောင့် my name is 10 ဟု ဆိုကောင်းဆိုနိုင်၏။

ယခု ဥပမာတွင် b = 10 ဟုရေးသားပုံကိုကြည့်ရုံနှင့် 10 သည် စာကြောင်းလော၊ ဂဏန်းလော မခွဲခြားနိုင်။
ထို့ကြောင့် စာကြောင်းဟုသတ်မှတ်ရေးသားပုံနှင့် ဂဏန်းအဖြစ် ရေးသားပုံကိုပြောင်းလဲသတ်မှတ်ရန်လိုအပ်လာပေသည်။
ထိုသို့ရေးသားပုံ ကို မခွဲခြားပါက၊ စာဖတ်သူပင် နားလည်မှုလွဲနိုင်လျှင်၊ စဉ်စားဉာဏ် အလျင်းကင်းသော ကွန်ပြူတာစက်သည်ကား ဆိုဖွယ်မရှိပြီ။

ရေးသားပုံကွဲပြားစေရန်၊ စာကြောင်းများကို quote ထဲတွင်ထည့်ရေးရမည်ဟု ကျွနု်ပ်တို့ သတ်မှတ်အံ့။ အောက်ပါအတိုင်းရလေသည်။

a = “my name is”
b = “10”
c = a + b = “my name is 10”

သို့သော်

a = “my name is”
b = 10
c = a + b = ?

ဟုရေးပါက၊ အမျိုးအစား မတူညီသော data အပေါ်တွင် ပေါင်း၊နှုတ်၊မြှောက်၊စား မလုပ်နိုင်၊ ထို့ကြောင့်၊ “+” operation ကို a နှင့် b အပေါ်တွင် လုပ်ခြင်းအမှုကား မှားလေသည်။

ဖော်ပြခဲ့သော ဥပမာများတွင် ယထာဘူတ ကျသောစဉ်းစားမှု စည်းမျဉ်းကိုသုံးကာ variable တန်ဖိုး ကို ကြေငြာပြခဲ့ပြီ။

သို့သော် English နှင့်ဖြစ်စေ၊ မြန်မာ ဘာသာဖြင့်ဖြစ်စေ ရေးသား ဖော်ပြမည်ဆိုပါက၊ သက်ဆိုင်ရာ ဘာသာ စကား၏ grammer (သဒ္ဒါ) စည်းမျဉ်းများကို လိုက်နာမှသာ အဓိပါယ်ပြည့်စုံမှန်ကန်ပေမည်။

English တွင် a = 10 ဟုရေးပါ a ၏ တန်ဖိုး သည် 10 ဖြစ်သည်ဟုမဆိုနိုင်ပေ။
The value of ‘a’ is 10. သို့မဟုတ် a is equal to 10 ဟုရေးမှ အဓိပါယ် ရှိပေသည်။
ထို့အတူ မြန်မာစာတွင် “အေ ၏တန်ဖိုးသည် ၁၀ ဖြစ်သည်” ဟုရေးမှအဓိပါယ်ရှိပေသည်။

Ruby ဘာသာစကားဖြင့် ရေးသားရာတွင်လည်း Ruby ၏ grammer အတိုင်းရေးမှ မှန်ပေမည်။ ဆက်လက်၍ Ruby ဘာသာစကားတွင် သတ်မှတ်ထားသော၊ data အမျိုးအစား များအကြောင်းကို ရှင်းလင်းဖော်ပြပါမည်။

သို့သော် ကျွနု်ပ်သည် ဆရာတစ်ဆူမဟုတ်သဖြင့် ပြည့်စုံရန် ရေးသားခြင်းငှာမစွမ်း၊ ထို့ကြောင့် အသုံးချ Ruby သင်တန်းအတွက်၊ လိုအပ်သလောက်ကိုသာ ဖော်ပြ၍ Programming အတွေ့အကြံုမရှိသေးသူများ အတွက်၊ စိမ်းနေမည့် ယူဆချက်၊ သတ်မှတ်ချက် များကို မြန်မာလို အသားပေးရှင်းလင်းရေးသားထားပါသည်။

၂.၃ ။ ။ Numbers

ကွန်ပြူတာသည် ကိန်းဂဏန်းများကိုသာ နားလည်၊ ဆောင်ရွက်သော စက်ပစ္စည်းဖြစ်သဖြင့်၊ မည်သည့် programming language တွင်မဆို၊
ကိန်းဂဏန်းများသည် အခြေခံ Data အမျိုးအစားအဖြစ် ပါရှိ၏။

အထက်ပိုင်းတွင် ဖော်ပြခဲ့သလို၊ ကိန်းဂဏန်းများ သည် Ruby ၏ object များဖြစ်ကြသည်။ ကိန်းဂဏန်း အတန်းအစားများကို အောက်ပါအတိုင်းသတ်မှတ်ထား၏။

aVO0IkA

Figure 4

Ruby ရေးရာတွင် ဖန်တီးသည့် ကိန်းဂဏန်းတို်င်း သည် Numeric အမျိုးစားဖြစ်သည်။ Integer များသည် ကိန်းပြည့်များဖြစ်၍၊ Float များသည် ဒဿမကိန်းများဖြစ်ကြသည်။

Fixnum ဟူသည်ကား ကွန်ပြူတာ၏ မူလဘူတ binary (ဒွိဂဏန်း) အခြေခံသချင်္ာနည်းအရ၊ ဒဿမကိန်း၏ နေရာကို မရွှေ့ပြောင်းစေဘဲ၊ သတ်မှတ်ထားခြင်း၊ (fixed decimal position) ရှိခြင်းကို အခြေခံကာ Fixnum ဟုခေါ်ခြင်းဖြစ်သည်။ Bignum သည်ကား အလွန်ကြီးမားသည့် ကုဋေ ကုဍာ သိန်းပေါင်းများစွာ ပမာဏရှိသော ကိန်းဂဏန်းမျိုးကို သိုမှီးရန်ဖြစ်သည်။
Fixnum နှင့် Bignum တို့သည် ကွန်ပြူတာနားလည်သည့် ပမာဏ ကိုသတ်မှတ်ခြင်းသာဖြစ်၏။ ကိန်းဂဏန်း object တစ်ခု၏ ပမာဏ ကိုမူတည်ကာ Fixnum နှင့် Bignum အမျိုးအစား တစ်ခုမှတစ်ခုသို့ Ruby သည်အလိုအလျောက်ပြောင်းလဲပေးရာ၊ စာဖတ်သူအနေဖြင့် စိုးရိမ်ရန်မလိုချေ။

Integer ကို ဥပမာပြရသော်
0
123
12345678901234567890

Float ကိုဥပမာပြရသော်
0.0
-3.14
6.02e23 (ဆိုလိုသည်မှာ 6.02 x 1023 )

Ruby ၏ ဂဏန်းသချင်္ာ အတွက်အချက် တွင် +,-,*,/ ဟု ပေါင်း၊ နှုတ်မြှောက်စားတို့ကို သတ်မှတ်ထား၏။

x = 5/2 (x ၏ တန်ဖိုး 2 ရ၏၊ ဒဿမကိန်းကို မသိမ်းလေ)
x = 5.0/2 (x ၏ တန်ဖိုး 2.5 ရ၏၊ တည်ကိန်းမှာ ဒဿမဖြစ်သောကြောင့်)
x = 5/2.0 (x ၏တန်ဖိုး 2.5 ရ၏၊ စားကိန်းမှာ ဒဿမဖြစ်သောကြောင့်)

modulo (%) ကိုကား အကြွင်းရှာရာတွင် သုံး၏။

x = 5%2 (x ၏တန်ဖိုး 1 ရ၏။ 5 ကို 2 နှင့်စားရာ၌အကြွင်းကိုသာ ယူခြင်းဖြစ်၏)
x = 1.5%0.4 (x ၏တန်ဖိုး 0.3 ရ၏)

(**) ကိုကား ထပ်ညွွှန်း တွက်ရန်သုံး၏။

x**4 ( x*x*x*x ကို လေးကြိမ်မြှောက်ခြင်း x4 နှင့်တူညီ၏။)
x**-1 ( 1/x နှင့်ညီ၏။)

ဤမျှဆိုလျှင် လုံလောက်ပြီ။ အောက်ပါ လိပ်စာများကို သွားရောက်ဖတ်ရှု ကာများပြားသော Ruby operator များကိုလေ့လာသင့်ပါသည်။
အားလုံးကိုမှတ်မိရန်မလိုပါ။ အလျဉ်းသင့်သလို၊ အသုံးချပုံများကို ထည့်သွင်း ဖော်ပြမည်ဖြစ်ပါသည်။ အခြေခံအားဖြင့် ပေါင်းနှုတ်မြှောက်စား
သိလျှှင်လုံလောက်ပေပြီ။
http://www.techotopia.com/index.php/Ruby_Operators
http://www.meshplex.org/wiki/Ruby/Variables_Datatypes_Operators
http://whytheluckystiff.net/ruby/pickaxe/html/tut_stdtypes.html

Leave a Reply

Your email address will not be published. Required fields are marked *