Saturday, January 5, 2013

Programming အေၾကာင္း

Programming Language တစ္ခုကို တစ္ကယ္တတ္ခ်င္ရင္ အဲဒီ ဘာသာစကားေတြရဲ႕ အေျခခံအက်ဆုံးအခ်က္ေတြျဖစ္ၾကတဲ့ Program Structure, Variable Declaration, Boolean Operator, comparison Operator, Conditional Statements ေတြလို အခ်က္ေတြကို ေသေသခ်ာခ်ာသေဘာ ေပါက္မွျဖစ္ပါမယ္ဆရာၾကီးလုပ္ခ်င္တဲ့သေဘာမ်ဳိး လုံး၀(လုံး၀)မပါတဲ့အျပင္၊ မွားေနတာေတြ လိုေနေသးတာေတြကိုေတြ႕ရင္လဲ အားမနာ ပါးမနာ ေထာက္ျပေ၀ဖန္ႏိုင္ၾကပါေၾကာင္း ခင္ဗ်ာ။ ျဖည့္ခ်င္တဲ့သူရွိလဲ အားရပါးရၾကီးသာ ျဖည့္ေပးၾကပါ... ေနာ္ ...။ ကဲ စျပီဗ်ာ...။ Program Structure. အေျခခံအားျဖင့္ ရိုးရိုးေလးပါ။ ၁။ ပရိုဂရမ္အစျဖစ္ေၾကာင္း သိသာေအာင္လုပ္တယ္။ ၂။ ကိန္းရွင္ေတြ(Variable)ကိုေၾကျငာတယ္။ ၃။ တစ္ကယ္ အလုပ္လုပ္တဲ့ ပရိုဂရမ္ လာတယ္။ ဒါပါပဲ။ အရွင္းဆုံးျဖစ္တဲ့ Hello World ေလးနဲ႔ စလိုက္ရင္ ဒီလိုရွိပါတယ္။ run လိုက္ရင္ Hello World လို႔ ေမာ္နီတာ စကရင္မွာေပၚလာမယ့္ ပရိုဂရမ္ေလးပါပဲ။ အဲဒါေလးကို Language အမ်ဳိးမ်ဳိးနဲ႔ ေရးျပပါ့မယ္။ အဲဒီလိုေရးျပထားတာေတြကို ႏိႈင္းယွဥ္ၾကည့္လိုက္တဲ့အခါ Program Structure ဆိုတာဟာ ဒါမ်ဳိးပါလားလို႔ ရွင္းရွင္းၾကီးသိလာမွာေသခ်ာပါတယ္။
"C" နဲ႔ေရးရင္ ဒီလို ....
#include ; void main() { printf("Hello World"); }


C++ နဲ႔ေရးရင္ ဒီလို ....
#include ; int main() { cout "Hello World"; return 0; }

Pascal နဲ႔ေရးရင္ ဒီလို ....
program helloworld (output); begin writeln('Hello World');

end. Oracle PL/SQL နဲ႔ေရးရင္ ဒီလို ....
CREATE OR REPLACE PROCEDURE helloworld AS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World'); END;

Java နဲ႔ေရးရင္ ဒီလို ....
class helloworld { public static void main (String args []) { System.out.println ("Hello World"); } }

Perl နဲ႔ေရးရင္ ဒီလို ....
#!/usr/local/bin/perl -w print "Hello World";

Basic နဲ႔ေရးရင္ ဒီလို ...
print "Hello World"

TASL နဲ႔ေရးရင္ ဒီလို ...
10 print "Hello World"


ကဲ ေနာက္တစ္ဆင့္တက္လိုက္ရေအာင္။ Variable Declaration. Variable ဆိုတာဟာ ပရိုဂရမ္ထဲမွာ ေတာက္ေလွ်ာက္သုံးသြားမွာျဖစ္တဲ့ အစားထိုးအညႊန္းေလး ေတြပါပဲ။ အဲဒီလိုသုံးဖို႔အတြက္ ကိုယ္မွတ္မိႏိုင္တဲ့ နာမည္ေတြေပးသြားျပီး၊ အဲဒီနာမည္ေတြကို ကိုယ္စားျပဳတဲ့ ကိန္းဂဏန္းေတြအစား နာမည္ေလးေတြကိုပဲ သုံးသြားတာပါ။ ဒါပါပဲ။ ဒါေပမယ့္ အမ်ဳိးအစားသတ္မွတ္ခ်က္ေလးေတြေတာ့ ရွိျပန္ပါေသးတယ္။ သိပ္မမ်ားပါဘူး။ ေလးခုေလာက္ပါ။ Integer - ဆိုတဲ့ကိန္းျပည့္ Real - ဆိုတဲ့ ကိန္းေထြ လို႔ေခၚနိုင္တဲ့ကိန္းမ်ဳိး(လာမွာပါ၊ ပိုရွင္းသြားေအာင္) Character - အကၡရာ String - အကၡရာတြဲ .... ဒါပဲ။ ကိုယ္သုံးေတာ့မယ့္ Variable ဟာ ဘယ္အမ်ဳိးအစားျဖစ္တယ္ဆိုတာကို အရင္ဆုံးေၾကျငာတာကို Variable Declaration လို႔ေခၚတာပါ။ ဒါပဲ ..ဒါပဲ။ ေဟာဒီမွာၾကည့္။ ေသခ်ာၾကည့္ေလ ရွင္းေလျဖစ္မွာပါ။
C နဲ႔ေရးရင္ ဒီလို ....
#include ; void main() { int age; float salary; char middle_initial; age = 21; salary = 29521.12; middle_initial = "K"; printf("I am %d years old ", age); printf("I make %f8.2 per year " salary); printf("My middle initial is %c ", middle_initial); }

Pascal နဲ႔ေရးရင္ ဒီလို ....
program myexample (output); var age: integer; salary: real; middle_initial: char; begin age := 21; salary := 29521.12; middle_initial := 'K'; writeln('I am ', age, ' years old'); writeln('I make ', salary, ' per year'); writeln('My middle initial is ', middle_initial); end.

Oracle PL/SQL နဲ႔ေရးရင္ ဒီလို ....
CREATE OR REPLACE PROCEDURE myexample AS age NUMBER; salary NUMBER; middle_initial CHAR(1); BEGIN age := 21; salary := 29521.12; middle_initial := 'K'; DBMS_OUTPUT.PUT_LINE('I am ' || age || ' years old'); DBMS_OUTPUT.PUT_LINE('I make ' || TO_CHAR(salary, '99999.99') || ' per year'); DBMS_OUTPUT.PUT_LINE('My middle initial is ' || middle_initial); END;

Java နဲ႔ေရးရင္ ဒီလို ....
class myexample { public static void main (String args []) { int age; double salary; String middle_initial; age = 21; salary = 29521.12; middle_initial = "K"; System.out.println ("I am " + age + " years old "); System.out.println ("I make " + salary + " per year"); System.out.println ("My middle initial is " + middle_initial); } }

Perl နဲ႔ေရးရင္ ဒီလို ....
#!/usr/local/bin/perl $age = 21; $salary = 29521.12; $middle_initial = "K"; print "I am " . $age . " years old "; print "I make " . $salary . " per year "; print "My middle initial is " . $middle_initial;

Basic နဲ႔ေရးရင္ ဒီလို ...
Dim age AS Integer Dim salary AS Decimal Dim middle_initial As String age = 21 salary = 29521.12 middle_initial = "K" print "I am " & age & " years old " print "I make " & $salary & " per year" print "My middle initial is " & $middle_initial

TASL နဲ႔ေရးရင္ ဒီလို ...
10 a=21 20 s=29521 30 c=s\12 40 print " I am ",a," years old " 50 print " I make ",s," per year" 60 print " My salary is ",c

ကဲ ... ေနာက္တစ္ခုကိုေျပာေတာ့မယ္။ Boolean အေၾကာင္းေလး။ George Boole ဆိုတဲ့ သခ်ၤာပညာရွင္ၾကီးတစ္ေယာက္ ၁၉ ရာစုတုန္းက တီထြင္ခဲ့တဲ့ သခ်ၤာတြက္နည္းျဖစ္လို႔ Boolean သခ်ၤာလို႔ေခၚတာပါ။ ေလာဂ်စ္သခ်ၤာတစ္မ်ဳိးပါပဲ။ AND, OR, NOT ေတြကိုသုံးျပီးသက္ေသျပတာ။ ဒါပဲ။ နမူနာျပရရင္ ... 5 < 6 ။ ၅ သည္ ၆ ထက္ငယ္၏။ ဒါဟာ မွန္လား မွားလား။ မွန္တယ္။ ဒိထက္မွန္တာေတာ့မရွိ။ ဒါဆို TRUE ေပါ့။ ေနာက္တစ္ခုကိုၾကည့္ဦး။ I am 6 feet tall AND I am president of the United States. ကြ်န္ေတာ္ဟာ အရပ္ (၆)ေပရွည္ျပီး၊ အေမရိကန္သမတလဲ ျဖစ္တယ္။ ဘယ့္ႏွယ္။ အိုဘားမားၾကီး ဘယ္သြားထားမတုန္း။ အရပ္ကေတာ့ ထားလိုက္ပါေတာ့။ ႏွစ္ခုစလုံးဟုတ္မွ အမွန္ျဖစ္မွာ။ ဒီေတာ့ကာ.. မွားပါသည္။ FALSE ... ကဲ... ဒါက်ေတာ့ေရာ... I am 6 feet tall OR I am president of the United States. ကြ်န္ေတာ္ဟာ အရပ္(၆)ေပရွည္သည္(သို႔မဟုတ္)အေမရိကန္သမတျဖစ္သည္ ။ (၆)ေပရွည္ရင္ အေမရိကန္ သမတမဟုတ္။ အေမရိကန္သမတဆိုရင္ (၆)ေပရွည္တာမဟုတ္။ တစ္ခုခုဟုတ္ရင္ကိုပဲ မွန္ျပီ။ ခုနကစာေၾကာင္းနဲ႔ အမ်ားၾကီးကြဲသြားျပီေနာ္...။ ဒီေတာ့ကာ ... မွန္သည္ လို႔ေျပာႏိုင္ပါတယ္။ TRUE .... ဒါပါပဲ Boolean ေလာဂ်စ္ဆိုတာ။ ဒါေလာက္ပါပဲ။ အဲဒါေတြကို ေဟာဒီလို သေကၤတေတြနဲ႔ သုံးၾကပါေၾကာင္းဗ်ား ...။ အဲဒါေတြကို Boolean Operator ေတြလို႔ေခၚၾကသဗ်။
Mathematics ......
C or C++ ............ && || !
SQL .................... AND OR NOT
Pascal ................ AND OR NOT
Perl .................... & || !
Java ................... & || !
Basic .................. AND OR NOT
အေသမွတ္လို႔ရတာေတြကေတာ့ ဒီလိုဗ်...။
True AND True ဆိုရင္ True
True AND False ဆိုရင္ False
False AND True ဆိုရင္ False
False AND False ဆိုရင္ False
True OR True ဆိုရင္ True
True OR False ဆိုရင္ True
False OR True ဆိုရင္ True
False OR False ဆိုရင္ False
NOT True ဆိုရင္ False
NOT False ဆိုရင္ True

Boolean Operator ေတြျပီးေတာ့ အနည္းအမ်ား၊ ညီ မညီ ႏႈိင္းယဥ္တဲ့ သေကၤတေတြကိုေျပာပါဦးမယ္။ အဲဒါေတြကိုေတာ့ Comparison Operator ေတြလို႔ေခၚၾကပါတယ္။ အဲဒါေတြကေတာ့ ဒီလိုပါ။
Mathematics = > br/> "C" or C++ == > < !=
Pascal = > >
SQL = > >
Perl == or eq > < != or ne
Java == > < !=
Basic = > < !=
TASL = > > >= <=
ဘယ္လိုသုံးရသလဲဆိုေတာ့ကာ ....
ကိုေစတန္ဟာ တစ္ႏွစ္ကို သုံးသိန္းထက္မက၀င္ေငြရွိတယ္ ဆိုတာကို Saturn_Annual_Income > 300000 လို႔ေရးရင္ျဖစ္ပါတယ္။
ကိုစည္သူက ကိုေစတန္ထက္ပိုၾကီးတယ္(အသက္) ... Sithu > Saturn
အမွတ္ျပည့္ဟာ ၁၀၀ ျဖစ္တယ္ ..... Full_Marks = 100
အစရွိသည္ျဖင့္ ေရးလို႔ရပါတယ္။ အဲဒီလိုေရးထားတာေတြကို Expression လို႔ေခၚေလ့ရွိၾကပါတယ္။
ဒီေလာက္ကေတာ့ လူတိုင္းလိုလိုသိၾကမွာပါေလ...။
ဟုုတ္ျပီ ...။ ဒါဆိုရင္ Boolaen နဲ႔ Comparison Operator ေတြကိုေပါင္းၾကည့္ရေအာင္ ...။
အခန္းထဲမွာ ေက်ာင္းသား အေယာက္ ၃၀ မကသလို၊ ခုံေတြလဲ ၃၀ မကဘူး ဆိုတာကို ...ဒီလိုေရးလိုက္ႏိုင္ပါတယ္။
Students_in_class > 30 AND Seats_in_class >30
အခ်က္အလက္ေတြ ဒီလိုရတယ္ဆိုပါစို႔ ...။
၁။ ၀န္ထမ္းတိုင္းဟာ ဌာနခြဲအသီးသီးမွာ အလုပ္လုပ္ၾကတယ္။
၂။ ဌာနခြဲ ၅ မွာလုပ္တဲ့ ၀န္ထမ္းတိုင္းဟာ လခ ၂၅၀၀၀ ထက္ပိုရၾကတယ္။
၃။ ဌာနခြဲ ၄ မွာလုပ္တဲ့ ၀န္ထမ္းတိုင္းကေတာ့ လခ ၄၀၀၀၀ အတိရၾကတယ္။
၄။ ကိုေစတန္ဟာ ဌာနခြဲ ၅ မွာ အလုပ္လုပ္တယ္။
၅။ ကိုစည္သူကေတာ့ ဌာနခြဲ ၄ မွာအလုပ္လုပ္တယ္။
ကိုင္း အဲဒါေတြကိ ပရိုဂရမ္ထဲသြတ္သြင္းၾကည့္မယ္။
Saturn_salary < 25000 AND Saturn_Department = 5
ကိုေစတန္ဟာ ဌာနခြဲ ၅ မွာလုပ္တယ္။ ဟုတ္ျပီ ...။ဒါေတာ့ TRUE
ဒါေပမယ့္ ကိုေစတန္ရဲ႕ လခဟာ ၂၅၀၀၀ ထက္နည္းတယ္။ ဒါကေတာ့ FALSE
ဒီတာ့ TRUE and FALSE = FALSE ပဲရမွာပါ။ ရွင္းတယ္ေနာ္။
NOT Saturn_salary < 25000
ကိုေစတန္ရဲ႔ လစာဟာ ၂၅၀၀၀ ထက္နည္းတယ္ဆိုတာ မဟုတ္ပါဘူးတဲ့။ မွန္လိုက္တာ။ NOT False is TRUE
Saturn_salary < 25000 OR Sithu_salary = 40000
ကိုေစတန္ရဲ႕ လစာဟာ ၂၅၀၀၀ ထက္နည္တယ္ဆုိတာက FALSE ပါ။ ကိုစည္သူရဲ႕ လခက ၄၀၀၀၀ ဆိုတာကေတာ့ TRUE ပါ။
ၤFALSE OR TRUE is TRUE ပါ။
Saturn_salary > 25000 AND NOT Sithu_salary < 40000
ကိုေစတန္ရဲ႕လစာဟာ ၂၅၀၀၀ထက္မ်ားတယ္။ TRUE ပါ။
ကိုစည္သူရဲ႕ လစာ ၄၀၀၀၀ ထက္နည္းတယ္ဆိုတာ FALSE ပါ။ ဒါေပမယ့္ ေရွ႕မွာ NOT ရွိေနပါတယ္။ ဒီေတာ့ NOT FLASE is TRUE ပါပဲ။ ရွင္းပါတယ္ေနာ္။ ဆိုေတာ့ကာ TRUE(ေရွ႕ကဟာေနာ္) AND NOT FALSE ဆိုေတာ့ တစ္ေၾကာင္းလုံးဟာ TRUE ပါပဲခင္ဗ်ား။
ဒီေတာ့ကာ ေအာက္က ဟာေလးေတြကို ကိုယ့္ဖာသာ စဥ္းစားျပီး TRUE FALSE ခြဲၾကည့္ၾကစမ္းပါ။ 1. Saturn_salary < 25000 OR Saturn_department = 4
2. Saturn_salary >= 25000 AND Sithu_department = 4
3. Saturn_salary < 25000 OR Sithu_salary < 40000 OR Saturn_department = 5
4. NOT(Saturn_salary > 25000 AND Sithu_salary < 40000)
5. Saturn_salary < 25000 AND (Sithu_salary <= 40000 OR Saturn_department = 5)

အခုေျပာျပေနတာေတြဟာ ပရိုဂရမ္မင္းကို ၀ါသနာပါသူေတြအတြက္ ျဖစ္ျပီး အခုေျပာျပသေလာက္ကိုေတာ့ နားလည္ၾကလိမ့္မယ္လို႔ထင္ပါတယ္။ နားမလည္မခ်င္း ေသေသခ်ာခ်ာျပန္ဖတ္ၾကည့္ၾကေစခ်င္ပါတယ္။ ဘယ္လိုဖတ္ဖတ္ တစ္ခုမွကိုနားမလည္ဘူးဆိုရင္ေတာ့ ကြ်န္ေတာ္ညံ့လို႔ပဲျဖစ္မွာပါ။ ဟီး ...။ ကဲ ဆက္ေျပာပါဦးမယ္.. Conditional Statement ေတြအေၾကာင္းကို။ အဲဒီမွာ ႏွစ္ခုထပ္ခြဲလို႔ရပါတယ္။ Statements ဆိုတာဘာလဲ .... ။ ကြန္ပ်ဴတာ ဂရိုဂရမ္မင္းမွာ Statements ဆိုတာဟာ .... သီးျခားလုပ္ေဆာင္ခ်က္တစ္ခုခုကိုလုပ္ေပးတဲ့ တစ္ေၾကာင္းထည္းေသာကုဒ္ ကိုဆိုလိုတာပါ။(a statement is a single line of code that is used to perform a specific task) ဒီေတာ့ကာ Conditiona Statement ဆိုတာကေတာ့ အေျခအေနအရ အလုပ္လုပ္သြားတဲ့ statement ကိုဆိုလိုတာပါပဲ။ အမွန္အမွားကို သူ႔ဖာသာဆုံးျဖတ္ျပီး အလုပ္လုပ္သြားတာပါ။ Conditional Expression လို႔လဲ တစ္ခ်ဳိ႕ကေခၚၾကပါေသးတယ္။ ခုနက ေျပာျပခဲ့တဲ့ boolean နဲ႔ comparison operator ေတြနဲ႔ပါတြဲျပီး .. statement ေတြ ဘယ္လိုအလုပ္လုပ္ၾကတယ္ဆိုတာ ေျပာျပမွာပါ။ ခုနကဟာေတြကို မရွင္းေသးရင္ အခုဆက္ေျပာမယ့္ဟာေတြကိုလဲ ရွင္းမွာ မဟုတ္ပါဘူး။ Conditional Statement ေတြကို IF ... THEN... ELSE ဆိုတဲ့ construct ေတြနဲ႔ အလုပ္လုပ္သြားၾကတာပါပဲ။ အဲဒီ IF ... THEN... ELSE တစ္ခုစီဟာ ကိုယ္ပိုင္လုပ္ေဆာင္ခ်က္ေတြ ကိုယ္စီရွိၾကတဲ့ keywords ေတြပါပဲ။ ကိုယ္သုံးတဲ့ programming language က ၾကိဳလုပ္ေပးထားတာပါ။ programming language တိုင္းမွာ IF ... THEN... ELSE ေတြ ပါၾကတာခ်ည္းပါပဲ။ သူတို႔ အလုပ္လုပ္ပုံကလဲ သာမန္လူေတြသုံးေတြ ဘာသာစကားက အဓိပၸာယ္အတိုင္းပါပဲ။ ကိုင္း.....နမူနာေလးေတြကို ၾကည့္လိုက္ရင္ ရွင္းသစြားၾကမွာပါ။
"C", C++, Java, Perl နဲ႔ဆိုရင္ ....
if (condition) {
statements
} else {
else_statements
}
Pascal နဲ႔ဆိုရင္ ....

if (condition) then
begin
statements
end;
Oracle PL/SQL နဲ႔ဆိုရင္ ....

if (condition) then
statements
else
statements
end if;
Basic နဲ႔ဆိုရင္ ....

If condition Then
statements
Else
statements
End If
TASL နဲ႔ဆိုရင္ ....
IF THEN
အဲဒီ နမူနာေတြမွာျပထားတဲ့အထဲက condition ဆိုတဲ့ အပိုင္းထဲမွာ boolean expression ေတြပါ၀င္မွာပါ။
variable ေတြလဲပါေနမွာပါ။ အဲဒါေတြ ပါေနတဲ့ အေျခအေနရဲ႕ TRUE နဲ႔ FALSE ကို ၾကည့္ျပီးေတာ့မွ သူ႔ေနာက္က statement ကို အလုပ္လုပ္ေစတာပါပဲ။ if (condition) then statements ဆိုတာ ... အကယ္၍ condition ဟာ TRUE ဆိုရင္ statement ကို အလုပ္လုပ္ဖို႔ခိုင္းထားတာ ပါပဲ။ အကယ္၍ condition ဟာ FALSE ျဖစ္ေနတ္ဆိုရင္ else ေနာက္က statement ကိုပဲ အလုပ္လုပ္ခိုင္ေတာ့မွာပါ။ တစ္ကယ္ အလုပ္လုပ္တဲ့ program နမူနာေလးေတြကို တစ္ခ်က္ေလ့လာၾကည့္ၾကရေအာင္။
"C" or C++ နဲ႔ဆိုရင္ ....

#include ;
main() {
int department;
department = 5;
if (department == 5) {
printf("Employees should be paid more than 25,000");
} else {
printf("Employees should be paid exactly 40,000");
}
}
Perl နဲ႔ဆိုရင္ ....
$department = 5;
if ($department == 5) {
print "Employees should be paid more than 25,000";
} else {
print "Employees should be paid exactly 40,000";
} Oracle PL/SQL နဲ႔ဆိုရင္ ....
BEGIN
DECLARE department INTEGER;
department = 5;
IF (department = 5) THEN
DBMS_OUTPUT.PUT_LINE('Employees should be paid more than 25,000');
ELSE DBMS_OUTPUT.PUT_LINE('Employees should be paid exactly 40,000');
END IF;
END; Java နဲ႔ဆိုရင္ ....
class myexample
{
public static void main (String args [])
{ int department = 5;
if (department == 5) { System.out.println ("Employees should be paid more than 25,000");
} else { System.out.println ("Employees should be paid exactly 40,000");
} } }
SQL နဲ႔ဆိုရင္ ....
SELECT salary FROM employees_table WHERE department = 5;
TASL နဲ႔ဆိုရင္ ....
5 print "Enter Department ... "; 10 input d 20 IF d=5 THEN print "Employees should be paid more than 25,000" 30 IF d=4 THEN print "Employees should be paid exactly 40,000"

1 comment:

  1. အဆက္ရွိေသၚရင္တင္ေပၚပါအံုၚ

    ReplyDelete