အခန်း ၁ ။ Programming ဆိုတာ

Programming ဆိုတာကတော့ process တွေ ဖြစ်ပြီးတော့ အလုပ်ပြီးမြောက်အောင် computer ကို ခိုင်းစေခြင်း ဖြစ်ပါတယ်။ ကျွန်တော်တို့ အသုံးပြုနေတဲ့ OS , Microsoft Word , Viber Messenger စတာတွေက programming ကို အသုံးပြုပြီးတော့ ရေးသားထားခြင်း ဖြစ်ပါတယ်။

ဒီစာအုပ်မှာတော့ Python 3 ကို အသုံးပြုပြီး သင်ကြားပါမယ်။ Python 3 ကို အဓိက သင်ရတဲ့ ရည်ရွယ်ချက်ကတော့ ရိုးရှင်း လွယ်ကူသည့်အတွက် programming မသိတဲ့ သူတွေ အနေနဲ့ လွယ်ကူစွာ လေ့လာနိုင်ပါတယ်။ ဒီစာအုပ်မှာ python 3 ကို run time ထည့်ထားပေးတဲ့ အတွက် python 3 ကို စက်ထဲမှာ မထည့်ထားပဲ စမ်းလို့ ရပါတယ်။

အခု Chapter မှာတော့ အခြေခံ အဆင့်တွေ ရေးသား သွားမှာ ဖြစ်တဲ့ အတွက် နားလည် သဘောပေါက်ဖို့ အရမ်း အရေးကြီးပါတယ်။ နားမလည်တာတွေကို အဆင်မပြေသည်များကို Telegram Group ( https://t.me/programmingbasicbook ) သို့မဟုတ် github issues ( https://github.com/saturngod/programming_basic_qa/issues ) မှာ မေးမြန်းနိုင်ပါသည်။

Programming ဆိုတာ

Programming ဆိုတာ ဘာလဲ ဆိုတဲ့ မေးခွန်းက စတင်လေ့လာမယ့် သူတွေ အတွက် မေးနေကျ မေးခွန်းပါပဲ။

ကျွန်တော်တို့ Computer မသုံးရင်တောင် Phone တွေကို နေ့စဉ် အသုံးပြုဖူးမှာပါ။ ကျွန်တော်တို့ phone တွေ အသုံးပြုရင် App တွေကိုလည်း အသုံးပြုမိကြမှာပါ။ App တွေက ကျွန်တော်တို့ အတွက် မျက်လှည့် ပစ္စည်းလိုပါပဲ။ လိုချင်တာတွေကို ထွက်လာဖို့ screen ပေါ်မှာ လက်နဲ့ နှိပ်လိုက်ရုံပါပဲ။

Programmer တွေ က App တွေ Program တွေကို ရေးစွဲထားပြီးတော့ အသုံးပြုတဲ့ အခါမှာ လွယ်ကူအောင် ဖန်တီးထားကြပါတယ်။ Programmer တွေဟာ programming language တစ်ခုခု ကို အသုံးပြုပြီး app တွေကို ဖန်တီးကြပါတယ်။ Programming language ကို အသုံးပြုပြီး program တွေကို ရေးသားပြီး နောက်ဆုံး App အနေနဲ့ ထွက်လာတာပါ။

Game တွေဟာလည်း programming language နဲ့ ရေးသားထေားပါတယ်။ ဒါကြောင့် App တွေ Game တွေကို ဖန်တီးချင်တယ်ဆိုရင် Programming ကို သိဖို့ လိုအပ်ပါတယ်။

ဘယ်လို အလုပ်လုပ်လဲ ?

Computer ဟာ အလိုအလျောက် အလုပ်မလုပ်နိုင်ပါဘူး။ Computer နားလည်တဲ့ ဘာသာစကား နဲ့ computer ကို ခိုင်းစေရပါတယ်။ ဥပမာ။။ Viber မှာ call ကို နှိပ်လိုက်ရင် ဒီလူ ရဲ့ ဖုန်းကို သွားခေါ် ဆိုပြီး ရေးသားထားရပါတယ်။ ဒါမှ သုံးစွဲ သူက Call ဆိုတဲ့ ခလုတ်ကို နှိပ်လိုက်တဲ့ အခါမှာ ဖုန်း သွားခေါ်ပေးပါတယ်။

Microsoft Words မှာလည်း ထိုနည်းတူပါပဲ။ Print ဆိုတာကို နှိပ်လိုက်ရင် printer ကနေ စာထွက်လာအောင် ဆိုပြီး programming နဲ့ ရေးသားထားရပါတယ်။ သုံးစွဲ သူတွေ အနေနဲ့ကတော့ print ဆိုတာကို နှိပ်လိုက်တာနဲ့ printer ကနေ print ထုတ်ပေးပါတယ်။

Computer ဟာ 0 နဲ့ 1 ကို သာ သိပါတယ်။ ကျွန်တော်တို့ အနေနဲ့ 0 နဲ့ 1 နဲ့ ရေးဖို့ အရာမှာ မလွယ်ကူလှတဲ့ အတွက် high level language တွေကို အသုံးပြုပြီး computer ကို ခိုင်းစေအောင် ရေးသားကြပါတယ်။ Computer ကို ခိုင်းစေတတ်တဲ့သူဟာ programmer ဖြစ်လာပါတယ်။

Progrommer ဟာ သုံးစွဲ သူ နဲ့ computer ကြားမှာ ကြားခံ အနေနဲ့ သုံးစွဲ သူ ခိုင်းစေလိုတာတွေကို computer နားလည်အောင် ရေးသားပေးရတဲ့ သူပါ။ Programming language ကတော့ ဘာသာစကား တစ်ခုပါပဲ။ computer နဲ့ programmer ကြားမှာ ဆက်သွယ်ပေးတဲ့ ဘာသာစကားပါ။ Computer ဟာ အလိုအလျောက် ဘာမှ မလုပ်နိုင်ပါဘူး။ Programmer ဟာ computer ကို ဒါလုပ် ဒါလုပ် စသည် ဖြင့် ခိုင်းစေရပါတယ်။

ဥပမာ။။ အောက်ပါ code လေးဟာ computer screen ပေါ်မှာ စာပေါ်လာအောင် ဖန်တီးပေးပါတယ်။

print("Hello World!")

ကျွန်တော်တို့က computer ကို ဒါလုပ်လိုက် ဆိုပြီး ခိုင်းလိုက်တဲ့ အတွက်ကြောင့် computer က လုပ်ပေးပါတယ်။ ကျွန်တော်တို့တွေ computer ကို မခိုင်းပဲနဲ့ ကျွန်တော်တို့ ဖြစ်ချင်တာတွေကို computer က အလိုအလျောက် မသိနိုင်ပါဘူး။

Programming Language

Programming ကို ရေးသားရာမှာ သက်ဆိုင် ရာ ဘာသာ စကားနဲ့ ရေးသားရပါတယ်။ Computer ဟာ 0 နဲ့ 1 ကိုပဲ သိပါတယ်။ 0 နဲ့ 1 ကို နားလည်အောင် ကြားခံ ဘာသာစကား တစ်ခု ကို အသုံးပြုပေးရပါတယ်။ ထို့မှသာ computer က နားလည်ပြီး မိမိ လိုအပ်တာတွေကို ဖန်တီးနိုင်ပါလိမ့်မယ်။

Generation

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

First Generation Language ( 1GL )

1950 မတိုင်ခင်က UNIVAC I နဲ့ IBM 701 တို့ဟာ ပထမဆုံး machine language program လို့ ဆိုလို့ရပါတယ်။ သို့ပေမယ့် 1GL ဟာ လျင်မြန်စွာ ကုန်ဆုံးသွားပြီး 2GL ကို ကူးပြောင်းလာခဲ့ပါတယ်။

Second Generation Language ( 2GL )

2GL ကတော့ လူသိများတဲ့ assembly language သို့မဟုတ် assembler ပေါ့။ assembler ကတော့ အခုထက်ထိတော့ အချို့နေရာတွေမှာ အသုံးချနေဆဲပါပဲ။

Third Generation Language ( 3GL )

အဲဒီနောက်ပိုင်းမှာတော့ 3GL တွေ ဖြစ်တဲ့ FORTRAN , LISP, COBOL တွေ ထွက်ခဲ့ပါတယ်။ 3GL ဟာ ပိုမို ရေးသားရမှာ လွယ်ကူလာပြီး အရင်တုန်းက machine code တွေနဲ့ မတူညီတော့ပါဘူး။ 3GL ဟာ gerneral use အနေနဲ့ အသုံးချလာနိုင်ခဲ့ပါတယ်။ 3GL နဲ့ အတူတူ general purpos language တွေကိုလည်း ပေါ်ထွက်လာခဲ့ပါတယ်။

C language ကို 1969 နဲ့ 1973 ကြားမှာ developed လုပ်ခဲ့ပြီးတော့ အခုအချိန်ထိ popular ဖြစ်နေသေးတဲ့ langauge တစ်ခုပါ။ C ကို ထပ်ပြီးတော့ version အသစ်တိုးကာ 1980 မှာ C++ ကို ထုတ်ခဲ့ပါတယ်။ C++ က object-oriented နဲ့system programming တွေ ပါဝင်လာပါတယ်။

Third Generation နဲ့ အတူ လက်ရှိ အသုံးပြုနေတဲ့ general purpose programming language တွေကတော့ PHP, ASP, C, C++, Java, Javascript, Perl, Python, Pascal, Fortran တို့ ဖြစ်ပြီး သူတို့ဟာလည်း Third generation Language တွေပါပဲ။

Fourth Generation Language ( 4GL )

Fourth generation language ကိုတော့ စီးပွားရေးဆိုင်ရာ business software တွေအတွက် ရည်ရွယ်ပြီး ဖန်တီးခဲ့ကြပါတယ်။ အချို့ 3GL ဟာ 4GL ထဲမှာ General Use အနေနဲ့ ပါဝင်လာပါတယ်။

အောက်မှာ ဥပမာ အချို့ ဖော်ပြပေးထားပါတယ်။

  • General Use
    • Perl
    • Python
    • Ruby
  • Database
    • SQL
  • Report generators
    • Oracle Report
  • Data manipulation, analysis, and reporting languages
    • SQL PL
    • SPSS
  • GUI creators
    • XUL
    • OpenROAD
  • Mathematical optimisation
    • AIMMS
    • GAMS
  • Database-driven GUI application development
    • Action Request System
    • C/AL
  • Screen painters and generators
    • SB+/SystemBuilder
    • Oracle Forms
  • Web development languages
    • CFML

Fifth Generation Language ( 5GL )

5GL ကတော့ အဓိကအားဖြင့် programmer မလိုပဲနဲ့ program တွေကို တည်ဆောက်ဖို့အတွက် ရည်ရွယ်ထားတာပါ။ 5GL တွေကို အဓိကအားဖြင့် Artificial Intelligence research တွေ မှာ အဓိက အသုံးပြုပါတယ်။ Prolog , OPS5, Mercury တို့က 5GL example တွေပေါ့။

Installing Python 3

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

Python 3 သွင်းသည့် အဆင့်ဟာ အရေးကြီးပါတယ်။ သွင်းသည့် အခါ အဆင်မပြေသည်များကို Telegram Group ( https://t.me/programmingbasicbook ) သို့မဟုတ် github issues ( https://github.com/saturngod/programming_basic_qa/issues ) မှာ မေးမြန်းနိုင်ပါသည်။

Download

Python ကို https://www.python.org မှာ download ချယူနိုင်ပါတယ်။ Python 3 သို့မဟုတ် နောက် အသစ် version ကို download ချပါ။ လက်ရှိ စာအုပ် code တွေကို python 3 ဖြင့် ရေးသားထားသောကြောင့်ဖြစ်ပါသည်။ အခု စာအုပ်ရေးသည့် အချိန်မှာ Python version 3.7.3 ဖြင့် ရေးသားထားခြင်းဖြစ်သည်။

Windows

Windows အတွက် https://www.python.org/downloads/windows/ ကို သွားပါ။ အခုနောက်ပိုင်း windows တွေဟာ 64 bits ဖြစ်သည့် အတွက်ကြောင့် 64 bit version ကို download ချပါ။

Python ကို download ချပြီးတော့ ရလာသည့် installe rကို double click ပြီး install သွင်းပါ။

နောက်ဆုံး checkbox ဖြစ်သည့် Add Python 3.7 to Path ကို check လုပ်ဖို့ လိုပါသည်။

အခုလို box တက်လာရင် Yes ကို နှိပ်လိုက်ပါ။

Install ပြီးသွားရင် Disable path length limit ကို နှိပ်ပေးပါ။

Search မှာ cmd ရိုက်လိုက်ပါ။ Command Promopt ကို နှိပ်ပါ။

command line မှာ python ရိုက်ပါ။ အခုဆိုရင် python ကို စသုံးလို့ရပါပြီ။

Linux

Ubuntu , Debian စသည့် Linux တွေမှာ Python 3 က default အနေနဲ့ သွင်းထားပြီးသား ဖြစ်ပါသည်။ Terminal မှာ python3 -V လို့ ရိုက်ကြည့်ပါ။ Python 3.6 သို့မဟုတ် အခြား version ကို တွေ့ရပါလိမ့်မည်။

Python 3.7 နောက်ဆုံး version ဖြစ်ချင်ရင်တော့ update ပြုလုပ်ပေးဖို့ လိုအပ်ပါသည်။ terminal တွေ အောက်ပါအတိုင်း ဆောင်ရွက်ရန် လိုအပ်ပါသည်။

sudo apt update
sudo apt install software-properties-common 
sudo add-apt-repository ppa:deadsnakes/ppa 
sudo apt install python3.7

Install သွင်းပြီးပါက python 3.7 ကို စတင် အသုံးပြုနိုင်ပါပြီ။

python3.7 --version

Mac

Mac အတွက် https://www.python.org/download/mac-osx/ မှာ download ချနိုင်ပါသည်။

pkg file ရလာပါက double click လုပ်ပြီး install သွင်းနိုင်ပါသည်။

Install သွင်းပြီးပါက Application > Python 3.7 ကို ဖွင့်ပါ။

Install Certificates.command ကို double click နှိပ်ပြီး သွင်းပါ။

Update Shell Profile.command ကို သွင်းပါ။

အခုဆိုရင် python3 ကို စတင်အသုံးပြုနိုင်ပါပြီ။ Terminal မှာ python3 လို့ ရိုက်လိုက်ပါ။

Testing Python

command prompt (Windows) သို့မဟုတ် Terminal (Mac , Linux) ကို ဖွင့်ပြီး python3 , (Windows တွင် python) ရိုက်လိုက်ပါ။

Python verison number နဲ့ python ရိုက်ဖို့ နေရာ တက်လာပါမယ်။

print("Hello World")

ရိုက်လိုက်ပါ။ ပြီးရင် Enter ခေါက်ရင် Hello World ဆိုတာ ထုတ်ပြတာကို မြင်ရပါမယ်။

ပြန်ထွက်ဖို့ အတွက်

exit()

ရိုက်ပြီး enter ခေါက်လိုက်ပါ။

notepad သို့မဟုတ် text editor တစ်ခုခုမှာ helloworld.py ကို ဖန်တီးပါ။ Text Editor ကိုတော့ ၂၀၁၉ ခုနှစ်မှာ ခေတ်စားနေသည့် VS Code ကို အသုံးပြုစေချင်ပါသည်။

VS Code ကို Windows , Mac , Linux စသည့် platform သုံးခု လုံးမှာ အသုံးပြုနိုင်ပါသည်။

VS Code မှာ New File ကို ရွေးပါ။ ပြီးလျှင်

print("Hello World")

ရိုက်ပြီး helloworld.py အမည်ဖြင့် save လုပ်ထားပါ။

ပြီးလျှင် terminal ကို ဖွင့်ပါ။ File save လုပ်ထားသည့် path ကို သွားပါ။

ဥပမာ အနေဖြင့် basicpy ဆိုသည့် folder ထဲမှာ helloworld.py ထည့်ထားပါသည်။ ထို့ကြောင့် basicpy folder ကို ဦးစွား သွားရန် လိုအပ်ပါသည်။

Linux နှင့် Mac OS မှာ ဆိုလျှင်

cd ~/basicpy
python3 helloworld.py

Windows မှာဆိုလျှင်

cd C:\basicpy
python helloworld.py

Hello World ထွက်လာသည် ကို တွေ့ရပါမည်။

Python မှာ သတိထားရမှာကတော့ spacing မှာပါ။ Programming language တွေဟာ တစ်ခု နှင့် တစ်ခု ရေးသားသည့် syntax မတူညီကြပါဘူး။ Python မှာကတော့

k = 5
data = true
if(data==true):
	k = 10
print(k)

ဒီ code လေးမှာ ကျွန်တော် tab သုံးထားတာကို တွေ့ရပါလိမ့်မယ်။

if(data==true):
<tab>k = 10

Python ကို ရေးသည့်အခါမှာ tab သုံးမလား space သုံးမလား တစ်ခုပဲ အသုံးပြုရပါတယ်။ Tab သုံးလိုက် Space သုံးလိုက် ဆိုရင် မရပါဘူး။ ဥပမာ

if(data==true):
	k = 10
    k = 20

အပေါ်က code ကတော့ tab တစ်ကြိမ် အသုံးပြုထားပြီး ဒုတိယ လိုင်းကတော့ space ၄ ခါ အသုံးပြုထားပါတယ်။ အဲဒီ လို မျိုး အသုံးမပြုနိုင်ပါဘူး။ မြင်အောင် ရေးပြရရင်

if(data==true):
<tab>k = 10
<space><space><space><space>k = 20

tab တစ်ကြိမ်ဟာ space ၄ ခု နဲ့ တူညီပေမယ့် code မှာ space သုံးလိုက် tab သုံးလိုက် ရောထွေးသုံးခြင်းကို python က ခွင့်မပြုထားပါဘူး။ နောက်ပိုင်း အခန်းတွေမှာ ကျွန်တော် space အစား tab ပဲ အသုံးပြုသွားတာကို တွေ့ရပါလိမ့်မယ်။

if(data==true):
<tab>k = 10
<tab>if(k == 10):
<tab><tab>k = 20
if(data==true):
	k = 10
	if(k == 10):
		k = 20

တစ်ခါတစ်လေ အထက်ပါ code ကို tab နှစ်ခါ သုံးရတာတွေ တွေ့ရပါလိမ့်မယ်။ နောက်ပိုင်း အခန်းမှာ ရှင်းပြသွားပါမယ်။

အခုဆိုလျှင် ကျွန်တော်တို့ computer ထဲမှာ python သွင်းပြီးပါပြီ။ နောက်တဆင့် အနေဖြင့် programming အကြောင်း ဆက်ပါမည်။

Sequential

Programming မှာ code တွေက တစ်ကြောင်းခြင်းစီ အလုပ်လုပ်ပါတယ်။ တစ်ခုပြီးမှ နောက်တစ်ခုက အလုပ်လုပ်တယ်။

ဥပမာ အောက်က code လေးကို တချက်ကြည့်လိုက်ပါ။

i = 5 + 4
i = i  + 6

5 နဲ့ 4 ကို ပေါင်းပြီးတော့ i ထဲကို ထည့်တယ်။ ပြီးမှ ရလာတဲ့ အဖြေကို ၆ နဲ့ ပေါင်းတယ်။ အဲလို တစ်ကြောင်းစီ အလုပ်လုပ်ပေးပါတယ်။ 5+4 ကို ပေါင်းတာ မပြီးသေးပဲ 6 နဲ့ သွားပေါင်းသည့် အဆင့်ကို မကျော်သွားပါဘူး။

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

Variable

Programming ကို စလေ့လာတော့မယ်ဆိုရင် ပထမဆုံး သိဖို့လိုတာကတော့ variable ပါပဲ။ variable ဆိုတာကတော့ data တွေကို ခဏတာ memory ပေါ်မှာ သိမ်းထားပေးတဲ့ နေရာပေါ့။ variable ကို နာမည်ပေးဖို့ လိုပါတယ်။ ဒါ့အပြင် variable အမျိုးအစား သတ်မှတ်ပေးဖို့လည်း လိုအပ်ပါတယ်။

print("Hello World!")

အထက်ပါ code မှာ ဘာ variable မှ မပါပါဘူး။

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string
boolean = True         # Boolean Value True and False only

print (counter)
print (miles)
print (name)
print(boolean)

ဒီ code လေးမှာ ဆိုရင်တော့ variable ၃ ခု ပါတာကို တွေ့ပါလိမ့်မယ်။

counter ကတော့ integer ပါ။ Integer ဆိုတာကတော့ ဒဿမ မပါတဲ့ ကိန်းပြည့် တန်ဖိုး တွေကို ဆိုတာပါ။

miles ကတော့ floating ပါ။ ဒဿမ တန်ဖိုး တွေပေါ့။

name ကတော့ String ပါ။ စာလုံး စာကြောင်းတွေ အတွက်ပါ။

boolean ကတော့ Boolean ပါ။ True နဲ့ False value ပဲ ရှိပါတယ်။ True , False တွေကို နောက်ပိုင်းမှာ condition တွေ နဲ့ တွဲသုံးတာကို တွေ့ ရပါလိမ့်မယ်။

print ကတော့ value ကို ပြန်ပြီး ထုတ်ထားပေးတာပါ။

variable တွေကို နာမည်ပေးရမှာ သက်ဆိုင်ရာ နာမည်တွေ ပေးရပါတယ်။ x , y ,z ဆိုပြီး ပေးမည့် အစား ဒီ တန်ဖိုးကတော့ counter ဖြစ်ပါတယ်။ ဒီ တန်ဖိုးကတော့ miles ဖြစ်ပါတယ်။ ဒီ စာ ကတော့ name ဖြစ်ပါတယ် ဆိုပြီး variable name ကို ပေးလိုက်တဲ့ အတွက် ဖတ်လိုက်တာနဲ့ သဘောပေါက်လွယ်သွားပါတယ်။

Bit and Storage Data on Memory

Variable က memory ပေါ်မှာ နေရာ ယူပြီး ခဏ သိမ်းထားပါတယ်။ program ပိတ်လိုက်တဲ့ အခါမှာ memory ပေါ်ကနေလည်း ရှင်းလင်းလိုက်ပါတယ်။

Computer မှာ 0 နဲ့ 1 ပဲ ရှိပါတယ်။ 0 မဟုတ် ရင် 1 ပေါ့။ အဲဒါကို bit လို့ ခေါ်ပါတယ်။

8 Bit ကို 1 Byte လို့ ခေါ်ပါတယ်။ 8 Bit ဆိုတာကတော့ binary system အရ 00000000 ကနေ ပြီးတော့ 11111111 ထိ ရှိပါတယ်။

binary value 11111111 ကို decimal ပြောင်း 255 ရလာပါတယ်။

ဒါဟာ 8 Bit မှာ သိမ်းနိုင်တဲ့ အများဆုံး တန်ဖိုးပါ။

Integer ဟာ 32 Bit ရှိပါတယ်။ Integer တန်ဖိုးမှာ unsigned နဲ့ signed ဆိုပြီး ရှိပါတယ်။ Unsign ဟာ အပေါင်း ကိန်းတွေ ပဲ ဖြစ်တဲ့ အတွက်ကြောင့် 32 bit အပြည့် အသုံးပြုနိုင်ပါတယ်။ Signed ကတော့ +/- စတာပါလာတဲ့ အတွက်ကြောင့် 31 Bit ပဲ အသုံးပြုနိုင်ပါတယ်။ 1 bit ကိုတော့ အပေါင်း လား အနှုတ်လား ဆုံးဖြတ်ဖို့ အတွက်ပေးလိုက်ရပါတယ်။

Bit ပေါ်မှာ မူတည်ပြီး Integer တန်ဖိုးကို တွက်တဲ့ ပုံသေးနည်း ရှိပါတယ်။

(2 ^ [Total Bit]) - 1

^ သည် power ဖြစ်သည်။

ဒါကြောင့် 8 Bit အတွက်ဆိုရင်တော့

(2 ^ 8) - 1
= 256 - 1
= 255

Sign Integer အမြင့်ဆုံး တန်ဖိုး တွက်ကြည့်ရင်တော့

31 Bit ကို အများဆုံးထားတယ်။ ဒါကြောင့်

(2 ^ 31) - 1
=  2147483648 - 1
= 2,147,483,647

ဆိုပြီး ရလာပါတယ်။

ကျွန်တော်တို့ အနှုတ် ရဲ့ အနည်းဆုံး တန်ဖိုး မတွက် ခင် အောက်က ဇယားလေးကို တချက်ကြည့်လိုက်ပါ။

Binary ValueTwo's complement interpretationUnsigned interpretation
0000000000
0000000111
01111111127127
10000000-128128
10000001-127129
10000010-126130
⋮ ⋮
11111110−2254
11111111−1255

ဒီ table မှာ ဘယ်ဘက် ဆုံးကတော့ Binary တန်ဖိုး နဲ့ အလယ်က Singed တန်ဖိုး ၊ နောက်ဆုံးကတော့ Unsigned တန်ဖိုးပါ။

အနှုတ် ဖြစ်ပြီဆိုတာနဲ့ ရှေ့ဆုံး binary ကို 1 ပြောင်းလိုက်ပါတယ်။ Sign မှာ 0 အတွက် က အပေါင်း အနေနဲ့ တည်ရှိနေပေမယ့် အနှုတ် 0 ဆိုတာ မရှိပါဘူး။ ဒါကြောင့် ကျွန်တော်တို့ အနေနဲ့ အနှုတ် တန်ဖိုး တစ်ခု ပို ပြီး သိမ်းလို့ရပါတယ်။

ဒါကြောင့် အောက်က equation နဲ့ Integer ရဲ့ Max range ကို တွက်လို့ ရပါတယ်။

- (2 ^ [Total Bit]) to (2 ^ [Total Bit]) - 1

ဒါကြောင့် 32 Bit Integer Signed ကို တွက်ကြည့်ရင်တော့

- (2 ^ 31) to (2 ^31) -1
=  −2,147,483,648 to 2,147,483,647

Unsigned ကို တွက်ရင်တော့ 32 Bit အပြည့် နဲ့ တွက်ရပါမယ်။

0 to (2 ^ 32) - 1
= 0 to 4,294,967,295

ရ လာပါမယ်။

Float ကတော့ 32 Bit ရှိပါတယ်။

32 bit မှာ

  • sign 1 bit
  • exponent 8 bit
  • Mantissa 23 bit

binary value 0 01111100 01100000000000000000000

ကို ၃ ပိုင်း ခွဲထုတ်ပါမယ်။

Sign 0
exponent 01111100
fraction က 01100000000000000000000

sign 0 ဖြစ်တဲ့ အတွက်ကြောင့် +

1 + SUM ( i=1 To 23) of b(23-i) 2 ^ -i

ဒါကြောင့်

1 + 2 ^ -2 + 2 ^ -3 = 1.375

exponent က 01111100

2 ^ (e - 127) = 2 ^ 124-127 = 2 ^ -3
value = 1.375 x 2 ^ -3 = 0.171875

ဒါကြောင့် 0.171875 ကို binary 0 01111100 01100000000000000000000 အနေနဲ့ သိမ်းဆည်းပါတယ်။

Float ဟာ ဒဿမ ၇ နေရာထိ သိမ်းနိုင်ပါတယ်။

နောက်ထပ် ဒဿမ တန်ဖိုးကတော့ Double ပါ။

Double ကတော့ 64 Bit ရှိပါတယ်။ Double ကတော့ ဒဿမ 16 နေရာထိ သိမ်းနိုင်ပါတယ်။

String တန်ဖိုးကတော့ character storage ပေါ်မှာ မူတည်ပါတယ်။

  • ASCII ဆိုရင် 1 Character 8 Bit
  • UTF-8 ဆိုရင် 8 Bit ကနေ 32 Bit (4 Bytes)
  • UTF-16 ဆိုရင် 16 Bit ကနေ 32 Bit (4 Bytes)

အထိ နေရာ ယူပါတယ်။

ကျွန်တော်တို့ အနေနဲ့ storage တွေ အကြောင်း အနည်းငယ် သိထားခြင်းအားဖြင့် variable တွေ အများကြီး ဘာကြောင့် မသုံးသင့်တယ်ဆိုတာကို သဘောပေါက်စေဖို့ပါ။ memory အသုံးပြုပုံ အနည်းဆုံး ဖြစ်အောင် ဘယ်လို ရေးရမလဲ ဆိုတာကို စဉ်းစားစေနိုင်ဖို့ ရည်ရွယ်ပါတယ်။ တခြား အသေးစိတ်ကိုတော့ Computer Science ပိုင်းနဲ့ သက်ဆိုင်သွားပါပြီ။ ကျွန်တော့် အနေနဲ့ Programming Basic ပိုင်းမှာ တော့ ဒီလောက် ပဲ သင်ကြားပြီးတော့ programming နဲ့ သက်ဆိုင်ရာတွေကို ဆက်လက် ရေးသားသွားပါမယ်။

Operators

Operators ဆိုတာကတော့ ပေါင်းနှုတ်မြှောက်စား ပါ။ Programming မှာ

  • အပေါင်း +
  • အနှုတ် -
  • အမြှောက် *
  • အစား /
  • အကြွင်း %

ဆိုပြီး သုံးပါတယ်။ ကျွန်တော်တို့ သင်္ချာ မှာ အသုံးပြုသည့် × နှင့် ÷ အစားကို အသုံးမပြုပါဘူး။

အပေါင်း

အပေါင်း အတွက် ဥပမာ လေး အောက်မှာ ကြည့်ကြည့်ပါ။

k = 5 + 4
print(k)

ကိန်း ၂ ခု ကို ပေါင်းထားပြီးတော့ ရလဒ် ကို k ထဲကို ထည့်ထားတာပါ။ programming မှာ data တွေကို ထည့်သွင်းမယ်ဆိုရင် ဘယ်ဘက်မှာ ရေးပါတယ်။

k = 5

အဲဒီ အဓိပ္ပာယ်ကတော့ k ထဲကို 5 ထည့်လိုက်လို့ ဆိုလိုတာပါ။

သင်္ချာမှာကတော့

5 + 1 = 6

ဆိုပြီး ရပါတယ်။ Programming မှာတော့

6  = 5 + 1

ဆိုပြီး ရေးရပါတယ်။ 6 က ရလဒ်ပါ။ ရလာတဲ့ အဖြေကို k ဆိုတဲ့ variable ထဲ အစား သွင်းဖို့ အတွက်

k = 5 + 1

ဆိုပြီး ရေးပါတယ်။အဲဒါဆိုရင် k ထဲမှာ 6 ဝင်သွားပါပြီ။ တနည်းပြောရရင် ဘယ်ဘက် မှာ process လုပ်ပြီးတော့ ညာဘက် က variable ထဲကို process လုပ်ထားသည့် data ထည့်ပေးလိုက်ပါတယ်။ အပေါင်း မှ မဟုတ်ပါဘူး။ အနှုတ် ၊ အမြှောက် ၊ အစားတွေမှာလည်း variable assign က ဒီပုံစံ ပါပဲ။ နားလည်အောင် ဥပမာလေး ကြည့်ကြည့်ပါ။

a = 3
b = 4
c = a + b
print (c)

a ထဲကို 3 ထည့်။ b ထဲ ကို 4 ထည့်။ ပြီးလျှင် a နဲ့ b ကို ပေါင်း။ ရလာတဲ့ အဖြေကို c ထဲ ထည့်ပြီးတော့ ရလဒ် ပြန်ထုတ်ပြထားပါတယ်။

အနှုတ်

အပေါင်း အတိုင်းပါပဲ။ အနှုတ် အတွက် - ကို အသုံးပြုပါတယ်။

a = 10
b = 4
c = a - b
print (c)

အမြှောက်

အမြှောက်အတွက် * ကို အသုံးပြုပါတယ်။

a = 3
b = 4
c = a * b
print (c)

အစား

အစား အတွက် / ကို အသုံးပြုပါတယ်။

a = 10
b = 2
c = a / b
print (c)

အကြွင်း

အကြွင်းကို % ကို အသုံးပြုပါတယ်။

a = 13
b = 8
c = a % b
print (c)

Problem Solving

Programming ကို ရေးသားရာမှာ သင်္ချာ ကဲ့သို့ပင် ပြဿနာတွေ ကို ဖြေရှင်း ရတာတွေ ပါဝင်ပါတယ်။ အသုံးပြုသူတွေ ဖြစ်နေတဲ့ ပြဿနာတွေကို လွယ်လင့်တကူ ဖြေရှင်းပေးဖို့ program တွေကို စဉ်းစား တွေးခေါ် ရေးရပါတယ်။

ဥပမာ။။ ကိန်း ၂ လုံးကို လက်ခံပါ။ ပြီးရင် ၂ ခု ပေါင်းလဒ်ကို ထုတ်ပြပါ။

လွယ်လွယ်လေးပါ။ ကျွန်တော် တို့ အနေနဲ့ ကိန်း ၂ လုံး လက်ခံမယ်။ ပြီးရင် ပေါင်း ပြီး ရတဲ့ အဖြေကို ထုတ်ပေးလိုက်ရုံပါပဲ။

အသုံးပြုသူကို input ထည့်ပေးဖို့ အတွက် python3 မှာတော့ input ကို အသုံးပြုပါတယ်။

user_input = input("Please enter something: ") print ("you entered", user_input)

အဲဒီ code လေးကို python 3 မှာ run လိုက်ရင်

ဆိုပြီး ပြပါလိမ့်မယ်။

ကျွန်တော်တို့ user input လက်ခံ တတ်ပြီ ဆိုရင် ကိန်း ၂ လုံး လက်ခံရအောင်။ ပြီးတော့ ပေါင်းပြီးတော့ ရလဒ်ကို ထုတ်ပေးရုံပါပဲ။

input1 = int(input("Please enter first number: "))
input2 = int(input("Please enter second number: "))
result = input1 + input2

print (input1,"+",input2,"=", result)

ကျွန်တော်တို့ user ဆီကနေ data ကိ ုလက်ခံတဲ့ အခါ string value အနေနဲ့ ရလာပါတယ်။ integer အနေနဲ့ လိုချင်တဲ့ အတွက်ကြောင့် int() ကို အသုံးပြုထားပါတယ်။

input1 = int(input("Please enter first number: “))

input ကနေ user အနေနဲ့ နံပတ်ကို ရိုက်ထည့်ပေးလိုက်ပေမယ့် string အနေနဲ့ ဝင်လာပါတယ်။ int() နဲ့ ပြောင်းလိုက်တဲ့ အတွက်ကြောင့် နံပတ်ရပါတယ်။

a = "5"
b = "6"
print(a+b)

string ၂ ကို ပေါင်းသည့် အခါမှာ 11 အစား 56 ဖြစ်သွားတာကို တွေ့ရမှာပါ။

String နံပတ်ကို int ပြောင်းချင်တာကြောင့် int() ကို အသုံးပြုရပါတယ်။

a = "5"
b = "6"
print(int(a)+int(b))

အခု ဟာ ဥပမာ အသေးလေး တစ်ခုပါ။

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

အဲဒီလိုမျိုး စစ်ဖို့ အတွက် နောက် အခန်းမှာမှ looping တွေ condition တွေ အကြောင်း ရေးသွားပါမယ်။

လေ့ကျင့်ခန်း ၁ - ၁

မေးခွန်း ၁။

အောက်ပါ program မှာ k ရဲ့ value က ဘာဖြစ်ပါသလဲ။

i = 7 + 3
k = i + 2

အဖြေက

A. 7 B. 10 C. 12 —

မေးခွန်း ၂။

လူတစ်ယောက်၏ မွေးဖွားသည့် နှစ်ကို လက်ခံပါ။ ထို့နောက် ၂၀၁၈ တွင် ရောက်ရှိနေသည့် အသက်ကို ဖော်ပြပါ။