ဒိုမိန္းနိမ္းတစ္ခု၀ယ္တာနဲ႔ နာမည္ေတြခြဲတာနဲ႔ပတ္သတ္လို႔ သူငယ္ခ်င္းတစ္ေယာက္ ေမးလာတာနဲ႔ပတ္သတ္ၿပီး ဒီပိုစ့္ကို ေရးျဖစ္ပါတယ္။ တျခား၀ယ္နည္းေတြ ကြၽန္ေတာ္မသိပါ။ blogger ကေန ၀ယ္ယူပံုကိုသာ ေဖၚျပမွာျဖစ္ပါတယ္။
၁။ ေအာက္ကပံုေလးအတိုင္း ၀ယ္ယူလိုတဲ့ ဘေလာ့အတြက္ Setting>Publishing>Custom Domain ကိုသြားလိုက္ပါမယ္။
၂။ လိုခ်င္တဲ့ နာမည္တစ္ခုကို (.com .info စသည္ျဖင့္ေရြး) ျဖည့္ၿပီး နာမည္သံုးရမရ Check Availability လုပ္ၾကည့္ပါမယ္။
၃။ သံုးလို႔ရတဲ့ နာမည္တစ္ခုျဖစ္မယ္ဆိုရင္ ေအာက္ပါအတိုင္း ေပၚလာပါလိမ့္မယ္။ တစ္ႏွစ္အတြက္ ၁၀ ေဒၚလာပါခင္ဗ်။
၄။ ျဖည့္ရမယ့္ နမူနာပံုစံျဖစ္ပါတယ္ခင္ဗ်။
၅။ အားလံုးျဖည့္ၿပီးရင္ေတာ့ ေအာက္ပါအတိုင္း ေပၚလာပါမယ္။ မွာလို႔ရပါၿပီခင္ဗ်။
၆။ ေအာက္ကပံုကေတာ့ ၀ယ္ယူၿပီးလို႔ ၀င္လာမယ့္ mail ပံုစံပါခင္ဗ်။ ဒီအဆင့္မွာပဲ domain name ၀ယ္ယူျခင္းၿပီးပါတယ္။ မၾကာမီ မိနစ္ပိုင္းမွာပဲ နာမည္သစ္နဲ႔ စလို႔ရပါၿပီ။ ဆက္လက္ေဖၚျပမွာကေတာ့ domain name ေလးေတြ ခြဲဖို႔ပါခင္ဗ်။
၇။ အေပၚပံုက လင့္အတိုင္း သြားမယ္ဆိုရင္ ေအာက္ကပံုကို ရလာပါမယ္
၈။ အေကာင့္နဲ႔ password ကို ေအာက္ပါအတိုင္းျပဳျပင္ဖန္တီးပါ့မယ္။ (ကြၽန္ေတာ္၀ယ္တံုးက ID PW တန္းပါသလား မပါသလား မမွတ္မိပါ။ မပါရင္လို႔ သေဘာထားၿပီး ျပန္ယူလိုက္တာေကာင္းမယ္ထင္ပါတယ္။ ID PW ပါ ေမးမွာေပးရင္ေတာ့ ဒီအဆင့္ ၈ ကို ေက်ာ္ဖတ္လိုက္ပါခင္ဗ်။)
မွ တဆင့္
၉။ ေမးကို ID pw ေရာက္ၿပီေရာက္ၿပီဆိုရင္ေတာ့ ေအာက္ပါလိပ္စာအတိုင္း၀င္လိုက္ပါတယ္။
၁၀။ မိမိဆိုဒ္ လိပ္စာအတိုင္း၀င္လိုက္ပါမယ္။
၁၁။ ဖန္တီးထားတဲ့ ID PW နဲ႔၀င္လိုက္ပါမယ္။
၁၃။ ဒီပံုအရ email အသစ္လုပ္တာေတြ ဒိုမိန္းနိမ္းေလးေတြ ခြဲတာကို လုပ္လို႔ရပါၿပီခင္ဗ်။ ေအာက္ပါပံုအတိုင္း သြားလိုက္ပါမယ္။
၁၄။ ေအာက္ပါပံုအတိုင္းဆက္၀င္လိုက္ပါမယ္။
၁၅။ ဒီ Page တစ္ခုေပၚလာၿပီး ID PW ေတာင္းပါတယ္။
၁၆။ ေပၚလာတဲ့ Page က ေအာက္ပါ ေနရာေလးေရြးကလစ္ပါမယ္။
၁၇။ Add new ႏွိပ္ၿပီး ေအာက္ကအတိုင္း astro ေနရာမွာ ႏွစ္သက္ရာ နာမည္ေျပာင္းၿပီး တစ္ေၾကာင္းရိုက္ save လိုက္ပါခင္ဗ်။
၁၈။ နာမည္ေျပာင္းလိုတဲ့ ဘေလာ့ရဲ႕ ဒီေနရာကို သြားပါမယ္။ Custom domain မွ Advanced Setting ျဖစ္ပါတယ္။
၁၉။ အခုဆိုရင္ေတာ့ http://technohalo.com မွ http://astro.technohalo.com ကို ေအာင္ျမင္စြာ ခြဲေပးလိုက္ၿပီျဖစ္ပါေၾကာင္းခင္ဗ်ား။
အဆင္ေျပပါေစခင္ဗ်ာ
အေမာင္
PS: ကူညီေျဖရွင္းေပးေသာ ကိုေတ အားေက်းဇူးတင္ပါသည္။
- Home
- 3D CAD
- C++
- Civil
- Engines
- GASTURBINES
- Graphic
- ElectroWave.1
- ကြၽန္ေတာ္ႏွင့္ waveform မ်ား
- layer မ်ားႏွင့္ semicnductor မ်ား
- resister မ်ားႏွင့္ တိုင္းတာပံု
- DC voltage သဘာ၀
- လွ်ပ္စစ္စီးဆင္းပံု
- Program နဲ႔ တိုင္းၾကည့္မယ္ဆိုရင္
- V/I Division Formula
- power ဘာ့ေၾကာင့္လိုတာလဲ
- KCL KVL အသံုးခ်တြက္နည္း
- star delta connection
- Short နဲ႔ Open ၊ On နဲ႔ Off
- ac ျဖစ္ေပၚလာပံုု
- ac နဲ႔ DC ၾကားက အရႈပ္
- DC average ႏွင့္ CircuitMaker
- CircuitMaker နဲ႔ wave-generate
- ac 220 waveform အမွန္
- KCL KVL ျဖတ္လမ္းအေတြး
- Diode on/off သဘာ၀
- ဘယ္အခ်ိန္ေတြမွာ diode on/off လဲ
- ac source နဲ႔ Diodes
- diode ေျပာတဲ့ full/half wave
- rectifiers သဘာ၀
- Capacitor သဘာ၀
- resistor/capacitor တန္ဖိုးဖတ္ျခင္း
- Transformer သဘာ၀
- center-tapped Xmer ထူးျခားခ်က္
- fullwave ထုတ္နည္း ၁
- fullwave ထုတ္နည္း ၂
- fullwave ကို ေခ်ာေမြ႔သြားေအာင္
- ElectroWave.2
- Marine Electrical
- Music-Creation
- Singapura-IT
- Templates
- Softwares
- E-books
- Videos
- TechnoHalo=?
Tuesday, July 27, 2010
Domain name ၀ယ္မယ္ နာမည္ေတြခြဲမယ္ဆိုရင္
Thursday, July 22, 2010
Machining Processes (1)
Conventional machining processes ေခါင္းစဥ္ရဲ႕ေအာက္မွာ အမ်ိဳး အစား (၆) မ်ိဳး ခြဲျခားထားပါတယ္။ ဒါေတြကေတာ႔
၁။ Turning
၂။ Milling
၃။ Drilling
၄။ Shaping
၅။ Grinding
၆။ Broaching တို႔ပဲျဖစ္ပါတယ္။
Nonconventional machining processes ေခါင္းစဥ္ ရဲ႕ေအာက္မွာ အမ်ိဳး အစား (၁၀) မ်ိဳး ခြဲျခားထားပါတယ္။
ဒါေတြကေတာ့
၁။ Electro chemical Machining (ECM)
၂။ Electro Discharge Machining (EDM)
၃။ Wire Electro Discharge Machining (WEDM)
၄။ Abrasive Jet Machining (AJM)
၅။ Ultrasonic Machining (USM)
၆။ Liquid Jet Machining (LJM)
၇။ Electron Beam Machining (EBM)
၈။ Laser Beam Machining (LBM)
၉။ Ion Beam Machining (IBM)
၁၀။ Plasma Arc Machining (PAM)



Lathe machine ေတြဟာ Turning machining processes ထဲမွာ ပါ၀င္ပါတယ္။
Turning machining processes နဲ႔ပါတ္သတ္ျပီး workpiece နဲ႔ tool တို႔ရဲ႕ အေျခခံတြဲဖက္ လုပ္ေဆာင္ပံုေတြကေတာ႔ ေအာက္မွာ ပံုေတြနဲ႔ ရွင္းျပေပးမွာျဖစ္ပါတယ္။

ပံု(၁) - အေျခခံ Turning machining processes ၏အလုပ္လုပ္ပံု
Dp = အဓိက ေရႊလွ်ားမႈ႕ (the main cutting motion) ၊ Ds = ခုတ္စား အေရႊ႕ (feed motion) ၊ α = workpiece တစ္ခု ရဲ႕ ၀န္ရိုးကေန အေျခခံတည္ရွိတဲ႔ ေထာင္႔ ၊ L = workpiece ရဲ႕ စုစုေပါင္း အလွ်ား ၊h = tailstock ရဲ႕ အျမင္႔။
workpiece တစ္ခုရဲ႕ မ်က္ႏွာျပင္စားတဲ႔ လုပ္ငန္းစဥ္ ေပၚမူတည္ျပီးေတာ႔ external turning နဲ႔ boring ဆိုျပီး ႏွစ္မ်ိဳး ခြဲျခားနိုင္ပါတယ္။ Tools ေတြ ရဲ႕ ခုတ္စားရာ လမ္းေၾကာင္းေပၚ မူတည္ျပီးေတာ႔ longitudinal turning (ပံု(a) ၊ လည္ေနတဲ႕ workpiece ရဲ႕ ၀န္ရိုးတစ္ေလွ်ာက္ အျပိဳင္ပံုစံ ခုတ္စားျခင္း)၊ lateral turning (ပံု (б) ၊ လည္ေနတဲ႕ workpiece ရဲ႕ ၀န္ရိုးအေပၚ ေထာင့္မတ္က် ခုတ္စားျခင္း)၊ turning cones (ပံု (в) ၊ လည္ေနတဲ႕ workpiece ရဲ႕ ၀န္ရိုးကေန ေထာင္႔တစ္ခု ခ်ိဳး၍ ခုတ္စားျခင္း) ႏွင့္ turning shaped surfaces ပံု(г,д)ဆို ျပီး ခြဲျခားနိုင္ပါတယ္။

ပံု(၂) - စက္ အသြားမ်ား
Cutter ေတြကို အမ်ိဳးအစား ခြဲရာမွာ - မ်က္ႏွာျပင္စားႏွင္႔ ထိပ္ျဖတ္စားေသာTools (ပံု(a)) ၊ အတြင္းမ်က္ႏွာျပင္စားေသာ Tools (ပံု(б)) ၊ ေျမာင္းေဖာ္ျခင္းႏွင့္ ပိုင္းျဖတ္စားေသာ Tools (ပံု(в)) ၊ Thread ေဖာ္ေသာ Tools (ပံု(г)) ႏွင့္ ပံုေဖာ္စားေသာ Tools (ပံု(д))ဆိုျပီး ခြဲျခားနိုင္ပါတယ္။
Cutters ေတြရဲ႕ အလုပ္လုပ္ပံု ျဖစ္စဥ္ေတြ ေပၚမွာ မူတည္ျပီး အၾကမ္းစား ၊ အေခ်ာစား ႏွင္႔ အသင္႔ အတင့္စား Cutters မ်ားလိ္ု႕လည္းခြဲျခားထားၾကပါေသးတယ္။
Tools တစ္ခုကို Geometry ပံုအရ ၾကည့္မယ္ ဆိုရင္ အရိုးရွင္းဆံုး single point tools တစ္ခု မွာ ေအာက္ပါ ပံု အတိုင္းေတြ႕ျမင္ရမွာ ျဖစ္ပါတယ္။

Workpiece ေတြကို တပ္ဆင္ရာမွာ ေအာက္ပါ ပံုမ်ားအတိုင္း တပ္ဆင္ေလ့ရွိတာ ကိုေတြ႔ရွိရပါတယ္။

ပံု(၃) - တပ္ဆင္ပံု အမ်ိဳးမ်ိဳး
(а) - three-jaw ျဖင္႔ ညွပ္ထိန္းျခင္း ၊ (б) – Center မွ ညွပ္ထိန္းျခင္း၊ (в) – ခါးပါတ္ကဲ႔သို႔ ရစ္ပါတ္ ထ္ိန္းခ်ဳပ္ျခင္း ၊ (г) – support မ်ားျဖင္႔ ထိန္းညွပ္ျခင္း ၊ (д) - အတြင္းမွ ခ်ဴပ္ထိန္းျခင္း။ (၁) - ကိုယ္ထည္ ၊ (၂) - ခုတ္စားမည့္ပစၥည္း (workpiece) ၊ (၃) – Cams ၊ (၄) - ထုခၽြန္ပံု (သပ္)။
Tuesday, July 13, 2010
ေဆြးေႏြးခ်က္ (၁၀)
do while loop
do statement while (condition);
ဒါကေတာ႔ looping ေတြထဲ do while ဆိုတဲ႔ loop ပါ ။ do while ရဲ့အလုပ္လုပ္ပံုက လည္း while နဲ႔ဆင္တူပါတယ္ ။ ဒါေပမဲ႔ကြဲသြားတာေလးတစ္ခု က while မွာ condition ကိုစစ္ၿပီးမွန္မွအလုပ္လုပ္တယ္ do while မွာက်ေတာ႔ do မွာတင္အလုပ္လုပ္ခဲ႔ၿပီးေနာက္ဆံုးက်မွ while မွာဝင္စစ္ပါတယ္ ။ while က expression ကမွန္ေနေသးသမွ် looping ဆက္ပတ္ေနၿပီး ထပ္ခါ ထပ္ခါ do ေနမွာပါ ။ မ်က္စိထဲပိုၿပီးျမင္သာသြားေအာင္ ဥပမာေလးၾကည့္ၾကစို႔ဗ်ာ ..။
Example for do while loop
#include <iostream>
int main()
{
int counter;
std::cout << "How many time to say hellos? ";
std::cin >> counter;
do
{
std::cout << "Hello\n";
counter--;
} while (counter >0 );
std::cout << "counter is: " << counter << std::endl;
return 0;
}
ရွင္းလင္းခ်က္
std::cout << "How many time to say hellos? ";
std::cin >> counter;
ဆိုတာကေတာ႔ Hello လုိ႔ ဘယ္ ႏွခါ ေျပာခ်င္လဲ ။ စက္ခရင္မွာျပခ်င္လဲလို႔ေမးလိုက္တာပါ ။ အဲဒီအခ်ိန္မွာ Program User ကေန ရုိက္ထည့္ေပးလိုက္မဲ႔ တန္ဖိုး ကို counter ဆိုတဲ႔ integer variable တစ္ခုနဲ႔ထည့္ထားလိုက္ပါတယ္ ။
ေနာက္ ေအာက္ကိုဆင္းသြားၿပီး do ကိုေတြ႔တာနဲ႔ do while looping ထဲကိုစဝင္ၿပီးအလုပ္လုပ္ပါတယ္ ။ std::cout << "Hello\n";
counter--; ဆိုတဲ႔အတြက္ေၾကာင္႔ Hello လို႔ secreen မွာေရး ပီးရင္ေနာက္တစ္ေၾကာင္းဆင္း မူလကေပးထားတဲ႔ counter ရဲ့တန္ဖိုးကို ၁ ႏွဳတ္ လိုက္ပါတယ္ ။ အဲဒီကေနေအာက္ကိုဆက္ဆင္းသြားၿပီး while (counter >0 ); ကိုေရာက္တဲ႔အခါမွာ မူလတန္ဖိုးကိုတစ္ႏွုတ္ထားတဲ႔ counter တန္ဖိုးဟာwhile မွာေဖာ္ျပထားတဲ႔ အေျခေနနဲ႔ကိုက္ညီလားဆိုတာ စစ္ပါတယ္ ။ ဒီ program မွာေတာ႔ 0 သုညထက္ႀကီးလား စစ္တာျဖစ္ပါတယ္ ။ တကယ္လို႔ ႀကီးေနေသးတယ္ဆုိရင္ အေပၚကိုျပန္တက္ၿပီး do ကိုျပန္လုပ္ ေနာက္ခါ
while နဲ႔ ထပ္ျပန္စစ္လုပ္ပါတယ္ ။ တကယ္လို႔ while မွာျပထားတဲ႔ အေျခေနနဲ႔မကိုက္ညီဘူး 0 သုညျဖစ္သြားၿပီ ဆိုတာနဲ႔ do while loop ကေနထြက္သြားပါတယ္ ။
std::cout << "counter is: " << counter << std::endl;
ဆိုတာကေတာ႔ do while မစခင္တုန္းကကၽြန္ေတာ္တို႔ က ၈ ဆိုၿပီးေပးထားခဲ႔တယ္ ။ ေနာက္ do while လုပ္လိုက္ၿပီးတဲ႔အခါမွာ ဘယ္ေလာက္က်န္ေတာ႔လဲ ဆိုတာသိေအာင္လို႔ထုတ္ျပေပးခိုင္းထားပါ ။ ေအာက္က result ေလးနဲ႔ပါတြဲၿပီးၾကည့္ၾကည့္ပါ ။ အလုပ္လုပ္ပံုေတြက while နဲ႔သိပ္မကြာလွပါဘူး နာလည္းမယ္လို႔ထင္ပါတယ္ ။
Result
do while with end condition
#include <iostream>
using namespace std;
int main()
{
char ch;
do {
cout << "Do You Love Me? (y = YES or n = No)\n\n";
cin >> ch;
} while(ch != 'y');
cout<<" \3I Love You Too! \3\n";
return 0;
}
ဒီ Program ကေတာ႔ Do While Loop ရဲ့ ဆံုးမွတ္တစ္ခုကိုပဲေပးထားၿပီး looping ပတ္တဲ႔ပံုစံပါ ။ ဘယ္ႏွႀကိမ္ရယ္လို႔လည္းသတ္မွတ္မထားပါဘူး ။ ပီးေတာ႔ ဘယ္ေရြ႔ဘယ္မွ် ေလွ်ာ႔သြားရမယ္တိုးသြားရမယ္လို႔လည္းသတ္မွတ္မထားပါဘူး။ ဆံုးမွတ္တစ္ခုကိုပဲေပးထားၿပီး while မွာ စစ္လိုက္လို႔ မညီဘူးဆိုရင္မညီမခ်င္း looping ပတ္ေနၿပီး ညီတဲ႔အခါမွာေတာ႔ looping ကေနထြက္သြားမွာပါ ။ အေပၚက ကုဒ္ေလးမွာ cout << "Do You Love Me? (y = YES or n = No)\n\n"; ဆိုၿပီးေမးထားပါတယ္ ။ User ကထည့္ေပးမဲ႔တန္ဖိုးကို ch ထဲမွာထည့္ၿပီး while မွာသြားစစ္မွာပါ ။ while(ch != 'y'); ဆိုတဲ႔အတြက္ y ကိုရိုက္မွာ looping ကရပ္သြားမွာပါ ။ y မရိုက္မခ်င္းေတာ႔ looping ပတ္ၿပီး အၿမဲတမ္းေမးေနမွာျဖစ္ပါတယ္ ။ ေအာက္က Result ကိုၾကည့္ၾကည့္ပါ ။
Result
Nested if statement in a do while loop
Nested if statement ေတြကို Do While Loop နဲ႔ အတူတြဲသံုးထားတဲ႔ Program ေလးတစ္ပုဒ္ပါ ။ တနည္းအားျဖင္႔ေတာ႔ Guessing Game ေတြရဲ့ simple progam ေလးလို႔လည္းေျပာနိုင္ပါတယ္ ။ ၾကည့္ၾကည့္ပါဦး ။
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic;
int guess;
magic = rand(); // get a random number
do {
cout << "Enter your guess: ";
cin >> guess;
if(guess == magic) {
cout << "Right";
cout << magic << " is the magic number.\n";
}
else {
cout << "...Sorry, you're wrong.";
if(guess > magic)
cout << " Your guess is too high.\n";
else cout << " Your guess is too low.\n";
}
} while(guess != magic);
return 0;
}
ရွင္းလင္းခ်က္
ဒီ Program ေလးမွာ #include <cstdlib> header file ကိုသံုးထားပါတယ္ ။ ဘာေၾကာင္႔ ေခၚသံုးထားလဲဆိုေတာ႔ rand () ဆိုတဲ႔ ဖန္ရွင္ကိုသံုးခ်င္လို႔ပါ ပဲ ။ rand () ဆိုတာကေတာ႔ random ေခါက္ထားတဲ႔ ဂဏန္းေတြပါ ။ ဘာၿပီးရင္ဘာလာရမယ္ဆိုၿပီးသတ္မွတ္ထားလို႔မရပါဘူး သူ႔က်ခ်င္ရာက်လာပါလိမ္႔မယ္ ။ do statement ထဲမွာေတာ႔ ကၽြန္ေတာ္တို႔လုပ္ေဆာင္ခ်င္တာေတြကိုေရးထားပါတယ္ ။ ramdom ေခါက္လို႔ရလာတဲ႔အေျဖမွန္ ကုိ user မွန္းတဲ႔ ဂဏန္းနဲ႔ တိုက္ဆုိင္စစ္ေဆးဖို႔ if ..ေတြ else ေတြကို သံုးၿပီးေရးထားပါ တယ္ ။ အဲဒါေတြကိုေတာ႔အေသးစိတ္ရွင္းမျပေတာ႔ပါဘူး ။ အရင္ ၿပီးခဲ႔တဲ႔ေဆြးေႏြးခ်က္ေတြမွာကတည္းကေဆြးေႏြးၿပီးထားျဖစ္လို႔ပါ ။ ေနာက္ဆံုးမွာ while(guess != magic); လို႔ေရးထားပါတယ္ အဲဒီအတြက္ေၾကာင္႔ user မွန္းတဲ႔ ဂဏန္းဟာအေျဖမွန္မဟုတ္မခ်င္း do …while loop ကပတ္ေနမွာျဖစ္ပါတယ္ ။ result ကိုတစ္ခ်က္ၾကည့္ၾကည့္ပါ ။
Result
ေဆြးေႏြးခ်က္ (၉)
while loop
Looping ေတြထဲက ဒီတစ္မ်ိဳးကေတာ႔ while loop ပါ ။ while loop ရဲ့ ေရးသားပံုကေတာ႔
while (expression) statement;
နဲ႔
while (expression) { Statement; }
တို႔ပါပဲ ။ for တုန္းကလိုေပါ႔ brace မပါတာနဲ႔ ပါတာ ၂ ခု ကြဲေနတာကိုေတာ႔ for loop တုန္းက ရွင္းျပခဲ႔ၿပီးျဖစ္လို႔ နားလည္လိမ္႔မယ္လို႔ယူဆပါတယ္ ။သူ႔ အလုပ္လုပ္ပံုကိုပိုၿပီးနားလည္သြားေအာင္ ဥပမာေလးနဲ႔ တြဲၿပီးၾကည့္ၾကည့္လိုက္ရေအာင္ဗ်ာ ။
Example for while loop
#include <iostream>
using namespace std;
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
while (n>0) {
cout << n << ", ";
--n;
}
cout << "FINISH!\n";
return 0;
}
ရွင္းလင္းခ်က္
ဒီဥပမာ Program ေလးနဲ႔ while loop ရဲ့အလုပ္လုပ္ပံုေလးကိုေျပာျပပါ႔မယ္ ။
၁ ။ ပထမ Pogram user ကို starting number ေတာင္းထားတာျဖစ္တဲ႔အတြက္ သူကထည့္ေပးလိုက္တဲ႔အခါ n ဆိုတဲ႔ variable ထဲကိုထည့္ၿပီးယူလိုက္ပါတယ္ ။
၂ ။ n တန္ဖိုးကို while ရဲ့ expression မွာ စစ္လုိက္ပါတယ္။ (n>0) n တန္ဖိုးဟာ ၀ ထက္ႀကီးသလား ဆိုၿပီး စစ္တာပါ ။ ဟုတ္ၿပီစစ္တယ္ဆိုတဲ႔အေျခေနမွာ မွန္တာရွိမယ္ မွားတာ ရွိမယ္ ။ အဲဒါဆိုေတာ႔ အမွန္အမွားေပၚမူတည္ၿပီး လုပ္ေဆာင္တာကြဲျပားသြားနိုင္ပါတယ္ ။
(က) တကယ္လို႔သာ အေျခေနဟာ သုညထက္ ႀကီးတာ အမွန္ျဖစ္ခဲ႔မယ္ဆိုရင္ ေနာက္ထက္ အဆင္႔ ၃ ကိုထပ္လုပ္ပါ႔မယ္ ။
(ခ) တကယ္လို႔ သုညထက္မ်ားငယ္ခဲ႔မယ္ ဒါမွမဟုတ္ သုည ျဖစ္ခဲ႔မယ္ဆိုရင္ သူေပးထားတဲ႔ expression မွားတဲ႔အတြက္ while loop ကထြက္ၿပီး ေနာက္ဆံုး လုပ္ေဆာင္ရမဲ႔ အဆင္႔ ၅ ကိုေက်ာ္ေရာက္သြားပါ႔မယ္ ။
၃ ။ အဆင္႔ ၂ မွာ စစ္တာမွန္ခဲ႔တယ္ဆိုရင္ cout << n << ", "; --n; ဆိုတဲ႔ statement ကိုလုပ္ေဆာင္သြားမွာပါ ။ အဲဒီအတြက္ေၾကာင္႔ User ရိုက္လိုက္တဲ႔ အစဂဏန္း ကေနစၿပီး စက္ခရင္မွာ ထုတ္ေပးၿပီး တန္ဖိုး ၁ ေလွ်ာ႔ေလွ်ာ႔သြားမွာပါ ။
၄ ။ အဲဒီလုပ္ေဆာင္ခ်က္ ၿပီးတဲ႔အခါမွာေအာက္ကိုဆက္ဆင္းပါတယ္ while loop ရဲ့ end block ျဖစ္တဲ႔ brace ( } ) ကိုေတြ႔တဲ႔အခါမွာေတာ႔ အေပၚ while loop ရဲ့ expression ကိုျပန္တက္ၿပီး အဆင္႔ ၂ ကေနျပန္စမွာျဖစ္ပါတယ္ ။
၅ ။ ဒီအဆင္႔မွာေတာ႔ while loop က ပတ္စရာရွိတာေတြ လုပ္စရာရွိတာေတြအကုန္ လုပ္ၿပီး တဲ႔ အခါ FINISH ဆိုတဲ႔ စာသားကိုထုတ္ေပးမွာျဖစ္ပါတယ္ ။
က်န္တဲ႔ ပရုိဂရမ္ ေတြမွာလဲ သေဘာတရား ကအားလံုးတူတူပဲျဖစ္ပါတယ္ ။ ဒီအဆင္႔ေတြတိုင္းပဲ အလုပ္လုပ္ ပါတယ္ ။
Result 
While statement with 'and'&& Operator
#include <iostream>
using namespace std;
int main()
{
int len;
cout << "Enter length (1 to 50): ";
cin >> len;
while(len>0 && len<50)
{
cout << '\3';
len--;
}
cout<<endl;
return 0;
}
ဒါကေတာ႔ ေနာက္ပံုစံတစ္မ်ိဳးေပါ႔ ..။ while loop ရဲ့ expression ထဲမွာ စမွတ္နဲ႔ ဆံုးမွတ္ ၂ ခုေပးၿပီး အဲဒီ ၾကားထဲက ဂဏန္းဟုတ္တယ္ဆိုရင္ အလုပ္လုပ္ခိုင္းမယ္ဆိုတဲ႔ program ေလးပါ ။ အဲဒီအတြက္ logical operator and (&&) ကိုသံုးထားပါတယ္ ။ တျခား ေအာ္ပေရတာေတြနဲ႔ လည္းကိုယ္စိတ္ကူးတည့္ရင္တည့္သလို ျပန္စမ္းၿပီး run ၾကည့္ေစခ်င္ပါတယ္ ။ အဲဒါမွတစ္ခါတည္း သူ႔သေဘာတရားကိုနားလည္သြားမွာျဖစ္သလို အရင္ ၿပီးခဲ႔တဲ႔ေဆြးေႏြးခ်က္ေတြအတြက္လည္းျပန္ၿပီးေႏႊးၿပီးသားျဖစ္မွာပါ ။
Result
A while true loop
While loop ရဲ့ ေနာက္ပံုစံတစ္မ်ိဳးပါ ။ while loop ကိုလည္းသံုးခ်င္တယ္ expression မွာလည္း ဘာမွျပစရာမရွိဘူး ဆိုရင္ while(true) ဒါမွမဟုတ္ while(1) လို႔ေရးၿပီး ကိုယ္လုပ္ေစခ်င္တဲ႔ statement ေတြကိုသံုးၿပီး while looping ပတ္ခို္င္းနုိင္ပါတယ္ ။ (ကၽြန္ေတာ္နားလည္သလိုေရးထားတာျဖစ္လို႔ မွားေကာင္းမွားနိုင္ပါတယ္ ။ )
ဒီလိုပံုစံလည္း while loop ကိုေရးတယ္ဆိုတာကို သိေစခ်င္တာပါ ။
#include <iostream>
int main()
{
int counter = 0;
while (true) // or while(1)
{
counter ++;
std::cout<<counter<<std::endl;
if (counter > 20)
break;
}
std::cout << "counter: " << counter << "\n";
return 0;
}
Program ရဲ့တျခားအလုပ္လုပ္ပံုအေၾကာင္းရာေတြကေတာ႔ ေထြေထြထူးထူးမဟုတ္လို႔ရွင္းမျပေတာ႔ပါဘူး အေပၚဆံုးမွာ ေရးျပခဲ႔တဲ႔ ဥပမာနဲ႔ အလုပ္လုပ္ပံုခ်င္းတူတူပါပဲ ။ operator break ဆိုတာကေတာ႔ while loop က အဲဒီေနရာကိုေရာက္ၿပီး break ဆိုတဲ႔ ေနရာကိုေရာက္ၿပီဆိုတာနဲ႔ပတ္ေနတာကိုရပ္ရမယ္လို႔ ဆိုလိုတာပါ ။ ဒါေၾကာင္႔ counter တန္ဖိုး ၂၀ ေက်ာ္ၿပီဆိုတာနဲ႔ while loop ကထြက္သြားမွာပါ ။ break ရဲ့အလုပ္လုပ္ပံုအေသးစိတ္ကိုေတာ႔ ေနာက္မွာပဲ ေဆြးေႏြးပါေတာ႔မယ္ ။
ကဲဗ်ာ ဒီပံုစံ ၃ မ်ိဳးေလာက္ရယ္ စာဖတ္သူ ကို္ယ္တိုင္ ဥာဏ္ကြန္႔ျမဴးၿပီးေရးၾကည့္မဲ႔ program ေလးေတြရယ္ ဆိုရင္ while loop ရဲ့အလုပ္လုပ္ပုံ ကိုနားလည္ၿပီး မွတ္လည္းမွတ္မိလိမ္႔မယ္လို႔ကၽြန္ေတာ္ယံုၾကည္ပါတယ္ ။ နားၾကာဦးစို႔ဗ်ာ …။
ေဆြးေႏြးခ်က္ (၈)
Loop
For Loop အေၾကာင္းမေျပာခင္ Loop ဆိုတာဘာလဲ ေျပာၾကည့္ရေအာင္ဗ်ာ Loop ဆိုတာ ပတ္လမ္းပါပဲ ။ ထပ္ကာထပ္က အလုပ္လုပ္ေစဖို႔ ညႊန္ၾကားေပးနိုင္တဲ႔ အရာေပါ႔ ဗ်ာ ။ Program မွာ Loop ေတြ ကို အမ်ိဳးမ်ိဳး သံုးေလ႔ရွိပါတယ္ ။ for ,while, do ..while စသျဖင္႔ေပါ႔ ေလ တျခား Pogramming ေတြမွာ တျခား loop ပံုစံေတြလည္းရွိဦးမွာ ပါ (ဥပမာ C မွာဆိုရင္ Repeat until ေပါ႔) အခုက C++ ဆိုေတာ႔ သူ႔ထဲမွာပါတဲ႔ loop ေတြအေၾကာငး္ပဲေျပာတာေပါ႔ ။
For Loop
For loop ကေတာ႔ Intilization (အစမွတ္) ၊ condition (အေျခေနအတိုင္းတာတစ္ခု သို႔ အဆံုးမွတ္) ၊ နဲ႔ iteration (တိုးသြားမဲ႔ ႏွုန္း) စတာေတြကိုသတ္မွတ္ၿပီးlooping ပတ္ခ်င္တဲ႔အခါမ်ိဳးေတြမွာ for loop ကိုသံုးပါတယ္ ။ for loop ရဲ့ ပံုစံ ေလးကိုေအာက္မွာၾကည့္ၾကည့္ပါ ။
ပံုစံ (၁)
for(initialization; condition; iteration) statement;
statement တစ္ခုတည္းကို looping ပတ္တဲ႔ပံုစံပါ ။
ပံုစံ (၂)
for(initialization; condition; iteration) { statement sequence }
သူကေတာ႔ statements ေတြအမ်ားႀကိးလုပ္ေဆာင္ခ်င္တဲ႔အခါမွာ {…} (brace) နဲ႔ block လုပ္ၿပီး looping ပတ္တဲ႔အခါမွာသံုးတဲ႔ပံုစံပါ ။
For Loop ရဲ့လုပ္ေဆာင္ပံု
၁ ။ for loop ကို ေတြ႔ၿပီဆိုတာနဲ႔ ပထမဆံုး Intilization မွာစၿပီး အလုပ္လုပ္ပါတယ္ ။ intilization တန္ဖိုးတစ္ခုအတြက္ looping တစ္ႀကိမ္ပတ္ပါတယ္ ။
၂ ။ စမွတ္တန္ဖိုးရသြားၿပီးတဲ႔ အခါမွာ condition ေဖာ္ျပခ်က္မွာထပ္ၿပီးစစ္ပါတယ္ ။
၃ ။ တကယ္လု႔ိ condition မွာေဖာ္ျပထားတဲ႔ အတုိင္းမွန္ေနေသးတယ္ဆိုရင္ ေအာက္ကိုဆင္းၿပီး statements ေတြကုိလုပ္ေဆာင္ပါတယ္။ ၿပီးရင္ iteration မွာသြားၿပီး ေတာ႔ repeat လုပ္ရမဲ႔ႏွဳန္းအတိုင္း စမွတ္တန္ဖိုးကိုတိုးလိုက္ပါတယ္ ။
တကယ္လို႔ condition မွာစစ္လိုက္လို႔ ေဖာ္ျပထားတဲ႔ အခ်က္နဲ႔ မကိုက္ညီေတာ႔ဘူးဆိုရင္ေတာ႔ ေအာက္က statement ကုိလည္းမလုပ္ေတာ႔ပဲ looping ကေန ထြက္သြားပါတယ္ ။
၄ ။ နံပါတ္ ၃ က iteration မွ တိုးေပးထားတဲ႔ႏွုန္းအတိုင္ း intilized တန္ဖိုး ျပန္စၿပီး looping ထပ္ပတ္ပါတယ္ ။ နံပါတ္ ၁ ၊ ၂ ၊၃ ၊ ၄ ကိုအစဥ္တိုင္းျပန္လုပ္ပါတယ္ ။
Example for simplest for loop
မ်က္စိထဲမွာရွင္းရွင္းလင္းလင္းျမင္သြားေအာင္ ဥပမာေလးေတြ ၾကည့္လိုက္ရေအာင္ ။
#include <iostream>
using namespace std;
int main()
{
int count;
for(count=1; count <= 25; count=count+1)
cout << count << " ";
cout<<endl;
return 0;
}
ရွင္းလင္းခ်က္
အေပၚက code ေလးကိုၾကည့္ၾကည့္ပါ ။ for loop ရဲ့ ပံုစံ (၁) ကိုသံုးထားပါတယ္။ program မွာက ၁ ကေန ၂၅ ထိကို ဂဏန္းေတြ ထုတ္ေပးခိုင္းတာပါ ။ ပထမ ကၽြန္ေတာ္ int count; လို႔ data declaration လုပ္ထားပါတယ္ ။ ၿပီးေတာ႔ for loop စပါတယ္။
၁ ။ အရင္ဆံုး for loop ရဲ့လုပ္ေဆာင္ပံုကိုေျပာထားတုန္းကအတိုင္းပဲ count = 1 ; ဆိုၿပီး count တန္ဖိုးကို ၁ ကေနစပါလို႔ကၽြန္ေတာ္ေျပာထားလိုက္ပါတယ္ ။
၂ ။ ေနာက္ condition မွာ ကၽြန္ေတာ္က count <=25 ဆိုၿပီး count တန္ဖိုး ၂၅ ထိေအာင္ အလုပ္လုပ္မယ္လို႔ ဆံုးမွတ္ အေျခေနတစ္ခုေပးထားလိုက္ပါတယ္ ။ Program က count တန္ဖိုး ဟာ ၂၅ ေအာက္ငယ္ေနေသးသလား ဒါမွမဟုတ္ ၂၅ နဲ႔ညီၿပီလားဆိုတာစစ္ပါတယ္ ။ အခု count တန္ဖိုး က ၁ ပဲရွိေသးတာျဖစ္လို႔ သူ႔အေျခအေနနဲ႔ကိုက္ညီပါတယ္ ။
၃ ။ အဲမွာစၿပီး statement ကိုအလုပ္လုပ္ပါတယ္ ။ cout<<count << “ ” ; ဆိုတဲ႔အတြက္ေၾကာင္႔ count ရဲ့ စမွတ္တန္ဖိုး ၁ ျဖစ္တဲ႔အခ်ိန္မွာ ၁ လို႔ စက္ခရင္မွာထုတ္ေပးလိုက္ပါတယ္ ။ ေနာက္ iteration အပိုင္းကို ဆက္ၾကည့္ပါတယ္ ။ count=count+1; ဆိုတဲ႔ တိုးသြားရမဲ႔ႏွဳန္းကိုေပးထားတာေၾကာင္႔ ေနာက္တစ္ပါတ္အတြက္ count ရဲ့စမွတ္မွာ ၂ ဆိုတဲ႔တန္ဖိုး ျပန္ဝင္သြားပါတယ္ ။
၄ ။ အဲဒီအတိုင္း ပဲ စမွတ္ေနရာကေန ေနာက္ထပ္တစ္ပါတ္ ျပန္ပါတ္ ပါတယ္ ။ အဆင္႔ ၁ ၊ ၂ ၊ ၃ ၊ ၄ ကိုအစဥ္တိုင္းျပန္လုပ္ပါတယ္ ။
အခု Program ေလးမွာကၽြန္ေတာ္ သိေစခ်င္တဲ႔ အခ်က္ေလးကိုထည့္ထားပါတယ္ ။ cout<<endl; ဆိုတဲ႔ဟာေလးကို statement ေအာက္မွာေရးေပးထားတာပါပဲ ။ {..} ေတြကိုမသံုးရင္ for looping ေအာက္မွာstatementတစ္ေၾကာင္းပဲလုပ္တယ္ဆိုတာကိုသိေစခ်င္လို႔ပါ။
Result
For Loop by using brace ({….})
ဒီဥပမာေလးကေတာ႔ အေပၚမွာေျပာထားခဲ႔တဲ႔ for loop ရဲ့ ပံုစံ (၂) အတြက္ပါ ။ အခု program မွာ{…} သံုးၿပီး statements တစ္ခုထက္ပိုတာေတြကို for loop ထဲမွာအလုပ္လုပ္တဲ႔ ပံုစံပါ ။ အလုပ္လုပ္ပံု က ေတာ႔ အေပၚ က example Program အတိုင္းပါပဲ ။
#include <iostream>
using namespace std;
int main()
{
int count;
int sum=0;
long int multiply=1;
for(count=1; count <= 25; count++) // count++ ဆိုတာ count=count+1 နဲ႔တူတူပါပဲ
{
cout << count << " ";
sum+=count; //sum=sum+count;
multiply*=count; // multiply=multiply*count;
}
cout<<endl;
cout<<"The sum of from 1 to 25 = "<<sum;
cout<<endl;
cout<<"The Multiplication of from 1 to 25 = "<<multiply;
cout<<endl;
return 0;
}
ကုဒ္ေလးေတြကို ကိုယ္တိုင္ Run ၾကည့္ၿပီး ထြက္လာတဲ႔ result ေလးေတြကိုကိုယ္တိုင္ေလ႔လာၾကည့္ပါ ။ ပံုေတြ အမ်ားႀကီးထည့္ရင္ပို႔စ္ရွည္သြားမွာစိုးလို႔ ကၽြန္ေတာ္ result ပံုမထည့္ေပးေတာ႔ပါဘူး ။
For Loop with char
ဒါ ကေတာ႔ ေနာက္ ပံုစံတစ္မ်ိဳးေပါ႔ for loop မွာ character ကိုသံုးထားတဲ႔ ပံု စံပါ ။ ဂဏန္းေတြတင္ looping ပတ္လို႔ရတာမဟုတ္ဘူး character ကိုသံုးၿပီးေတာ႔ looping ပတ္လို႔ရတယ္ဆိုတာသိေစခ်င္လို႔ ပါ ။
#include <iostream>
using namespace std;
int main()
{
char letter;
for(letter = 'A'; letter <= 'Z'; letter++)
cout << letter<<" ";
cout<<endl;
return 0;
}
For Loop Without Increasement
အေပၚ မွာ for loop ရဲ့ ပံုစံေတြေျပာတုန္း က for(initialization; condition; iteration) ရွိတယ္လို႔ ကၽြန္ေတာ္ေျပာခဲ႔ တယ္ ။ ေက်ာင္းမွာ C++ ကိုစၿပီးသင္ဖူးတုန္း က ဆရာေတြ က ဒီ for loop ကေတာ႔ ဒီလိုပံုစံသံုးရတယ္ဆိုေတာ႔ ကၽြန္ေတာ္တို႔ က ဒီပံုစံတစ္မ်ိဳးပဲမွတ္လိုက္တာပါ ။ အဲဒီေတာ႔ဘာျဖစ္လာလဲဆိုေတာ႔ တျခား ကၽြန္ေတာ္တို႔မသိခဲ႔ရတဲ႔ ပံုစံေတြနဲ႔ code ေလးေတြကိုေတြ႔လိုက္တဲ႔အခါ ဒါကဘာႀကီးလဲ ဘာကိုဆိုလိုတာလဲ ဆိုၿပီး နားမလည္ျဖစ္လာပါတယ္ ။ ေက်ာင္းသားေတာ္ေတာ္မ်ားမ်ားလည္းျဖစ္ဖူးမယ္ထင္ပါတယ္ ။ ဒါေၾကာင္႔ ဒီလို သံုးယံုတင္မဘူး ။ ေနာက္ထပ္ ဒီလိုပံုစံပါ သံုးနိုင္တယ္ဆိုတာကို တစ္ခါတည္းသိသြားေစခ်င္လို႔ပါ ။
#include <iostream>
using namespace std;
int main()
{
int x;
for(x=0; x != 123; ) //without increasement
{
cout << "Enter a number: ";
cin >> x;
}
return 0;
}
ဒီဥပမာမွာကေတာ႔ for loop ေပမဲ႔ while loop နဲ ႔သြားၿပီးဆင္တူသြားပါတယ္ ။
// ေနာက္ပံုစံတစ္မ်ိဳး
#include <iostream>
using namespace std;
int main()
{
int x=0;
for( ; x <= 123; )
{
cout <<x<< " ";
x++;
}
cout<<endl;
return 0;
}
ဒီ ဥပမာ ပံုစံေလးကေတာ႔ intilization ေရာ increasement ပါ မပါပဲ for loop ေရးတဲ႔ပံုစံေလး ပါ ။ အေပၚက int x=0; ကို အစမွတ္အျဖစ္ယူလိုက္ၿပီး ေအာက္ က statement မွာေရးထားတဲ႔ x++ ကို increasement အျဖစ္ယူသြားတာပါ ။
Empty for loop statement
ဒါကေတာ႔ for loop မွာ intilization ေရာ condition ေရာ iteration ေရာ တစ္ခုမွ ေရးမထားပဲ ဒီတုိင္းေရးတဲ႔ပံုစံပါ ။ သူ႔အလုပ္လုပ္တာကေတာ႔ infinity loop ပါ အဆံုးမွတ္မရွိပါဘူး ဘယ္ေတာ႔မွရပ္မွာမဟုတ္ပါဘူး ။ ေအာက္ကကုဒ္ေလးေတြကို run ၾကည့္ပါ secreen မွ 1 ဆိုတဲ႔ဟာေတြ အဆံုးမရွိေျပးေနတာ ေတြ႔ပါလိမ္႔မယ္ ။
#include <iostream>
using namespace std;
int main()
{
for( ; ; )
cout << " 1 ";
cout<<endl;
return 0;
}
//ေနာက္ပံုစံတစ္မ်ိဳး
#include <iostream>
int main()
{
int counter=0;
int max = 3;
for (;;) //infinity for loop
{
if (counter < max)
{
std::cout << "Hello! all my friends\n";
counter++; // increment
}
else
break;
}
return 0;
}
ဒီ တစ္ပုဒ္ကေတာ႔ အခု န က infinity for loop ကိုပဲ ကိုလိုခ်င္တဲ႔ပြိဳင္႔ေလးေရာက္ရင္ ရပ္သြားေအာင္ေရးသြားတဲ႔ပံုစံ ပါ ။ for (;;) { } က အဆံုးမရွိပတ္ေပမဲ႔ သူ႔ထဲမွာပါတဲ႔ statement မွာ
int counter=0;
int max = 3;
if (counter < max)
{
}
else
break;
စတဲ႔ control ေလးေတြသံုးၿပီးေတာ႔ အဆံုးသတ္ခိုင္းလိုက္တာပါ ။ အေပၚ က တစ္ပုဒ္နဲ႔ အခုတစ္ပုဒ္ကိုႏွိုဳင္းယွဥ္ၾကည့္ပါ သေဘာေပါက္ပါလိမ္႔မယ္ ။ ဒီ programေလးမွာ operator break; ကိုသံုးထားပါတယ္ ။ သူ႔အေၾကာငး္ကိုေတာ႔ ေနာက္မွာဆက္ေဆြးေႏြးပါ႔မယ္ ။
For Loop without body or Statement
အေပၚမွာ intilization , condition နဲ႔ iteration မပါတာေတြကိုဥပမာ ေလးေတြျပခဲ႔ပါတယ္ အခု for loop မွာ statement မပါတဲ႔ပံုစံ ဥပမေလးၾကည့္ၾကည့္ပါဦး ။
#include <iostream>
using namespace std;
int main()
{
int i;
int sum = 0;
// sum the numbers from 1 through 10
for(i=1; i <= 10; sum += i++) ;
cout << "Sum is " << sum;
return 0;
}
စာဖတ္သူ စိတ္ထဲမွာcout << "Sum is " << sum; က for ရဲ့ statement မဟုတ္ဘူးလားလို႔ေမးခ်င္ေကာင္းေမးခ်င္ေနပါလိမ္႔မယ္ ။ မဟုတ္ပါဘူးခင္ဗ်ာ run ၾကည့္လိုက္ပါ ။ သူက for ရဲ့ statement သာဆိုရင္ ၁၀ secreen မွာ Sum is ဘယ္ေလာက္ဆိုၿပီး ၁၀ ခါျပမွာပါ ။ အခု ၁ ခါပဲျပပါလိမ္႔မယ္ ။ sum += i++ ေလးရဲ့သေဘာတရားကိုေတာ႔ operators ခန္းမွာတုန္းက operator ေတြအေၾကာင္းေဆြးေႏြးခဲ႔႔တာကိုနားလည္ခဲ႔တယ္ဆိုရင္ သေဘာေပါက္မယ္လို႔ ယူဆပါတယ္ ။ sum=sum+i ; i=i+1; ဆိုတဲ႔ ၂ ေၾကာင္းကို ေပါင္းေရးလိုက္တာပါ ။
Use multiple statements in for loops (or) Using comma Operator in For Loops
ဒါကေတာ႔ For loops တစ္ခုတည္းမွာ ၂ မ်ိဳးပတ္နိုင္ေအာင္ေရးတဲ႔နည္း ပါ ။ တစ္မ်ိဳးကို i လို႔သတ္မွတ္ၿပီး သြားတဲ႔ အခါ Increasement နဲ႔သြားခိုင္းပါတယ္ ။ ေနာက္တစ္မ်ိဳးကိုေတာ႔ j လို႔ သတ္မွတ္ထားၿပီး သြားတဲ႔ အခါမွာ decreasement iteration နဲ႔ သြားတဲ႔ သြားခိုင္းထားတာပါ ။ အဲလို ၂ မ်ိဳးကိုတစ္ၿပိဳင္တည္းေရးဖို႔အတြက္ comma (,) ေအာ္ပေရတာကိုသံုးထားပါတယ္ ။ example ေလးကို Run ၿပီးေလ႔လာၾကည့္ပါ ။
#include <iostream>
int main()
{
for (int i=0, j=2; i<3; i++, j--)
std::cout << "i: " << i << "\t j: " << j << std::endl;
return 0;
}
Use nested for loops
ကဲဗ်ာ … စာဖတ္ရတဲ႔သူလည္းေတာ္ေတာ္ပ်င္းေရာေပါ႔ ဒါကေတာ႔ For loop ရဲ့ ေနာက္ဆံုး example ပါ ။ for loop ထဲမွာေနာက္ထပ္ for loop ေတြထပ္ၿပီးသံုးတဲ႔ nested for loop ပံုစံပါ ။ အခုဥပမာေလးက ေတာ႔ ၂ ကေန ၅၀ အတြင္းမွာရွိတဲ႔ ဂဏန္းေတြရဲ့ factors ေတြကိုရွာေပးမဲ႔ Program ေလးပါ ။ ေလ႔လာၾကည့္ပါ ..။
#include <iostream>
using namespace std;
int main() {
for(int i=2; i <= 50; i++)
{
cout << "Factors of " << i << ": ";
for(int j = 2; j < i; j++)
if((i%j) == 0) cout << j << " ";
cout << "\n";
}
return 0;
}
ပထမ for loop အလုပ္လုပ္ၿပီး factors of <<I လို႔ေရးထားတဲ႔အတြက္ I တန္ဖိုး ၂ျဖစ္တဲ႔အခ်ိန္ မွာ factors of 2 : လို႔ စက္ခရင္မွစျပပါမယ္ ၿပီးေတာ႔ ေနာက္ကိုဆင္းသြားၿပီး for loop တစ္ခုထဲထပ္ဝင္ပါတယ္ j တန္ဖိုးကိုလည္း ၂ ကေနစထားတယ္ ။ ၿပီးေတာ႔ condition မွာ j က I တန္ဖိုးထက္ငယ္သလားၾကည့္ပါတယ္ ။ ငယ္တယ္ဆိုရင္ ေအာက္က statement ကိုဆက္လုပ္မွာပါ ။ I =2 ,j=2 ျဖစ္ေနတဲ႔အတြက္ condition နဲ႔မညီပါဘူး ဒါေၾကာင္႔ ဒုတိယ for loop ထဲက statement ကို မလုပ္ပါဘူး…ပထမ for ရဲ့ iteration ကိုျပန္သြားၿပီး ေနာက္တစ္ပါတ္ ထပ္ပါတ္ပါလိမ္႔မယ္ ။
ေနာက္တစ္ႀကိမ္ထပ္စစ္လို႔ ဒုတိယ for loop မွာ condition မွန္ၿပီဆိုတာနဲ႔ statement ျဖစ္တဲ႔ if((i%j) == 0) cout << j << " "; ကိုအလုပ္လုပ္ပါလိမ္႔မယ္ ။ ဒီ statement ကေတာ႔ I ကို j နဲ႔စားမယ္ဆိုရင္ အၾကြင္း သုည ရမလားဆိုတာစစ္တာပါ ရမယ္ဆိုရင္ေတာ႔ j ကိုထုတ္ေပးမွာျဖစ္ၿပီး မရဘူးဆိုရင္ေတာ႔ထုတ္မေပးပါဘူး ။ အဲလိုနဲ႔ ပတ္သြားလိုက္တာ အႀကိမ္ ၅၀ တိုင္ေအာင္ပါပဲ ။
ဒီမွာတစ္ခ်က္ သိရမွာ က အေပၚက i loop တစ္ပါတ္ ပါတ္တိုင္းမွာ j loop ကတစ္ပါတ္ပဲပတ္တာမဟုတ္ပါဘူ း ။ သူ႔တန္ဖိုး ၂ ကေနစၿပီး j<i မွန္ေနသမွ် သူကပတ္မွာပါ သူလုပ္ေဆာင္ခ်က္ၿပီးမွ အေပၚ မွာရွိတဲ႔ i loop က တန္ဖိုးတစ္ခုထပ္တိုးၿပီးေနာက္တစ္ပါတ္ပါတ္တာပါ ။
အခု Program ကိ ု Run ၾကည့္ရင္သိမွာပါ ဥပမာ factor of 8 is ဆိုတဲ႔ေနရာကိုတစ္ခ်က္ၾကည့္ၾကည့္ပါ ။ 2 ရယ္ 4 ရယ္ ဆိုၿပီး ျပေနတာေတြ႔မွာပါ ။
ဘာေၾကာင္႔လဲဆိုေတာ႔ j loop ထဲမွာ i တန္ဖိုး ၈ ကို 2 နဲ႔စၿပီး စားလိုက္ တာ 7 နဲ႔အထိတိုင္ေအာင္စားပါတယ္ ။ အဲဒါဆိုေတာ႔ I loop က ၈ ဆိုတဲ႔တန္ဖိုး တစ္ခုနဲ႔ တစ္ပါတ္ ပတ္ တဲ႔အခ်ိန္မွာ j loop က ၆ ႀကိမ္ပတ္တာေပါ႔ ။ ဒါေပမဲ႔ ၈ ကိုစားလို႔ျပတ္တာက ၂ နဲ႔ ၄ ပဲျပတ္တာဆိုေတာ႔ 2 ရယ္ 4 ရယ္ပဲျပေပးတာပါ ။
Result
အမွားပါရင္လည္းေထာက္ျပေဝဖန္ေပးၾကပါ ။ လိုေနတာရွိရင္လည္း ျဖည့္စြက္ေပးၾကပါလို႔ ေမတၱာရပ္ခံပါတယ္ ။ ကဲ …နားၾကဦးစို႔ဗ်ာ …
Sunday, July 11, 2010
ျဖည့္စြက္ေဆြးေႏြးခ်က္
ကိုစစ္ေသြးေရ
ကၽြန္ေတာ္ လမ္းၾကံဳတံုး တခု၀င္ေရးအံုးမယ္ဗ်ာ့ ေဆြးေႏြးခ်က္(၆) နဲ ့ ေဆြးေႏြးခ်က္(၇) မွာ if ...else နဲ ့ switch statement ကိုရွင္းျပသြားတာ အေတာ္ေလးျပည့္စံုပါတယ္။ ကၽြန္ေတာ္ အခုေျပာျပမွာက ဘယ္လိုအခ်ိန္မ်ိဳးမွာ if..else သံုးသင့္ျပီး ဘယ္လိုအခ်ိန္မ်ိဳးမွာ switch statement သံုးမလဲဆိုတာပါ။
လြယ္လြယ္ေျပာရရင္ စစ္ေဆးရမဲ့ condition ၃ ခု သို ့ ထို ့ထက္ပုိလာရင္ switch statement ကိုအသံုးျပဳသင့္ပါတယ္။ ကြန္ျပဴတာ စနစ္ရဲ ့ စစ္ေဆးမွဳ ပိုျမန္ေအာင္ switch statement ကိုသံုးသင့္တာပါ။ ဥပမာေျပာရရင္ switch ရဲ့ အလုပ္လုပ္ပံုကိုက input value ေပၚမူတည္ျပီး ေနာက္တဆင့္ကို တိုက္ရိုက္သြားပါတယ္။ ေနာက္ break ပါတဲ့ အတြက္ ေနာက္တခုကို ထပ္စစ္ေဆးမေနေတာ့ပါဘူး။
if မွာကေတာ့ else if ရွိေနသေရြ ့ condition မမွန္ေသးသေရြ ့ ထပ္မံ စစ္ေဆးမွဳ ျပဳလုပ္ေနမွာ ျဖစ္ျပီး တကယ္လို ့ condition မွန္ကန္မွဳဟာ ေနာက္ဆံုးအဆင့္ if မွာမွ ရွိမယ္ဆိုရင္ စစ္ေဆးမွဳဟာ အခ်ိန္အေတာ္ ယူမွာျဖစ္ပါတယ္
လြယ္ကူရိုးရွင္းတဲ့ ပရိုဂရမ္ေတြ အတြက္ မသိသာေပမဲ့ ရွဳပ္ေထြးလွတဲ့ ပရုိဂရမ္ေတြမွာ Optimization ဟာအလြန္အေရးပါလာတဲ့ အတြက္ သင့္ေတာ္သလို အသံုးျပဳႏိုင္ရန္ တင္ျပလိုက္ပါတယ္
ဘုန္းသိဂၤါ
Saturday, July 10, 2010
ေဆြးေႏြးခ်က္ (၇)
switch Statement
switch ဆိုရင္ေတာ႔ အလြယ္ေျပာရရင္ ခလုတ္ေလးေတြကိုသာေျပးျမင္ၾကည့္လိုက္ပါ ။ ဘာလို႔လဲဆိုတာ႔ ဒီခလုတ္ေလးကိုႏွိပ္ရင္ေတာ႔ ဘာလုပ္မယ္ ဘာျဖစ္မယ္ ၊တျခားတစ္ခုႏွိပ္ရင္ေတာ႔ ဘာလုပ္မယ္ဘာျဖစ္မယ္စသျဖင္႔ ခလုတ္ေတြအမ်ားႀကိးအတြက္ေရးခ်င္တဲ႔အခါမ်ိဳးေတြမွာ switch ကိုသံုးၿပီးေရးပါတယ္ (ကၽြန္ေတာ္နားလည္သလိုေရးလိုက္တာပါ … ) ။ switch က အရင္ကေျပာခဲ႔တဲ႔ if ,else if,else ပံုစံနဲ႔သေဘာတရားခ်င္းအတူတူပဲျဖစ္ပါတယ္ ။ ႔ if ,else if,else ကိုသေဘာေပါက္တယ္ဆိုရင္ switch ကိုနားလည္ဖို႔ရာလြယ္ကူပါတယ္ ။ ဒါေပမဲ႔ သူမွာနည္းနည္းထူးျခားေနတာေလး က break ; ေအာ္ပေရတာေလး သံုးထားတာပါပဲ ။ break ေအာ္ပေရတာအေၾကာင္းကိုေတာ႔ ေနာက္ပိုင္းမွာဆက္ဖတ္ေပါ႔ဗ်ာ ။ အခုေတာ႔ မ်က္စိထဲမွာ ထင္သာျမင္သာရွိသြားေအာင္ ဥပမာေလးနဲ႔ စလိုက္ရေအာင္
Example For Switch
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "Enter a number from 1 to 3: ";
cin >> num;
switch(num) {
case 1:
cout << "Your Number is One.\n";
break;
case 2:
cout << "Your Number is Two.\n";
break;
case 3:
cout << "Your Number is Three.\n";
break;
default:
cout << "You must enter either 1, 2, or 3.\n";
}
return 0;
}
ရွင္းလင္းခ်က္
အေပၚကကုဒ္ေလးေတြကိုတစ္ခ်က္ၾကည့္ၾကည့္ပါ ။ ပထမ main() ဖန္ရွင္ထဲမွာ cout << "Enter a number from 1 to 3: "; လို႔ေရးထားတဲ႔အတြက္ secreen မွာ Enter a number from 1 to 3: လို႔ျပေနမွာပါ ။ program အသံုးျပဳသူ က ၁ ကေန ၃ ထိဂဏန္းေတြကိုရိုက္ေပးရမွာျဖစ္ပါတယ္ ။ အဲလို user ကေန ရိုက္ထည့္လိုက္ၿပီဆိုရင္
၁ ။ cin>>num ; ဆိုတဲ႔အတြက္ user ထည့္လိုက္တဲ႔တန္ဖိုးကို variable num ထဲထည့္လိုက္ပါတယ္။
၂ ။ switch(num) အခုနက value ထည့္ထားတဲ႔ variable num ကို switch နဲ႔ စစ္လုိက္ပါတယ္ ။ ၁ လား ။ ၂ လား ။ ၃ လား ။ ဒါမွမဟုတ္ တျခား တစ္ခုခုလားေပါ႔ ။
၃ ။ အေပၚမွာကတည္း ၁ ကေန ၃ ထိပဲရိုက္ထည့္ပါလို႔ ေျပာထားတဲ႔အတြက္ ၁ ကေန ၃ အထိအတြက္ ေအာက္မွာ
case 1: cout << "Your Number is One.\n"; စသည္ျဖင္႔ႀကိဳတင္ေရးေပးထားပါတယ္ ။ ဟုတ္ပီ ..တကယ္လို႔ user က ၁ လို႔ရိုက္ထည့္ေပးလိုက္တယ္ဆိုရင္ switch နဲ႔စစ္တ႔ဲအခ်ိန္မွာ ၁ ျဖစ္သြားတာေၾကာင္႔ case 1 : ကိုပဲဝင္သြားပါတယ္ ။ ၿပီးရင္ case 1: မွာရွိသမွ် လုပ္ေဆာင္ရမဲ႔ဟာတြအားလံုးကိုလုပ္ေဆာင္ပါတယ္ ။ ၿပီးရင္ breal; အကူအညီနဲ႔ က်န္တဲ႔ case :1 ,2 ,default ကိုေက်ာ္သြားၿပီး
program အဆံုးကိုေရာက္သြားပါတယ္ ။
၄ ။ သူထုတ္ရမဲ႔အေျဖေတြဘာေတြ ကို secreen မွာထုတ္ေပးၿပီး return ျပန္ုလိုက္ပါတယ္ ။
ေျပာဖို႔က်န္ေသးတာကဘာလဲဆိုေတာ႔
default:
cout << "You must enter either 1, 2, or 3.\n"; ဆိုတဲ႔အပိုင္း ပါ ။ ဒီေကာင္က case ေတြနဲ႔တပ္ၿပီးေရးထားတဲ႔ case 1 ,case 2 : , case 3 : စတာေတြမွာအပ က်န္တာေတြထဲက တစ္ခုခုကိုမ်ား user ကရိုက္ထည့္မယ္ဆိုရင္ default : နဲ႔အလုပ္လုပ္ မယ္ဆိုတဲ႔သေဘာပါ ။
switch statement ရဲ့လုပ္ေဆာင္ခ်က္ကေတာ႔ အခုေျပာခဲ႔တဲ႔အတိုင္းပါပဲ ။ ေအာက္က Result ေလးကိုတစ္ခ်က္ၾကည့္ၾကည္ပါ ။
Result
switch Statement using character
အခုနက ဥပမာမွာ integer ကို သံုးၿပီး switch အလုပ္လုပ္ပံုကိုေျပာျပခဲ႔တာပါ ။ အခုပိုၿပိးနားလည္သြားေအာင္ character သံုးထားတဲ႔ switch ဥပမာေလးကိုၾကည့္ၾကည့္ပါဦး
#include <iostream>
using namespace std;
int main() {
char choice;
cout << "What you understand:\n";
cout << " a. if\n";
cout << " b. switch\n";
cout << " c. operator\n";
cout << "Choose one: ";
cin >> choice;
cout << "\n";
switch(choice) {
case 'a':
cout << "The if? you should study to understand everything\n\n";
break;
case 'b':
cout << "The switch? you should study to understand everything\n\n";
break;
case 'c':
cout << "The Operators? you should study to understand everything\n\n";
break;
default:
cout << "Selection not found.\n";
}
return 0;
}
ဒီဥပမာကလည္းအေပၚ က ဥပမာနဲ႔ သေဘာတရားတူတူပါပဲ အလုပ္လုပ္ပံုလည္းတူပါတယ္ ။ ဒါေပမဲ႔ ကြဲသြားတာ က အရင္ဥပမာတုန္း က int နဲ႔ ဖမ္းတယ္ ။ အခုက char choice နဲ႔ ယူဆာရို္က္တဲ႔တန္ဖိုးကိုဖမ္းတယ္ ။ character ျဖစ္လို႔ case ‘a’ : ဆိုၿပီးေရးတယ္ ။ က်န္တာကေတာ႔အတူတူပါပဲ ၾကည့္ၾကည့္လိုက္ရံုနဲ႔နားလည္မယ္လို႔ထင္ပါတယ္ ။
switch without break statements.
ကၽြန္ေတာ္အေပၚမွာတုန္းက ေျပာခဲ႔တယ္ switch မွာ if ..else နဲ႔မတူတာ က break; ေလးသံုးထားတယ္လို႔ ။ အခု switch statement ကို break မပါပဲေရးျပပါ႔မယ္ ။ အဲဒါဆိုရင္ switch မွာဘာေၾကာင္႔ break သံုးတယ္ ။ if …else မွာ break မသံုးတာနဲ႔ ဘယ္ေနရာေတြမွာကြာသြားလဲဆိုတာ ကို ေသခ်ာၾကည့္ၾကည့္ပါ ။
#include <iostream>
using namespace std;
int main()
{
int i;
for(i=0; i<5; i++) {
switch(i) {
case 0: cout << "less than 1\n";
case 1: cout << "less than 2\n";
case 2: cout << "less than 3\n";
case 3: cout << "less than 4\n";
case 4: cout << "less than 5\n";
}
cout << '\n';
}
return 0;
}
Result
ဒီ Pogram မွာ ကၽြန္ေတာ္ for loop ပါသံုးထားပါတယ္ ။ loop ေတြအေၾကာင္းကိုေတာ႔ ေနာက္မွာဆက္ေရးပါ႔မယ္ ။ တကယ္လို႔ swith မွာ break သာမသံုးဘူးဆိုရင္ switch ထဲမွာ ရွိတဲ႔ case တန္ဖိုးရဲ့ case ေတြအားလံုးလုပ္တယ္ဆိုတာကိုသိေစခ်င္လို႔ပါ ။ ပထမ switch(0) ျဖစ္တဲ႔အခ်ိန္မွာ case 0 : ေအာက္မွာရွိတဲ႔ case 1 : ,2,3,4 အားလံုးကုိအလုပ္လုပ္သြားတာပါ ။ ေနာက္ခါ switch(1) ျဖစ္တဲ႔အခ်ိန္မွာ ေတာ႔ case 2: 3,4,5 ကိုလုပ္သြားတာပါ ။ အေျဖေတြကုိၾကည့္ရင္သိသာမွာပါ ။
switch case falling through
ကိုင္းဗ်ာ ….အခုေနာက္တစ္မ်ိဳး switch Statement ကိုေနာက္ပံုစံတစ္မ်ဳိးနဲ႔ေရးထားတာပါ ။ ဘာလို႔ ကၽြန္ေတာ္ ပံုစံေတြအမ်ားႀကီးေရးၿပီး ပို႔စ္ကိုအရွည္ႀကီးေရးေပးေနလည္းဆိုေတာ႔ ကၽြန္ေတာ္တို႔ က beginner ေတြပါ ။ ေက်ာငး္သူေက်ာင္းသားေတြဆိုေတာ႔ ဆရာက switch() ကဒီလိုရွိတယ္ ဆိုၿပီးတစ္မ်ိဳးျပရင္ တစ္မ်ိဳးပဲမွတ္လိုက္တာပါ တစ္ခါတစ္ခါ သူမ်ားေရးထားတဲ႔ကုဒ္ေလးေတြေလွ်ာက္ၾကည့္ၾကည့္တဲ႔အခါ ကိုမျမင္ဖူးတဲ႔ပံုစံေတြနဲ႔ေရးထားတဲ႔အခါ နားမလည္နိုင္တာေတြျဖစ္လာတက္ပါတယ္ ။ ဒါေၾကာင္႔ဒီလိုမ်ိဳးတင္မဟုတ္ဘူးဒီလိုေတြပါရွိတယ္ဆိုတာ ကို ျမင္ဖူးေအာင္ ဥပမာ မ်ားမ်ား ေတြေရးျပတာပါ ။ အဲဒါဆိုေတာ႔ ေနာက္ကိုယ္တိုင္ေလ႔လာတဲ႔အခါလြယ္ကူသြားတာေပါ႔ ဗ်ာ ။ ကဲ႔ ၾကည့္ရေအာင္ဗ်ာ ။
#include <iostream>
using namespace std;
int main()
{
int i;
for(i=0; i<5; i++) {
switch(i) {
case 1:
case 2:
case 3:
cout << "i is less than 4";
break;
case 4:
cout << "i is 4";
break;
}
cout << '\n';
}
return 0;
}
ရွင္းလင္းခ်က္
ဒီ Program မွာ case 3: နဲ႔ case 4 : မွာပဲ expression ေတြေရးထားတာပါ ။ ေနာက္ၿပီး for loop ကိုသံုးထားပါတယ္ ။ ပထမ looping ၃ ပတ္မွာ case 1: case 2: ေတြမွာ ဘာstatement မွေရးမထားတဲ႔အတြက္ case 3 :ေနရာေတြ ပဲလာလာလုပ္ပါတယ္ ။ ၿပိးေတာ႔ case 3 : မွာ break; သံုးထားတဲ႔အတြက္ case : 4 ကိုဆက္မဆင္းပဲ ေနာက္ထပ္ Looping ထပ္ပတ္လိုက္ပါတယ္ ။ ေနာက္ i တန္ဖိုး ၄ ျဖစ္တဲ႔အခ်ိန္က်မွပဲ ။ case 4: ကိုတန္းဝင္ၿပီး အလုပ္လုပ္သြားတာပါ ။ result ေလးနဲ႔တြဲၾကည့္မယ္ဆိုရင္ပို ၿပီးနားလည္မယ္ထင္ပါတယ္ ။
Result
ကဲဗ်ာ … ဒီေလာက္ဆိုရင္ switch Statement ရဲ့ သံုးတဲ႔ေနရာေတြ ၊ ပံုစံကြဲေတြ ၊သူတုိ႔ရဲ့အလုပ္လုပ္ပံုေတြကို ေတာ္ေတာ္မ်ားမ်ားသေဘာေပါက္လိမ္႔မယ္လို႔ေမွ်ာ္လင္႔ပါတယ္ ။ ကၽြန္ေတာ္ကိုယ္တိုင္လည္း ေဆြးေႏြးတာျဖစ္တဲ႔အတြက္ မွားေကာင္းမွားနိုင္ပါတယ္ ။ လိုေနလို႔ မွားေနလို႔ ေထာက္ျပတာပဲျဖစ္ျဖစ္ ၊ နားမလည္ေသးရင္ပဲျဖစ္ျဖစ္ ဝင္ေရာက္ေဆြးေႏြးၾကပါလို႔ ေျပာပါရေစဗ်ာ …. ။
ေဆြးေႏြးခ်က္ (၆)
If statement
if( Conditional Expression ) Statement ;
if ဆိုတာ ခဲ႔လွ်င္ ေပါ႔ဗ်ာ ။ ဘာျဖစ္ခဲ႔လွ်င္ဘာလုပ္ေပးရမယ္ ။ ဒီဟာျဖစ္ခဲ႔လွ်င္ ေတာ႔ ဒါလုပ္ေပးရမယ္ ။ ဆိုတဲ႔သေဘာအတိုင္းပါပဲ ။ ဒါျဖစ္ခဲ႔လွ်င္ ဆိုတဲ႔ ေနရာမွာ ကိုယ္ ျဖစ္ေစခ်င္တဲ႔ အေျခေနတစ္ခု (Condition) ကိုေဖာ္ျပေပးၿပီး ၊ ဒါလုပ္ရမယ္ဆိုတဲ႔ေနရာမွာေတာ႔ ကိုယ္လုပ္ခိုင္းခ်င္တဲ႔ Statement တစ္ခုကိုေရးသားေပးရမွာပါ ။
if (x == 100)
cout << "x is 100";
ဒီ Code ေလး ကိုပဲ ၾကည့္ၾကည့္ပါ ။ x တန္ဖိုး ဟာ ၁၀၀ နဲ႔ ညီခဲ႔လွ်င္ ဆိုတဲ႔ Conditional Expression ကိုေပးၿပီး ၊ x is 100 ဆိုၿပီးထုတ္ေပးပါ ဆိုတဲ႔ Statement ကိုေရးေပးထားပါတယ္ ။
If statement ရဲ့ မူကြဲေလးေတြကိုေအာက္မွာ ဥပမာေလးေတြနဲ႔ ေရးျပထားပါတယ္ ေသခ်ာနားလည္သြားေအာင္ေလ႔လာၾကည့္ပါဦး ။
Example for simple if statement
#include <iostream>
using namespace std;
int main() {
int a, b, c;
a = 2;
b = 3;
if(a < b)
cout << "a is less than b\n";
if(a == b)
cout << "The two numbers are equal\n";
return 0;
}
ဒီကုဒ္ေလးေတြကေတာ႔ ရိုးရိုး ပါပဲ ။ ပထမ variables ေတြ ရဲ့တန္ဖိုးေတြကို သြင္းေပးထားတယ္ ။ ၿပီးေတာ႔ if statement ကိုသံုးၿပီး a ဟာ b ထက္ငယ္လားစစ္တယ္ ။ ငယ္တယ္ဆိုရင္ ေအာက္က cout << "a is less than b\n"; ကိုလုပ္သြားမယ္ ။ တကယ္လို႔ a နဲ႔ b ကတန္ဖိုးညီရင္ေတာ႔ cout << "The two numbers are equal\n"; ဆိုတဲ႔ statement ကိုလုပ္သြားမွာပဲျဖစ္ပါတယ္ ။ ဒါကို if ၂ ခုသံုးၿပီးေရးထားတာ ပါသူက မွန္တဲ႔ ဟာတစ္ခုပဲလုပ္ပါလိမ္႔မယ္ ။
Example For If Statement With Else
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // magic number
int guess; // user's guess
magic = rand(); // get a random number
cout << "Enter your guess: ";
cin >> guess;
if(guess == magic)
cout << "Right";
else
cout << "...Sorry, you're wrong.";
return 0;
}
ဒီ code ေလးေတြကေတာ႔ ဂဏန္း ကိုမွန္းတဲ႔ဟာေလးပါ ။ပထမ random ေခါက္ၿပီး Variable တစ္လံုးထဲထည့္ထားၿပီး User ကိုမွန္းခိုင္းထားတာပါ ။ မွန္းတဲ႔အခါမွာ ကိုယ္မွန္းတာက မွန္ခ်င္မွန္လိမ္႔မယ္ ။ ဒါမွမဟုတ္မွားခ်င္လည္းမွားသြားနိုင္ပါတယ္ ။ အဲလို အခါမ်ိဳးမွာ မွန္ရင္ေတာ႔ဘာလုပ္ပါ မမွန္ခဲ႔ရင္ေတာ႔ဘာလုပ္ပါ စသျဖင္႔ statement ေပးထားခ်င္တယ္ဆိုရင္ If Statement With Else ကိုသံုးရပါတယ္ ။ အေသးစိတ္ေတာ႔မေျပာေတာ႔ဘူးေနာ္ အခုေျပာထားတာေလးဖတ္ၿပီး Program ေလးကို Run ၾကည့္မယ္ဆိုရင္အဆင္ေျပမယ္ထင္ပါတယ္ ။
Example For if , else if , else
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout<<"Enter 2 number "<<endl;
cin>>a>>b;
if(a>b)
cout<<"1st Number is greater than 2nd "<<endl;
else if (a<b)
cout<<"2nd Number is greater than 1st "<<endl;
else
cout<<"The two number are equal "<<endl;
return 0;
}
အေပၚက codes ေလးေတြကေတာ႔ ဂဏန္း ၂ ခုရိုက္ထည့္ၿပီး အဲဒီ ဂဏန္း ၂ ခုကိုႏွိဳင္းယွဥ္ေပးဖို႔ေရးထားတာ ပါ ။ ႏွိဳင္းယွဥ္တဲ႔အခါမွာ ႀကီးတာရွိမယ္ ၊ ငယ္တာရွိမယ္ ၊ ၂ ခုလံုး က ညီေနတာေတြရွိမယ္ အဲလို အေျခေနေတြ ၃ ခုျဖစ္လာနိုင္တဲ႔အခါမွာ if , if else , else ပံုစံကိုသံုး ပါတယ္ ။ ဒီထက္ပိုတဲ႔ အေျခေနေတြျဖစ္လာမယ္ဆိုရင္လည္း if else ကိုေနာက္ထပ္ထက္တိုးၿပီး nestled if else ပံုစံမ်ိဳးသံုးနိုင္ပါတယ္ ။
Example For block of code in if statement
#include <iostream>
using namespace std;
int main() {
double result, n, d;
cout << "Enter value: ";
cin >> n;
cout << "Enter divisor: ";
cin >> d;
if(d != 0)
{
cout << "d does not equal zero so division is OK" << "\n";
result = n / d;
cout << n << " / " << d << " is " << result;
}
return 0;
}
ဒီ code ေလးကေတာ႔ if statement ထဲမွာ block ေလးေတြဖြဲၿပီးေရးတဲ႔ နမူနာပံုစံေလးပါ ။ block ေလးေတြဖြဲ႔ဖို႔ဆိုရင္ေတာ႔ {……..} brace ကိုသံုးရပါတယ္ ။ ဘာေၾကာင္႔ block ဖြဲ႔ၿပီးေရးရလဲဆိုေတာ႔ အရင္ ေပးတဲ႔ဥပမာေတြမွာလည္းေတြ႔ၿပီးျဖစ္မွာပါ if (Conditional Expression) ရဲ့ေအာက္မွာ block မဖြဲ႔ဘူး brace မသံုးထားဘူးဆိုရင္ statement တစ္ေၾကာင္းကိုပဲသူက အလုပ္လုပ္မွာပါ ။ Statementsေတြတစ္ခုထက္ပိုၿပီး if (Conditional Expression) ေအာက္မွာလုပ္ေစခ်င္တယ္ဆိုရင္ block ဖြဲ႔ၿပီး ေရတဲ႔ပံုစံကိုသံုးရပါလိမ္႔မယ္။
အေပၚကဥပမာမွာ {………} ေတြျဖဳတ္ၿပီး ေအာက္ကတိုင္းေရးခဲ႔မယ္ဆိုရင္ cout << "d does not equal zero so division is OK" << "\n"; ဆိုတဲ႔တစ္ေၾကာင္းပဲ အလုပ္လုပ္ပါလိမ္႔မယ္ ။
if(d != 0)
cout << "d does not equal zero so division is OK" << "\n";
result = n / d;
cout << n << " / " << d << " is " << result;
Example For Nested If Statement
if statement block တစ္ခုအတြင္းမွာ ထပ္ၿပီး if statement block ၊ else block စတဲ႔ if , else if , else ေတြကိုဆင္႔ပြားဆင္႔ပြား သံုးတဲ႔ ပံုစံကို Nested If Statement လို႔ မွတ္ယူနိုင္ပါတယ္ ။ ေအာက္ကဥပမာေလး ကိုေလ႔လာၾကည့္ပါဦး ။
#include <iostream>
int main()
{
int firstNumber =2;
int secondNumber = 3;
if (firstNumber >= secondNumber)
{
if ( (firstNumber,secondNumber) == 0) // evenly divisible?
{
if (firstNumber == secondNumber)
std::cout << "They are the same!\n";
else
std::cout << "They are evenly divisible!\n";
}
else
std::cout << "They are not evenly divisible!\n";
}
else
std::cout << "Hey! The second one is larger!\n";
return 0;
}
Example for Using an int value to control the if
အရင္ေပးခဲ႔တဲ႔ ဥပမာေတြ တုန္းက a==b ေတြ a>b ေတြ စတဲ႔ Operation Expression ေတြကိုသံုးၿပီးေတာ႔ ဥပမာေပးခဲ႔ပါတယ္။ ေနာက္ဆံုးဥပမာေလးတစ္ခုကေတာ႔ integer တန္ဖိုးတစ္ခုကိုသံုးၿပီး If statement ကိုထိန္းခ်ဳပ္ေပးျခင္းပဲျဖစ္ပါတယ္။ ေအာက္ကကုဒ္ေလးကိုၾကည့္ၾကည့္ပါ။
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "Enter numerator: ";
cin >> a;
cout << "Enter denominator: ";
cin >> b;
if(b)
cout << "Result: " << a / b << '\n';
else
cout << "Cannot divide by zero.\n";
return 0;
}
Integer တန္ဖိုး ၂ ခုေတာင္းၿပီးေတာ႔ တစ္ခုကုိတစ္ခုနဲ႔စားတာပါ ။ သခ်ာၤ သေဘာအရာ ပိုင္းေျခ သုညမျဖစ္ရပါဘူး ။ ဒီ program မွာ variable b က စားကိန္းျဖစ္တာေၾကာင္႔ if(b) ဆိုၿပီး Integer ဟုတ္ရဲ့လားစစ္ပါတယ္။ interger ဟုတ္တယ္ သုညမဟုတ္ဘူးဆိုရင္ေတာ႔ Result ထုတ္ေပးမွာျဖစ္ၿပီး ။ user က b တန္ဖိုးကို သုညလို႔ ေပးခဲ႔ရင္ေတာ႔ else stateမွာပါတဲ႔ စားလို႔မရနိုင္ပါဘူးဆိုတာကို ထုတ္ေပးပါလိမ္႔မယ္ ။
ကဲဗ်ာ….. If Statement အေၾကာင္းကိုဒီမွာတင္ပဲနိဂံုးခ်ဳပ္ၾကရေအာင္ဗ်ာ ။ ဒီေလာက္ဆိုရင္ ညီအစ္ကိုသူငယ္ခ်င္းတို႔သေဘာေပါက္မယ္လို႔ထင္ပါတယ္ …။
ေဆြးေႏြးခ်က္ (၅)
Escape Sequences
Escape Sequences keys ေတြကေတာ႔ output ေတြထုတ္ျပတဲ႔အခါမွာ ေနာက္တစ္လိုင္းဆင္းပါ ။ ပံုေလးေတြျပေပးၿပီးအမွတ္သားလုပ္ပါ ။ ဒီေနရာေရာက္ရင္ေတာ႔ tab ခံုေပးပါ စသျဖင္႔ေပါ႔ေလ ကိုယ္လိုတဲ႔ပံုစံေလးေတြျဖစ္ေအာင္ညႊန္ၾကားေပးနုိင္ဖို႔အတြက္သံုးပါတယ္ ။ေအာက္မွာေလ႔လာၾကည့္ပါ ။
Example Program
အေပၚမွာေပးထားတဲ႔ပံုအျပင္ ပရိုဂရမ္ဥပမာေလးပါျပ လိုက္ပါတယ္ ။ အေပၚကပံုေလးနဲ႔ Program code ေလးေတြကိုတြဲၿပီးေလ႔လာမယ္ဆိုရင္ နားလည္လိမ္႔မယ္လို႔ထင္ပါတယ္ ။Output ထုတ္တဲ႔အခါသိသာနိုင္ဖို႔အတြက္ တစ္ခါတည္း ဘာအတြက္ထုတ္တယ္ဆို ေရးေပးထားပါတယ္ ။
#include<iostream>
using namespace std;
void main()
{ cout<<"using (tab)"<<endl;
cout<<" Welcome From \t My Blog "<<endl;
cout<<endl;
cout<<endl;
cout<<"using(newline)"<<endl;
cout<<"How \nare \nyou ?"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Audible bell)"<<endl;
cout<<"How \a are \a you ?"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Formfeed)"<<endl;
cout<<"How \f are \f you ?"<<endl;
cout<<endl;
cout<<endl;
cout<<"using (Double quote )"<<endl;
cout<<"How \"are \"you ?"<<endl;
cout<<endl;
cout<<endl;
cout<<"using (Single quote)"<<endl;
cout<<"How \'are \'you"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Vertical tab)"<<endl;
cout<<"How \v are \v you"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Backslash)"<<endl;
cout<<"How \\ are \\ you"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Octal number (nnn))"<<endl;
cout<<"\3 How are you \6"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Carriage return)"<<endl;
cout<<"How \r are \r you "<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Null character )"<<endl;
cout<<"How \0 are \0 you"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Hexadecimal)"<<endl;
cout<<"How are you \x4e"<<endl;
cout<<endl;
cout<<endl;
cout<<"using(Hexadecimal)"<<endl;
cout<<"How are you \?"<<endl;
cout<<endl;
cout<<endl;
cout<<"using (Backspace)"<<endl;
cout<<"How\b are\byou"<<endl;
}
Result
Code ေလးေတြကို ကိုယ္တုိင္ေရးၿပီးစမ္းၾကည့္ေစခ်င္ပါတယ္ ။ အဲဒါဆိုရင္ ဘယ္လိုအလုပ္လုပ္တယ္ဆိုတာ နားလည္ပါလိမ္႔မယ္ ။