Changing to New Address!

ကျွန်တော့ ဘလော့ကို ဆိုဒ်အသစ်သို့ အပြီးအပိုင် ပြောင်းရွှေလိုက်ပြီ ဖြစ်ကြောင်း ပြောတာပါ။ နောက်ပိုင်းဆို www.it-koko.info မှာပဲ အသစ်တွေကို တင်ပါတော့မယ်။ ဒီဘလော့ကိုတော့ ပိတ်တော့ မပိတ်တော့ပါဘူး။ ဆိုဒ် အသစ်ဆီကိုပဲ လာကြပါလို့ အသိပေးအပ်ပါတယ်....
အားလုံးကို ကျေးဇူးတင်ပါတယ်....



Changing to New Address! IT-KOKO.INFO

ကျွန်တော့ ဘလော့ကို ဆိုဒ်အသစ်သို့ အပြီးအပိုင် ပြောင်းရွှေလိုက်ပြီ ဖြစ်ကြောင်း ပြောတာပါ။ နောက်ပိုင်းဆို www.it-koko.info မှာပဲ အသစ်တွေကို တင်ပါတော့မယ်။ ဒီဘလော့ကိုတော့ ပိတ်တော့ မပိတ်တော့ပါဘူး။ ဆိုဒ် အသစ်ဆီကိုပဲ လာကြပါလို့ အသိပေးအပ်ပါတယ်....
အားလုံးကို ကျေးဇူးတင်ပါတယ်....



စိတ်အချဉ်ပေါက်ခြင်းများ ၁

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

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

ပြောတာ ပြောနေတာပါ.. အခုရေးနေတာ ဘာကိုရေးလို့ရေးနေမှန်းကိုမသိတော့ဘူး.. စာမေးပွဲနားနီးလာလို့ နည်းနည်းကြောင်တောင်တောင်ဖြစ်နေတာနဲ့တူတယ်ထင်တယ်... ဟဟ
ရေးပြီးမှတော့ တင်လိုက်ပါတော့မယ်ဗျာ...

နည်းနည်းတော့ပေါတယ်.... စိတ်အချဉ်ပေါက်တာလို့ခေါ်ရမယ်ထင်တာပဲ... အမှားပါရင်သီးခံပေးပါလို့...

Depreciation of Knowledge!

အစတုန်းကတော့ java ကို ကျောင်းမှာသင်ခဲ့တာတွေရေးမယ်ဆိုပြီး စရေးခဲ့တယ်.. နောက်ပိုင်း assignment ကိစ္စနဲ့ ကောင်းကောင်း ဆက်မရေးဖြစ်ဘူး.. နောက်တစ်ခုက ဘားမှ ရေရေရာရာ မသိပဲနဲ့ ရေးနေတာ မကောင်းသလို့ဖြစ်နေတယ်.. အရင်လေ့လာပြီးတော့မှ သေသေချာချာ ပြန်ရေးမယ်လို့ စဉ်းစားမိလာလို့။ နည်းနည်းသိပြီးများများ ပြောနေသလို့ ဖြစ်နေသလို ခံစားရလာလို့ ဆက်မရေးဖြစ်တော့ပဲ ဒီအတိုင်းထားလိုက်တာ။ သေသေချာချာ ပြန်စဉ်းစားလိုက်တော့ ကျွန်တော် ဘယ် Programming Language ကိုမှ ကျွမ်းကျွမ်း ကျင်ကျင် မသိဘူးဆိုတာပဲ။ ကျောင်း ပထမနှစ်မှာ Python Programming ကိုသင်ခဲ့ရတယ်.. ကောင်းကောင်းမွန်မွန် နားလည်ခဲ့တယ်လို့ ထင်ခဲ့တယ်.. နောက်ပိုင်း ဆက်မလေ့လာ ဖြစ်တော့ဘူး။ ကျောင်းပြီးတာနဲ့ မေ့ထားခဲ့လိုက်တယ်။ အခုနောက်ပိုင်း ပြန်လုပ်တော့ ဘယ်က စရေးရမလဲ မသိတော့ဘူး။ Junior လေးတွေကမေးတာကို ဘယ်လိုပြန်ဖြေရမလည်းမသိခဲ့လို့ တော်တော် ရှက်ခဲ့ရတယ်။ ကျောင်းကသင်ပေးတယ်ဆိုတာ မုန့်တစ်ခုကို အမြည်းကျွေးလိုက်သလိုပါဘဲ. စားလဲစားပြီးတော့ မရှိတော့ဘူး။ ကိုယ့်ဟာကိုလည်း မလုပ်တက်ဘူး။ ကောင်းကောင်းတော့စားခဲ့တယ်။ ကြိုက်လည်းကြိုက်ခဲ့တယ်။ လုပ်လည်းလုပ်ခဲ့တယ်။ဒါပေမဲ့ ဘယ်လိုလုပ်ရမလည်းဆိုတဲ့နည်းကို သေသေချာချာ မသင်ခဲ့မိဘူး။ လုပ်ပြီးရင် ပြီးရောဆိုပြီး အထင်တွေကြီးနေခဲ့တယ်။ နောက်ထက် ဘာတွေရှိသေးလည်းဆိုတာကို မလေ့လာခဲ့သလို၊ အရင်သိထာတာတွေကိုလည်း မလေ့ကျင့်ခဲ့ဘူး။ နောင်ဆုံးတော့ ဘားမှမသိတဲ့ ကောင်ကြီးဖြစ်သွားရော.. သင်ထားတာတွေက အလားကားဖြစ်သွားတာပေါ့။

အသိတစ်ခုတော့ရလိုက်ပါပြီ။ ဘာလည်းဆိုတော့ သိသလိုလိုနဲ့ တကယ်ဘားမှမသိတာပဲ။ မသိဘူးလား ဆိုတော့လည်း မဟုတ်ဘူး သိတယ်။ သိရင်လုပ်ဆိုတော့လည်း ဘားမှမလုပ်တတ်ဘူး။ တော်တော့်ကိုး ရှုံးတယ်လို့ဆိုရမယ်။ သင်ပြီးသာတွေကို ဆက်မလေ့ကျင့်၊ မလေ့လာတော့ အချည်းနှီးဖြစ်တာပေါ့။ IT ကျောင်းသားတစ်ယောင်ဖြစ်ပြီးတော့ ဘယ် Programming Language မှ ရေရေရာရာမသိတော့ မကောင်းဘူးလို့ထင်တယ်။ ပြီးတော့ သင်ပြီးတာနဲ့ တတ်သွားပြီလို့ ပြောလို့မရဘူးလေ။ ငါ ဒီစာကို သင်ပြီးသွားပြီပဲ ငါအကုန်သိနေပြီ၊ တတ်နေပြီလို့ ပြောနေလို့မှမရတာ။ နောက်ပိုင်း ထက်လေ့လာမှု့တွေ မရှိရင် သင်ပြီးထားတာလည်း အလကားပဲ။ သင်တယ်ဆိုတာ မသိတဲ့လမ်းတစ်ခုရဲ့ အဝင်ဝကိုပို့ပေးသလိုပဲ။ ဆက်သွားရင် လမ်းဆုံးကိုရောက်မယ်။ ရပ်နေရင် ဘယ်မှမရောက်ဘူး။ နောက်ပြန်လှည့်မယ်ဆိုရင်တော့ အရှုံးပေတာပေါ့။ ကျွန်တော်က ရပ်နေတဲ့ စရင်းထဲမှာပါနေတယ်လေ။ ကျွန်တော့ သိထားတာတွေကDepreciation ဖြစ်နေတယ်လို့ထင်တယ်။ ဒါဟာလုံးဝမဖြစ်သင့် တဲ့ကိစ္စပဲ။ အသိပညာ အတတ်ပညာဆိုတာ တိုးတတ်လာတာပဲရှိရမယ်လေ.. လျော့သွားတယ်ဆိုတော့ မဖြစ်သင့်ဘူး။ 

အမှားတွေ့ရင် ချက်ချင်းပြင်၊ အမှန်တွေ့ပေမဲ့ ရပ်မနေနဲ့၊ ကောင်းသထက်ကောင်းအောင် ဆက်ကြိုးစား

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

ဘာမှမလုပ်ဖြစ်ခြင်း...

အလုပ်တွေများနေလို့ Post ကောင်း ကောင်းမတင်နိုင် သေးတာပါ... နောက် တစ်ပတ်မှာ စာမေးပွဲရှိတယ်။ ပြီးတော့ အလုပ်တွေရှိတယ်။ စာပြန်ကြည့်ဖြစ်မှပဲ ဆက်ရေးတော့မယ်... အားလုံးကို တောင်းပန်ပါတယ်....
ဟန်မျိုးထွေး

Object-Oriented Programming Problem 4

အရင်ဆုံး သိရမဲ့ ကြောင်းအရာလေးတွေကို ပြန်ပြီးပြောမယ်နော်... ပထမဆုံး for loop, while loop, arrays တွေဘယ်လို လုပ်ရမလဲ? စတာတွေကိုအရင် ပြန်ပြီးကြည့်လိုက်ပါ... ပြီးရင်တော့ နောက်တစ်ခန်းဖြစ်တဲ့ Problem 4 ကိုဆက်ပါမယ်။

ဒီအခန်းမှာတော့ အသစ်ဆိုလို့ Random Number လုပ်တာ၊ Exception ဆိုတာဘာလဲ? try and catch ကိုဘယ်လိုနေရာတွေမှာ သုံးလည်းဆိုတာတွေ ပါတယ်။ ကျန်တာတွေကတော့ အရင်အခန်းတုန်းက အကြောင်းအရာတွေကိုပဲ ပြန်သုံးတယ်...
Problem Statement  ကတော့



Let’s build a game using Java!

Game Play
The computer generates 5 random numbers, each number within 1 to 50 (inclusive). The numbers are hidden from the player.

§       The player has three tries to guess three numbers out of the list of five numbers generated by the computer.
§       One (1) point is given for every correct number guessed.


Validation
The game should check that only valid numbers are entered. That is:
§       The player cannot enter characters, e.g. “twelve”.
§       Only numbers between 1 and 50 (inclusive) are acceptable.


Enhancement

The game should reject numbers which has already been guessed whether correct or not.  For example, if the user guesses three (3), he should not be allowed to guess three (3) again in the second and third tries.


Game Extension

Extend your program to give a player N rounds of playing the game, where N is a number entered when first starting the game. (Note: save this version of the game under a different name)

ကြည့်လိုက်တာနဲ့ ဘာလုပ်ရမလဲ ဆိုတာ ရှင်းနေပါတယ်။ မရှင်းဘူးဆိုရင်လည်း ပြောပြပါ့မယ်... အရင်ဆုံးကတော့ Random number ကိုလုပ်မယ်.. ပြီးရင် Arrays တစ်ခုကိုလုပ်မယ်၊ Arrays မှာ ၅ခုထားမယ်၊ ဆိုလိုတာက random number  ၅ခုလုပ်မယ်ပေါ့။ ကုဒ်ကတော့ အောက်မှာပါ...

private int[] arrayRandomNumber = new int[5];

private void generateNumbers() {
Random generator = new Random();
for (int i = 0; i < arrayRandomNumber.length; i++) {
arrayRandomNumber[i] = generator.nextInt(50) + 1;
System.out.println(arrayRandomNumber[i]);
}
}
ဒါက method တစ်ခုလုပ်တာပါ။ ပြီးတော့မှ ပြန်ပြီးယူသုံးမှာပါ။ ဘာလို့လုပ်လဲဆိုတာရယ် လုပ်ရင်ဘာတွေပိုကောင်းလည်းဆိုတာ နောက်အခန်းမှာ အသေးစိတ်ပြောပါမယ်။

မှတ်ရန်။ 
import java.util.Random;
ကို အရင်ဆုံး ရေးရမယ်။ random လုပ်ဖို့ import လုပ်တာပါ။

အပေါ်ကကုဒ်ကို ပြန်သုံးချင်ရင် generateNumbers(); ဆိုပြီးသုံးရင်ရပါပြီ။ နောက်တစ်ခုကတော့ ကစားမဲ့လူက ၃ ခါစမ်းခွင့် ရှိတဲ့အတွက် for loop နဲ့ ပြီးတော့ while loop နဲ့ ရေးမယ်...

for (int num = 0; num < 3; num++) {
boolean valid = true;
while (valid) {

int guessNumber = Keyboard.readInt("GUESS SECRET NUMBER "
+ (num + 1) + " > ");

ပြီးရင် if  နဲ့ conditions  တွေလုပ်မယ်၊ for loop နဲ့ numbers တွေတူလား အတူလား စစ်မယ်။ တူတယ်ဆိုရင် score ကို ၁ ပေါင်းပေးမယ်။ ဒီမှာ if ,else ၂ခုနဲ့လုပ်ထားတယ်၊ ပထမတစ်ခုက number ကို ၅၀ နဲ့ ၁ အတွင်းရှိမရှိစစ်တာ။ နောက်တစ်ခုကတော့ number  က random number နဲ့ တူ မတူ စစ်တာ။ တူရင် ၁ပေါင်းမယ်ပေါ့။ else ကတော့ ၁ ကနေ ၅၀ အတွင်း မဖြစ်ရင် ပြန်ရေးခိုင်းဖို့ပါ။ အောက် ကကုဒ်ကို ကြည့်လိုက်ရင် ရှင်းသွားမယ် ထင်တယ်။

if (guessNumber >= 1 && guessNumber <= 50) {

for (int i = 0; i < arrayRandomNumber.length; i++) {
if (guessNumber == arrayRandomNumber[i]) {
score++;
}
valid = false;
}

} else {
System.out.println("  Please enter number (1 to 50)  ");
}

နောက်ဆုံးအပိုင်းကတော့ ရှုံးလား နိုင်လား စစ်တာ ပါ။ if and else နဲ့ပါပဲ။ score ၁ ရ ရင် နိုင်တယ်။ မရရင် ရှုံးတယ်ပေါ့။

if (score <= 0) {
System.out.println("You Lose! Try Again...");
} else {
System.out.println(" You are **Winner** ");
System.out.println(" Your Score is " + score);
}

ပြီးရင်အားလုံးပြီးသွားပါပြီ။ ပေါ်မှာပြောထားတဲ့ Exception, try and catch အကြောင်းလေး မပြောလိုက်ရဘူး။ Exceptions တွေကတော့ integer  နေရာမှာ String ရေးလို့ မရတာ၊ zero နဲ့ စားလို့ မရတာ စတဲ့ errors တွေ ကို ပြောတာပါ။ အဲ့လို error တွေမဖြစ်ချင်ရင် try and catch ကို သုံးပေါ့။ ကျောင်းကပေးထားတဲ့ keyboard.java မှာ အများကြီးသုံးထားတယ်။ လေ့လာချင်ရင် keyboard.java ကို ဖွင့်ပြီး ကုဒ်တွေကို လေ့လာ ကြည့်ပါ... နောက် အခန်းမှာ class, methods, field, main စတာတွေ ပါလိမ့်မယ် ကြိုပြီးလေ့လာလို့ ရအောင် class diagram လေး ထည့်ပေးလိုက်တယ်။


နောက် အခန်းမှပဲ အသေးစိတ် ပြောတော့မယ်။ ဆက်ပါအုန်းမယ်.....



Object-Oriented Programming Problem 3

မ​အား​တာ​နဲ့ တော်တော်​တောင် ကြာ​သွား​တယ်.. ပြီး​တော့ Problem 3 ကို အရမ်း​ကြီး​နား​မ​လည်​လို့ နဲ​နဲ စာပြန်​ဖတ်​ပြီး​မှ ဒီ Post ကို​တင်​နိုင်​တယ်.. ဖတ်​ပြီး​သွား​တော့ နားလည်​သ​လိုလို​တော့​ရှိ​သွား​တယ်.. ကဲ စ​ပြီး​ရေး​တော့​မယ်နော်.. ဘာ​ပြဿနာ​လဲ မ​ပြော​ခင် ဘာ​အကြောင်းအရာ​တွေ ပါ​လဲဆို​တာ အရင်​ပြော​မယ်။ ပထမ​ဆုံး​ကတော့ while loop ၊ ပြီး​တော့ Arrays ၊ နောက်ဆုံး​တစ်​ခု​ကတော့ For loop ။ အရင်​တုန်း​က Python သင်​ဖူး​ရင် နားလည်​ဖို့ ပို​လ​ပို​လွယ်​တယ်။ သဘော​တရား​က တူ⁠တူ​ပဲ​လေ..

Problem Statement ကတော့ အောက်​မှာ​ဖတ်​ကြည့်​လိုက်​တော့...



Andrew works part-time as a sales promoter and earns $1000 every month. Besides keeping records of his salary slips, he also kept his expense receipts last year. As he plans to better control his expenditure this year, he would like to know how much he spent and saved in 2009.

Help Andrew by building a simple application in Java to achieve his goal. The application should do the following:

(1) In the beginning of each month, the application puts $1000 into Andrew's bank balance.

(2) The application should ask Andrew to enter how much he spent in total for that month.

(3) When all the needed data is entered, the application:
a. Displays the expenditure for each month.
b. Calculates the total amount of money that Andrew spent for the year.
c. Calculates the monthly average amount of money that Andrew spent.
d. Calculates the balance of money left in his savings.

* Note - at any point in time, Andrew should not be able to spend more money than what he has saved so far. If Andrew enters a value larger than what he currently has in the bank, he should be asked to enter again.

Advanced Features

(4) The application should also take into account the interest rate of the bank (e.g. 1% per month). For this problem, we will assume that the bank pays compound monthly interest for Andrew’s savings.

ဖတ်​ပြီး​ပြီ​ဆို​ရင်​တော့ ဘာ​လုပ်​ရ​မ​လဲ သိ​ပြီ​ထင်​တယ်... 

ကုဒ်​စ​ရေး​တော့​မယ် အောက်​ဆုံး​မှ​ဘဲ ရေးထား​တဲ့ ကုဒ်​တွေ​ကို​ပြန်​ရှင်း​တော့​မယ်။
    public void start() {
        double[] spending = new double[12];
        double total = 0;
        double balance = 0;
        for (int i = 0; i < 12; i++) {
            balance = balance + 1000;
            spending[i] = Keyboard.readInt("How much did you spent for Month "
                    + (i + 1) + " : ");
            while (balance < spending[i]) {
                System.out
                        .println("*** Your are spending more than your balance ***");
                spending[i] = Keyboard
                        .readInt("How much did you spent for Month " + (i + 1)
                                + " : ");
            }

            balance = balance - spending[i];
            total = total + spending[i];

        }
        for (int i = 0; i < 12; i++) {
            System.out.println("Spending for Month" + (i + 1) + " is "
                    + spending[i]);

            System.out.println("Total saving is " +balance);
            System.out.println("Total Spending >>" + total);
            System.out.println("Average Spending >> " + (total / 12));
        }
        System.out.println("End of Program");

    }

double[] spending = new double[12];
ဆိုတာက Arrays တစ်ခုလုပ်လိုက်တာ။ ဘယ်လောက်လုပ်မှာလဲဆိုတော့ ၁၂ခုထဲ့ထာမယ်ဆိုတော့ [12]။
 for (int i = 0; i < 12; i++){}
ကတော့ သိရမှာ ၃ခုရှိတယ်။ int i=0; ဆိုတာကတော့ ဘယ်ကစမှာလဲ ကိုပြောတာ။ i<12; ဆိုတာကတော့ ဘယ်မှာဆုံးမယ်ဆိုတာကို ပြောတာ။ နောက်ဆုံးတစ်ခုကတော့ i++ or i=i+1; ကတော့ ဘယ်လောက်တိုးပြီးသွားမလဲဆိုတာကိုပြောတာပါ။ ဒီ loop မှာဆိုရင် arrays မှာ ၁၂ index ရှိပါတယ်။ ၀ ကနေစပြီးတော့ ၁၁ အထိပေါ့။
 balance = balance + 1000;
balance ကို ၁၀၀၀ ရှိတယ်လို့ပြောချင်တာ


spending[i] = Keyboard.readInt("How much did you spent for Month " + (i + 1) + " : ");
ဒါကတော့ spending arrays ကို input လုပ်တာပါ။ (i+1)ဆိုတာကတော့ ပထမ ဆုံးကို ၁ ဖြစ်အောင်လုပ်လိုက်တာပါ။ ပုံမှန်ဆိုရင်တော့ i က 0 ဖြစ်နေတာပါ။
while (balance < spending[i]) {}
while နဲ့ for ကသဘောတရားကတူတူပါပဲ။ အစတွေ၊ အဆုံးတွေ၊ စတဲ့ condition တွေမသိဘူးဆိုရင် while ကိုပိုသုံးပါတယ်။ 

နောက်ဆုံးသိရမှာကတော့ ဒီအခန်းဟာ တော်တော်အရေးပါတဲ့ အခန်းဖြစ်ပါတယ်။ for loop, while loop, arrays စတာတွေမသိဘူး နားမလည်ဘူးဆိုရင်တော့ နောက်ပိုင်းအခန်းတွေဆိုပိုဆိုးသွားနိုင်ပါတယ်။ အဲ့တော့ နောက်တစ်ခေါက်လောက် ပြန်ကြည့်ရင်ပိုကောင်းမယ်။ ကျွန်တော်က ရှင်းတာမကောင်းလို့သေသေချာချာ မရှင်းပြနိုင်တာ ခွင့်လွတ်ပေးပါလို့ တောင်းပန်ပါတယ်။ မှားတာရှိရင်လည်း ပြောခဲ့ကြပါ။
ဆက်ပါအုံးမယ်... နောက်တစ်ပတ်တော့ လေ့ကျင့်ခန်းလေးတွေပါ လုပ်ကြည့်မယ်နော်... 

Object-Oriented Programming Problem 2

Problem 2 ကို တော့ အပိုင်းမခွဲတော့ဘူး တစ်ခုတည်းနဲ့ ပြီးအောင်ရေလိုက်တော့မယ်။ အရင်ဆုံး သိရမဲ့ဟာတွေကတော့...

Problem 1 တုန်းက ပြောခဲ့တဲ့ Data Types၊ Declare လုပ်တာ စတဲ့ ရေးရမဲ့ ပုံစံတွေကို ပြန်သိဖို့တော့ လိုမယ်။
အခု Problem 2 ကတော့ အရမ်းကြီးမခက်ဘူး။ Python မှာသင်ဖူးတဲ့ {if, else if, else} လိုမျိုးတွေရေးရမယ်။ တစ်နည်းပြောရရင် true or false conditions တွေကို ရေရတာပဲ။ true ဖြစ်ရင် ဘာ ဆက်လုပ်မယ်၊ false ရင်ဘာလုပ်မယ်၊ စတာတွေကို ရေးရမှာပါ။ python နဲ့မတူတာက java မှာ if ကို { } နဲ့ လုပ်တယ်။ ရှင်းအောင်ပြောရရင်..
if {
else if {
}
else {
}
}
else {
}
ဒါကမှ Problem 2 ပါ...

Fit Lions Sports Club is pleased with the Sports Training Calculator that you have developed. Thus they would to add some addition features to the existing Sports Training calculator.


The Sports Training Calculator should use the following table to determine if the athlete is within the guidelines for their selected sport:



VO2Max
Sport
Age
Males
Females
Basketball
18-30
40-60
43-60
Bicycling
18-26
62-74
47-57
Canoeing
18-26
55-67
47-67
Gymnastics
18-22
52-58
36-50
Swimming
10-25
50-70
40-60


Each team needs to complete at least 2 different sports. Can your team help to make the modifications?
အရင်တုန်းကရေးထားတဲ့ ကုဒ်ကို ပြန်သုံးရမယ်နော်.. ဒီမှာပိုသွားတာက if conditions တွေပါလာတာဘဲ။ worksheet ကိုအကုန်လုံးပြန်မရေးတော့ဘူးဗျာ.. အရမ်းများတယ်။ အားလုံးလည်းသိပြီးသားလို့ထင်တယ်။ ချုံ့ပြီးပြောရရင် ၊ ကုဒ်သုံးခုပေးထားတယ်...

public class UsingMethod {

public void versionA() {
double area1 = 3.142 * 3.0 * 3.0;
double area2 = 3.142 * 3.5 * 3.5;
double area3 = 3.142 * 4.0 * 4.0;
System.out.println("Area of circle 1 is " + area1);
System.out.println("Area of circle 2 is " + area2);
System.out.println("Area of circle 3 is " + area3);
}

public void versionB() {
double area1 = areaOfCirle(3.0);
double area2 = areaOfCirle(3.5);
double area3 = areaOfCirle(4.0);
System.out.println("Area of circle 1 is " + area1);
System.out.println("Area of circle 2 is " + area2);
System.out.println("Area of circle 3 is " + area3);
}

public void versionC() {
System.out.println("Area of circle 1 is " + areaOfCirle(3.0));
System.out.println("Area of circle 2 is " + areaOfCirle(3.5));
System.out.println("Area of circle 3 is " + areaOfCirle(4.0));
}

private double areaOfCirle(double radius) {
double area = 3.142 * radius * radius;
return area;
}
}

Version A, B, C မှာ ဘယ်ဟာက ကောင်းဆုံးလဲ၊ ကျွန်တော်ကတော့ C လို့ ဖြေလိုက်တယ်၊


ပြီးတော့ Multiple Branching အကြောင်းလုပ်ရတယ်။ အဲ့ဒါက if, else if, else ကိုပြောတယ်ဘဲ။ 


နောက်တစ်ခုက Multiple Conditions အဲ့ဒါကတော့ {or , and} ကိုပြောတာ၊ အသေးစိတ်ကိုတော့ နောက်မှာဆက်ပြောမယ်။ ပြီးတော့ Flowchat တစ်ခုပေးထားတယ် အဲ့ဒါကိုကြည့်ပြီး ကုဒ်ရေးရင်ရပြီ။ flowchart ပေးထားရင် ကုဒ်ရေးရတာ အရမ်းလွယ်သွားပြီလေ...


အပေါ်မှာပြထားတာ ရှင်းရှင်းလေးပဲ.. အရင်ဆုံး true တွေကို  if နဲ့ စရေးမယ်။ age, gender, VO2 တွေက မှန်တယ်ဆိုရင် .. Age and VO2 are OK! လို့ ပြလိုက်မယ်။ age and gender က မှန်တယ်၊ VO2 ကမှားမယ်ဆိုရင် VO2 is not within limit လို့ ပြမယ်။ အဲ့လိုပဲ male and female ကိုလည်း ခွဲလိုက်မယ်။ နောင်ဆုံးကတော့ Age ကို မှန်လားမှာလားလို့ခွဲမယ်.. ကျွန်တော်က နောက်ကနေ ပြန်ရေးထားသလို ဖြစ်နေတယ်ထင်တယ်... စာရှင်းပြတာလုံးဝမကောင်းတာကို သည်းခံ ပေးကြပါနော်...

if (age >= 18 && age <= 22) {
if (gender.equalsIgnoreCase("male")) {
if (v02Max >= 52 && v02Max <= 58) {
System.out.println("Your Age and VO2 are Ok!");
} else {
System.out.println("VO2 is not within limit");
}
} else if (gender.equalsIgnoreCase("female")) {
if (v02Max >= 36 && v02Max <= 50) {
System.out
.println("Your Age and VO2 are Ok!");
} else {
System.out
.println("You are not qualified to play Game");
}
}
} else {
System.out.println("You are Under Age!");
}


ဒါကတော့ အပေါ်က flowchart အတိုင်းပြန်ရေးထားတာ။ ဒါက game ကိုရွေးရတဲ့အပိုင်း မပါသေးဘူး။ 6P မှာတော့ ပြောသွားတယ်။ မမှတ်မိတော့ဘူး 6P ရမှပဲ ပြောတော့မယ်။ ကျွန်တော်ကတော့ ကိုယ့်နည်းကိုယ့်ဟန်နဲ့ ရေးထားတယ်။ ဘယ်လိုလဲဆိုတော့ နောက်ထက် if condition ထက်ထဲ့လိုက်တယ်၊ မရေးပြတော့ဘူး...

// Using Method (formulae)
private double calcV02Max(int restingHeartRate, int maxHeartRate) {
return 15.0 * maxHeartRate / restingHeartRate;
}

private double calcTrgHeartRate(int maxHeartRate) {
return 0.8 * maxHeartRate;
}

private int calcMaxHeartRate(int age) {
return 220 - age;
}

ဒါကတော့ သုံးထားတဲ့ formula ပါ။ ဘာလို့ return ကိုသုံးထားလဲဆိုတာတော့ ပြောဖို့မလိုတော့ဘူးထင်တယ်...



Notes :
return ဆိုတာ formula ကို ပြန်သုံးချင်လို့။ loop လုပ်တဲ့အခါ formula ကို တစ်ခါဘဲရေးပြီး ပြန်သုံးတာ။
if {
} ပြီးရင် ; မလိုဘူး

if ( <conditions> ) {
       statements;
       …     
 }
နောက်တစ်ခုက 
Int ဆိုရင် = or == သုံးလို့ရတယ်
String ကိုဆိုရင်တော့ .equals(), compareTo(), and compare() ကိုသုံးတယ်..read more
equal() ကို capital or small letter မခွဲချင်ဘူးဆိုရင် equalsIgnoreCase ကိုသုံးတယ်။

နောက်ဆုံးပြောရရင်တော့ ဒီ Problem မှာ {if, else if, else} ကိုကောင်းကောင်းသုံးတတ်ရမယ်။ {&& and ||} ကို နားလည်ရမယ်။ ဂွင်း{ } တွေကိုနေရာမှန်အောင်ထားတတ်ရမယ်။ ကျွန်တော်ကတော့ တခါတည်း ဂွင်းစရော"{" ဂွင်းပိတ်ရော"}" တန်းရေးတယ်။ ပြီးရင် Ctrl + Shift + F လုပ်ပြီး ညီအောင်ပြန်စီတယ်။ ဒါမှကြည့်လို့ကောင်းပြီး ရှင်းနေမယ်... condition ကို ";" မလိုဘူး၊ ( ) ဆိုရပြီ။ statement ပြီးရင်တော့ ";"ရေးပေးရတယ်...


ဆက်ပါအုံးမည်....

Object-Oriented Programming Problem 1 (Part 2)

Part 1 က အဆက်ပါ..
ဒီ အပိုင်း ၂ မှာတော့ ကုဒ်တွေကို ဘယ်လို စရေးမလဲ ဆိုတာ ပြောပါမယ်.. အရင်ဆုံး Java Eclipse ကို သွင်းပြီးရင် File >> New >> Java Project ကို ရွေးပြီး ကိုလုပ်မဲ့ project name ကိုပေးလိုက်ပါ။ ကျွန်တော်ကတော့ W1 လို့ပေးလိုက်တယ်။ ပြီးရင် နောက်တခါ File>> New >> Class ကိုထက်ရွေးပေးပါ။ ဒါက ကိုရေးမဲ့ program အတွက် class ပါ။ ကြိုက်တဲ့ နာမည်ပေးလိုက်ပါ။ ကျွန်တော်ကတော့ SprotCalculator လို့ပေထားတယ်။ ဒါဆိုရင် စရေးလို့ရပြီ။
ရေးရမဲ့ဟာတွေက Sport Training Calculator.


The Sports Training Calculator should ask for the
 Athlete's name
 Athlete's gender
 Athlete's age
 Athlete's resting heart rate

After that it would calculate and show the following:
 Athlete's name
 Athlete's gender
 Athlete's age
 Athlete's maximum heart rate
 Athlete's training heart rate
 Athlete's V02Max

The Sports Training Calculator should use the following formula to calculate each athlete's VO2Max:
As well as the following formula for training heart rate:

VO2Max = 15 * maximum Heart Rate / Resting Heart rate
Training heart rate = 80% of Maximum Heart rate
Maximun Heart Rate ကိုတော့ မသိဘူး ကိုယ့်ဟာကို Google လိုက်တယ်။ Formula က

Maximum Heart Rate = 22--age
ဘာတွေ မေးရမလဲလည်းသိပြီ၊ ဘာတွေ print out ရမယ် ဆိုတာလည်းသိပြီဆိုတော့ စရေးလို့ရပြီ။ ဘယ်က စရေးရမလဲ ဆိုတော့ class file အောက် ကိုသွားမယ်၊ နောက်ပြီးတော့
public class SportCalculator {
အောက်ကစရေးရမယ်.
public void start() {
ကိုရေးရတယ်။ မရေးချင်ရင် Ctrl + Shift + Space ကိုသုံးလည်းရတယ်။ ပြီးရင် Enter ခေါက်လိုက်ရင် သူ့အလိုလို ရေးပေးလိမ့်မယ်။ ပြီးရင်
ဘာတွေမေးရမလဲ ဆိုတာ အရင်ဆုံး ရေးမယ် 


name = Keyboard.readString("What is your name? -> ");
gender = Keyboard.readString("Male or Female? -> ");
age = Keyboard.readInt("What is your age? -> ");
rhr = Keyboard.readDouble("What is your resting heart rate? -> ");


Keyboard လို့ဘာလို့အရင်ရလဲဆိုတော့ Keyboard class ကို ယူရေးချင်လို့။ ကျောင်းက Keyboard.java file ကို ပေးထားတယ်. အဲ့ file လေးကို အရင်ဆုံး Java Eclipse ထဲကို အရင်ဆုံး ထဲ့ထားပေးရမယ်။ Draft လုပ်ပြီး ထဲ့လိုက်ရုံဘဲ။
နောက်တစ်ခုက readString, readInt, readDouble စတာတွေက Data Types တွေ၊ ကို မေးချင်တဲ့ဟာက ဘာအမျိုးအစားလဲဆိုတာကို အရင် declare လုပ်ဖို့လိုမယ်။ ဒါမှ read လုပ်လို့ရမယ်၊ ပြီးတော့ input လို့ရမယ်။ ဒါကတော့ declare လုပ်ထားတဲ့ ကုဒ်ပါ။ declare ကို အရင်ဆုံး ရေးရမယ်​နော်။

public void start() {

String name = "";
String gender = "";
int age = 0;
double rhr = 0.0;

input လဲပြီးပြီ၊ declare လဲပြီးပြီဆိုရင် formula ရေးမယ်

int maxHeartRate = 220 - age;
double trainingHeartRate = (0.8 * maxHeartRate);
double vO2Max = (15 * maxHeartRate) / rhr;

အားလုံးပြီးရင်တော့ output ကိုရေးလိုက်မယ်

System.out.println("The Athlete's details are following... ");
System.out.println("Name - " + name);
System.out.println("Gender - " + gender);
System.out.println("Age - " + age);
System.out.println("The VO2Max of " + name + " is " + vO2Max);
System.out.println("Your max heart rate is " + maxHeartRate);
System.out.println("Your Training heart rate is " + trainingHeartRate);

ဒါဆိုရင် အားလုံးပြီးပြီ။ run ကြည့်ဖို့ကတော့ Main ဆိုပြီး class ထက်လုပ်ရမယ်။ ပြီးရင် အောက်က ကုဒ်ကို ရေးပေးလိုက်ရင် run လို့ရပြီ။

public class SportCalculatorMain {
public static void main(String[] args) {
SportCalculator app = new SportCalculator();
app.start();
System.out.println("Thank You Very Much");
}
}

Note:
Class can start with Capital Letter.
The rest... start with small letter.


Data Types:

number= int, short, long, byte
number with decimal = double, float
true false = boolean
only one latter = char
letter + number = string


String + int+int = string eg= four plus five is 45( String ကို အရင်ရေးပြီး Int ရေးရင် Int မဖြစ်ဘူး String ဘဲ)
string + (int +int)= string +int --> () do first* eg four plus five is 9. ( ) လုပ်ပေးထားရင်တော့ ( ) ကို အရင်လုပ်တယ် ပြီးရင် String နဲ့ ပြန်ပြတယ်။
string + string = string
int + int = int


== comparison
= assignment

ဆက်ပါအုံးမယ်....

What is Cloud Computing?

အခုနောက်ပိုင်း အရမ်း အသုံးဝင်လာတဲ့ Cloud နည်းပညာအကြောင်းလေးပြောထားတဲ့ video လေးပါ။ ကြည့်ပြီးရင်တော့ Cloud ဆိုတာ ဘာလည်းဆိုတာ နားလည်လောက်မယ် ထင်တယ်။


Object-Oriented Programming Problem 1 (Part 1)

Post တွေမတင်တာ လည်းကြာနေပြီဆိုတော့ အကြောင်းအရာ တစ်ခုခုတော့ ပုံမှန်လေး တင်သွားလို့ရအောင် ဘာရေးရမလဲ စဉ်းစားလိုက်တော့ Java အကြောင်း ရေဖို့ အတွေးရလာတယ်။ Java ကို သေသေချာချာ မသိသေးဘဲရေးလိုက်ရင် အမှားတွေဖြစ်မှာဆိုးလို့ မရေးရဲဘူး ဖြစ်နေတာ။ အခု java က ကျောင်းမှာလည်းသင်ရတယ်ဆိုတော့ ရေးရင်ကောင်းမယ်ထင်လို့ ရေးလိုက်တာပါ။ သေချာတယ် အမှားတွေ အများကြီးပါမှာပဲ။ သည်းခံပြီး ဖတ်ပေးကြပါလို့ အရင်ပြောချင်ပါတယ်။ အမှားတွေ့ရင်လည်း သေသေချာချာ ထောက်ပြပေးကြပါလို့။ ကျောင်းမှာသင်တာတွေကို နားလည်သလို ပြန်ရေးထားခြင်းဖြစ်ပါတယ်။ ကျောင်းမှာက တစ်ပတ်ကို တစ်ချိန်ဆိုတော့ Post ကိုလည်း တစ်ပတ် တစ် Post တင်နိုင်မယ်ထင်တယ်။
ကဲစလိုက်ကြရအောင်ဗျာ...
အရင်ဆုံး java ရေးဖို့အတွက် java program တစ်ခုရှိဖို့ လိုပါတယ်။ အရင်ဆုံး ဒီလင့်ကို Downlaod လုပ်လိုက်ပါ။ ပြီးရင် install လုပ်ပေးပါ။ 
 
Click "Next"
 
Click "Next" ပြီးရင် Finished ကို Click.
ပြီးသွားပြီ ဆိုရင်တော့ နောက်ထက် ဒီလင့် ကိုထက်ပြီး Download ပြီး Install လုပ်ပေးပါ။ အဲ့ဒါဆို မိမိ Computer မှာ Java eclipse program ရှိသွားပြီဖြစ်ပါတယ်။
Extract the folder eclipse in eclipse-java-helios-SR2-win32.zip to C:\. (You can also
install eclipse in D:\.)
ပထမ နေနဲ့  ရလာတဲ့ eclipse-java-helios-SR2-win32.zip ကို C: or D: တစ်ခုခုမှာ extract လုပ်ပေးလိုက်ပါ။ ပြီးရင် eclipse folder ထဲမှာ eclipse.exe ကို run ပေးပါ၊ 
 
workspace ကိုမေးရင် ကိုထားချင်တဲ့ နေရာတစ်ခုကို ရွေးလိုက်ပါ၊ မရွေးချင်ဘူးဆိုလည်း default အတိုင်းထားလိုက်ပါ။ အဲ့ workspace ဟာ ရေးထားတဲ့ files တွေအားလုံးကို save ထာမဲ့နေရာဖြစ်တယ်။ eclipse ကို စလို့ရပြီဆိုရင် shortcut ကို desktop ပေါ်မှာထားလိုက်ပါ။ ဒါမှမဟုတ် taskbar မှာ pin လိုက်ပါ။ 
နောက်ဆုံးအနေနဲ့ Window --> Preferences မှာfont ကို ရိုက်လိုက်ပါ၊ ပြီးရင် Colors and Fonts --> Java Editor Text Font --> Edit button / ပြီးရင် font ကို Consolas size ကို 9 လုပ်လိုက်ပါ။ 
အထက်ပါအဆင့်တွေပြီးသွားရင် java စရေးလို့ရပါပြီ။ 

Creating Your First Project 

Click File --> New --> Java Project ပြီးရင် name ပေးလိုက် ပြီးရင် [Finish]

Creating Your First Class

Click File --> New --> Class ပြီးရင် class name တစ်ခုပေးလိုက်ပါ။ eg. [HelloWorld]

 
src folder ကို ဖွင့်လိုက်ရင် HelloWorld ကို မြင်ရမှာဖြစ်ပါတယ်။
 
 Editor window မှာ right click ပြီး Show Line Numbers ကိုရွေးလိုက်ပါ။
 
line 3 မှာ ဒီကုဒ်ကို
public static void main(String[] args) {
System.out.println("My First Java Program");
}
ရိုက်ပေးပါ။
Click "Run" လိုက်ရင် အောက်ကအတိုင်းတွေ့ရမှာပါ။
 
ဒါဆို Java Eclispe ကို ဘယ်လိုသွင်းရလဲ ဆိုတာ သိလောက်မယ် ထင်ပါတယ်။ Download PDF
ဆက်ပါအုံးမည်... Part 2