Monday, February 20, 2012

ကိုးကုဋေကိုးသန်းကိုးသိန်းကိုးသောင်းကိုးထောင့်ကိုးရာ့ကိုးဆယ့်ကိုး

ကိုးကုဋေကိုးသန်းကိုးသိန်းကိုးသောင်းကိုးထောင့်ကိုးရာ့ကိုးဆယ့်ကိုး

ပြီးခဲ့တဲ့ တစ်ပတ်လောက်က သူငယ်ချင်းတစ်ယောက်က သူရေးထားတဲ့ ပရိုဂရမ် လေးကိုလာပြတယ်။ မှန်/မမှန် Test လုပ်ကြည့်ပေးပါလို့လည်းပြောတယ်။ ပရိုဂရမ်က ဘာမှတော့မဟုတ်ပါဘူး။ နံပါတ်တစ်ခု input သွင်းလိုက်ရင် အဲဒီ့နံပါတ်ကို စာအနေနဲ့ပြန်ပြပေးတာလေးပါပဲ။ "123" လို့ထည့်လိုက်ရင် "တစ်ရာ့နှစ်ဆယ့်သုံး" ဆိုပြီးတော့ပြန်ပြပေးတာလေးပါ။ သူက Java နဲ့ရေးထားပြီး ကျွန်တော့်ကို jar file ပဲပေးတယ်။ ပြီးတော့ သူက source code ကိုမပြဘူး။ ဘာလို့မပြတာလဲမေးတော့ သူက စပ်ဖြီးဖြီးနဲ့ပြန်ဖြေတယ်။ "ဟ ... logic က ဦးနှောက်ခြောက်အောင် စဉ်းစားထားရတာ။ ဒီလောက်ရအောင်ရေးဖို့ လွယ်တာမှတ်လို့။ တော်ကြာ source code ကြည့်ပြီး idea တွေခိုးသွားရင် ဘယ်လိုလုပ်မလဲ" ... တဲ့။ ကျွန်တော်ကလည်း "ဟားဟား ဒီ logic လေးများ၊ ခိုးစရာလား၊ ရေးပြမယ်၊ ပြီးမှ ဘယ်သူ့ code ပိုကောင်းလဲပြိုင်မယ်" ... ဆိုပြီးပြောလိုက်တာပေါ့။

ကျစ်ကျစ်လစ်လစ် လုပ်ပြီးသား Java code လေးရေးပြထားပါတယ်။

public static String getw(int n){
String w[]={"သုည","တစ်","နှစ်","သုံး","လေး","ငါး","ခြောက်","ခုနစ်","ရှစ်","ကိုး"},
t[]={"","ဆယ်","ရာ","ထောင်","သောင်း","သိန်း","သန်း"},
x="";
boolean s=false;
for(int i=0;i<7;i++){
  if(n%10>0)
   if(i<4){x=w[n%10]+t[i]+(s?"့ ":" ")+x;s=true;}
   else{x=w[n%10]+t[i]+" "+x;}
  n/=10;
}
return x;}




အခုပရိုဂရမ်လေးကတော့ သန်းဂဏန်းအထိပဲ ပြပေးတာပါ။ ကုဋေအထိပြမယ်ဆိုလည်း array ထဲမှာ "ကုဋေ" ထည့်ပေးလိုက်ပြီး looping မှာ "8" အထိလုပ်လိုက်ရုံပါပဲ။

ဘလော့မှာ မရေးဖြစ်တာတော်တော်ကြာပြီ။ အခုပြန်ရေးဖြစ်တော့ ... ဒီပိုစ့်လေးက ကျွန်တော့်ရဲ့ပိုစ့်တွေထဲမှာ coding ပါတဲ့ ပထမဆုံးပိုစ့်လေး ဖြစ်သွားပါတယ်။