Wednesday, September 5, 2018

C++ Arrays




Hello Guys, ဒီနေ့တော့ C++ program လေးတစ်ပုဒ်ကို ရှင်းပြသွားပါမယ်ဗျာ do you know? ကျောင်းက ဘော်ဒါ တော်တော်များများက codes တွေကို အလွတ်ကျက်နေကြတာတွေ့လို့ ဒီ post လေးရေးဖို့ ဆုံးဖြတ်လိုက်တာပါ ။ ဒီ post က ကျောင်းက ဘော်ဒါတွေအတွက်ဆိုတော့ တစ်ခြားတစ်ယောက်က လာကြည့်ရင် ရူပ်နေလိမ့်မယ်။ဒါကြောင့်ကျော်သွားလိုက်ပါ။ စာမေးပွဲလည်း နီးပြီဆိုတော့ basic လောက် အထောက်ကူရအောင်ထိ ရှင်းပြထားပါတယ် second semester ကစတာကတော့ module 4 ပေါ့နော် ။ အစဦးဆုံး array နဲ့ဆိုင်တဲ့ပုဒ်ကို ရှင်းပြထားပါတယ်။ဒီ program ကို ငါ့ဘာငါ reference လုပ်ထားတာနော် အကုန်လုံးတူချင်မှတူမယ် ။ 😁😁 တော်ပါပြီလေ ကျတော်လို့ပဲ ပြောတော့မယ်။Let's Start.



ဒီ program ကို အစကနေ အဆုံးထိ trace လုပ်ကြည့်မယ်ဆွင်
#include <iostream> ဆိုတာက directive processing တစ်ခုပဲဖြစ်ပါတယ် iostream ဆိုတဲ့ header file ထည့်ဖို့တွက် #include ဆိုတဲ့ directive ကနေ command ပေးတာ ဖြစ်ပါတယ်။ ဘာလို့လဲဆိုတော့ကာ iostream ဆိုတဲ့ standard header file မှာ functions တွေ classessတွေ နဲ့ globel value တွေ ပါနေတာကြောင့်ပေါ့။ angle blacket < > ကတော့ အထဲမှာ ပါတဲ့ header file ကို compiler ကနေ support လုပ်ပေးပါလို့ အမိန့်ပေးတာပေါ့နော်။နောက်တစ်ခု line 2 က using namespace std ဆိုတာကတော့ cout နဲ့ cin ကို ယူသုံးလို့ရအောင်လို့ပေါ့ဗျာ ။
OK နောက်တစ်ကြောင်း ထပ်ကြည့်လိုက်ကြရအောင် 
အဲ့မှာ main() ဆိုတဲ့ function နဲ့ စတယ်ဗျ ဒီကောင်ကတော့ နာမည်နဲ့လိုက်အောင် program တစ်ခုလုံးရဲ့ အသက် function ပါပဲ ။ကျတော်တို့ ရေးချင်တဲ့ program ကို အဲ့ main() function ထဲမှာ ရေးရပါတယ်။အော်မေ့လို့ main() လို့ရေးလည်းရတယ်နော် int main() ဆိုတာကတော့ main() function ကို return ပြန်မယ့်ကောင်က int data type လို့ပြောတာပါ အွန်း ရူပ်သွားပြီလားဗျ နောက်တော့ တဖြည်းဖြည်းနားလည်သွားပါလိမ့်မယ် ကျတော်လည်း begineer အဆင့်တုန်းက ဒီလိုပါပဲဗျာ သင်တန်းကောင်းကောင်းမတက်နိုင်တော့ ကိုယ်တိုုင် self study လုပ်ခဲ့ရတာဗျ ဘာလို့ဆို ကျောင်းက သင်တာတွေကို နားရေမဝခဲ့လို့လေ ။ 
ကဲကဲ အချိန်မရှိဘူး ဆက်လိုက်ကြရအောင် main() ဖွင့်ပြီးဆိုတာနဲ့ curly brace '{}' လေးကိုရေးရပါတယ် ကျတော်တို့ ရေးမယ့် programs က အဲ့ အတွင်းမှာပဲ ရှိနေရပါမယ်။
line 7 က int i,j;ဆိုတာက i နဲ့ j ဆိုတဲ့ identifiers ကို data type က int လို့ပြောတာပါ နောက်မှ data type တွေ identifiers အကြောင်းတွေကို အေးဆေး ရှင်းပြပါ့မယ် ။
line 8 က cout statement က တော့ double quote ("") ထဲကရှိသမျှ letter တွေအကုန် screen မှာ display ပြမှာ ဖြစ်ပါတယ် အဲ့ screen မှာ Enter a number ဆိုပြီး ပေါ်လာမယ် OK. cin statement ကတော့ user က ရိုက်ထည့်လိုက်တဲ့ number ကို j ထဲမှာ ထည့်မှာဖြစ်ပါတယ်။ endl ဆိုတာက \n နဲ့့ တူတူပဲ next line လို့ပြောတာ နောက်စ်ကြောင်းပေါ့နော်။ line 11 က data type ကို unsigned int လို့ declar လုပ်တာက hein_arkar131429 ဆိုတဲ့ identifier က plus only လိုပြောတာပါ signed ဆိုရင် minus ရော plus ရော အကျုံးဝင်မှာဖြစ်ပြီး တန်ဖိုးအနေနဲ့ -32000 ကျော်ကနေ +32000 ကျော်ထိ ဝင်ဆံ့့မှာပါ ။ အဲ့ထက်ကျော်ပြီး number သွားထည့်ရင်တော့ error ပေါ့ဗျာ။



အဲ့မှာ hein_arkar131429 l[j] က array တစ်ခု ပြန်ပြောရရင် unsigned int က data type ၊ hein_arkar131429 က သုဘာသာ သက်သက်ရပ်တည်နေရင် identifier ဒီမှာတော့ array name ဖြစ်သွားပြီ OK. ကျတောတို့ ခနက user ဆီက input တောင်းခဲ့တဲ့ numberကို j ထဲမှာထည့်ခဲ့တယ်နော် ထားပါတော့ user က 4 ဆိုပြီထည့်လိုင်ပြီ ဒါဆိုရင် j တန်ဖိုးက 4 ၊ hein_arkar131429[4] ဆိုပြီးဖြစ်သွားပြီ၊ ဒီမှာမှတ်ထားရမှာက array တွေက အများအားဖြင့် တစ်ခုကနေ သုံးခုထိ ရှိပါတယ် one dimensional array,two dimensional array,multidimensional array စသဖြင့်ပေါ့နော် ။ ဒီမှာတော့ one dimensional array ရှိမယ် OK ၊ 
Line 13 မှာ တစ်ချက် show ကြည့်ရအောင် for looping လာပြီ first semester တုန်းက သင်ခဲ့ရတယ်မလား မညာချင်စမ်းပါနဲ့ကွာ အဲ့လယ် 😁😁 ဒါပေမယ့် နားမလည်ခဲ့ဘူးမလား ထပ်မညာချင်စမ်းပါနဲ့ကွာ စတာပါ အတည်ပါ အော် ကဲကဲ ရှင်းပြီနော် သေချာမှတ် for looping ပတ်တယ်ဆိုတာက process ကို အထပ်ထပ် လုပ်တာပါ တကယ်လို့ for looping သာ မရှိခဲ့ရင် တူညီတဲ့ လုပ်ငန်းတစ်ခုကို အကြိမ်ကြိမ်လုပ်ရမှာပါပဲ ဟုတ်တယ်ဟုတ် မဟုတ်လည်း ဟုတ်လိုက်😁😁 ၊ Ok ကျတော်တို့ i ကို 0 ကနေ စတယ် ။ C++ မှာ '=' က assignment ပါ၊ '==' ကမှ equal to နော ်မှားမှာ ဆိုးလို့ ၊ i က j ထက် ငယ် သရွေ့ i ကို 1 တိုးပြီး ဆက်တိုက် looping ပတ်မယ် OK. ပထမ looping

 ပတ်တော့ i က 0 ဆိုတော့  hein_arkar131429 [0] = 0
ဖြစ်သွားမယ် နောက်တစ်ခါ loop ထပ်ပတ်မယ် i++ နဲ့ i=i+1 နဲ့ တူတယ် အဲ့တော့ နဂိုရှိပြီးသား i တန်ဖိုး 0 ကို 1 ပေါင်းတော့ i က 1 ဖြစ်သွားပြီ condition ကိုကြည့်လိုက်တော့ i က 10 က ငယ်သေးတယ် ဆက်လုပ်မယ်အဲ့တော့ hein_arkar131429[1] = 1 ဖြစ်သွားမယ် အဲ့လိုပဲ i ကို 1 ပေါင်းသွားမယ် 10 ထိငယ်သရွေ့ ဆက်လုပ်မယ် 10 ထက်ကြီးသွားရင်တော့ looping က ထွက်သွားပြီး နောက်တစ်ခုကို ဆက်အလုပ်လုပ်မယ် အဲ့မှာ std::cout ကိုတွေ့တယ်နော် cout နဲ့ တူတူပါပဲ အဲ့မှာ \t ဆိုတာ tab ခုန်မယ်လို့ပြောတာပါ space ခြားမယ်ပေါ့ ရိုးရိုးခြားသွားလည်း no problem နောက်တစ်ကြောင်းဆင်းပြီး အလုပ်လုပ်ဦးမယ် တွေ့ပြန်ပြီ for looping အပေါ်ကရှင်းပြခဲ့တဲ့ အတိုင်းပါပဲ ကိုယ့်ပါသာကိုယ်သာ trace လိုက်ကြတော့ ရိုက်ရတာ လက်ညောင်းတယ် triple အဲ့လယ် 😁😁 ဒီမှာ တစ်ခုသတိထားရမှာက for looping လုပ်မယ့် process က တစ်ခုတည်းဆို curly brace ထည့်စရာမလိုဘူး တစ်ခုထပ်ပိုရင် ထည့်ပေါ့။ 
အားလုံးမှန်မှန်ကန်ကန်ရေးနိုင်ရင် ouput က အောက်ကအတိုင်းပဲပေါ့။

 အားလုံးအဆင်ပြေပါစေ တခြား CS ဘော်ဘော် တွေဆီ ပြန်လည်မျှဝေလိုက်ပါဦးနော် ။ 

#Hein Arkar
-Wtobe Shining Star

No comments:

Post a Comment

C++ Function များ

Zawgyi C++ မွာ fumction ေတြကို အသံုးျပဳပံု ===========+==========+=========== က်ေတာ္တို႔ computer ကို လုပ္ေစခ်င္တ့ဲ processes ေတြ...