විසිල් නැතුව බල්ටි කෙරුවාව...
(programming ගැන විතරමයි)

Tuesday 11 August 2009

මයෙ මැණික් කැටේ(පලමු කොටස)

ඔන්න ඉතින් මැණික් කැටේ එක්ක මොකුත් කරන්න ඉස්සෙල්ලා මැණික් කැටේ දාගන්න එපෑ. (වැරදියට අනං මනං කැත කතා හිතනව නෙමේ හොදද? මම කතා කරේ install කරගන්න එක ගෑන).

මේ ලිපියෙන් මම උත්සහ කරන්නෙ language එකට අත තියන්නයි, fundamentals ගැන අවබෝධයක් ගන්න උදව් වෙන්නයි. උපරිමයෙන් උත්සහ කරනවා ඕනම කෙනෙක්ට තේරෙන්න සරල විදියට තේරුම් කරන්න. අපැහැදිලි තැන් තිබ්බොත් අහන්න. මැණික් කැටේ ගැන මාකටින් පාරක් දාන්න බලාපොරොත්තුවක් නම් නෑ.

linux පාවිච්චි කරන අයට තියෙන්නෙ ruby කියන repository එක install කරගන්න (apt-get install ruby). වැඬ අල්ලන්න ඒක හොදටම ඇති. වැඬේ නැගලා ගියොත් අනික්වා ගැන බලමු. windows කට්ටිය මෙන්න මේක download කරගන්න. ඊට පස්සෙ ඉතින් next->next->next->finish නේ. ;)

ඕං එහෙනම් දෙයියනේ බුදුනේ කියලා notepad එක open කරගමු නේද? හැමෝම කරනවා වගේ ලෝකෙට "හලෝ" කියන්නෙ නැතුව අපිටම "හලෝ" කියාගෙන බලමුද? notepad එකේ මෙහෙම type කරන්නකො.

puts "adooo gemba"

අපි ඕක save කරගන්න ඕනා .rb කියන extension එකත් එක්ක. java කරපු කට්ටියට මතක ඇතිනෙ java code එක save කලේ ".java" කියලනෙ. එහෙනම් ඉතින් file->save ගිහිල්ලා "myfirst.rb" කියලා මේක save කරගමුකෝ. දැනට desktop එකේ save කරගන්න. (myfirst වෙනුවට ඔයාට කැමති නමක් දාගත්තට කිසිම අවුලක් නෑ හොදද?). මතක තියාගන්න file extension එක ".rb.txt" නෙමයි ".rb" යි කියලා. දැන command prompt එක අරගන "myfirst.rb" එක save කරපු තැනට (desktop එකට) මාරු වෙලා (cd ) මෙහෙම කොටන්න.

ruby myfirst.rb

ඔයා අර උඬින් ලියපු text එක(adooo gemba) display උනා නේද? (බැරිවෙලාවත් file not found කියලා ආවොත් extension එක .rb මිසක් .rb.txt නෙමේ නේද කියලා check කරන්න) double quotations ඇතුලෙ තියන text එක මාරු කරලා save කරලා දෙතුන් පාරක් run කරලා බැලුවට කවුරුත් බනින එකක් නෑ.

දැන් පොඬිඬක් විතර boring කොටස. theory චික් නෙ? හරි, සරලව කියන්න බලන්නම් කො. code එකක කොහෙන් ගියත් අඬංගු වෙන කොටස් තුනක් තියනවා. ඔයාලා දැනටමත් දන්නවනෙ මම මේ කියන්නෙ sequence selections සහ repetition ගැන කියලා. sequence කියන්නෙ කෝච්චිය වගේ statements එකින් එක execute කරගෙන යනවට. repetition කියන්නෙ අර වලිගෙ හපන්න try කරන බලුකුක්ක වගේ එකතැන කැරකෙනවට. එකකො ඌට කැරකිල්ල හැදිල නතර වෙන්න ඕනෙ නැත්තම් කවුරු හරි කෑගහන්න ඕනෙ. එතකන් පොර කැරකෙනවා. loops කියලා කියන්නෙත් එව්වට තමා. selection කියන්නෙ අර උගුල ලග නතරවෙච්ච මීය වගේ "කේක් කෑල්ල කනවද, චීස් කෑල්ල කනවද" කියලා හිත හිත ඉන්නවට. මම වැඬේ පටලුවෙ නෑ නේද?

අපි ඉතින් පලවෙනි කොටසට sequence වලට විතරක් සීමාවෙලා ඉමු. ඕන්න අපි අර කලින් කරපු "හලෝ" කිවිල්ල පොඬ්ඬක් පිලිවලට කරමු. අපි ඕක function එකක් ඇතුලට දාමු. මෙන්න මෙහෙමයි වැඬ් කරන්නෙ

def sayhi
puts "adoooo gemba"
end

sayhi

def කියන්නෙයි end කියන්නෙයි keywords. def කිලා නම දීලා ඊට පස්සෙ ඉදලා end වලට වෙනකන් එක කොටසක් විදියට තමයි ගනන් ගැනෙන්නෙ. java වල { යි }යි වගේ. vb වල sub යි end subයි වගේ. puts කියන්නෙ java වල print වගේ. vb වල ? වගේ. sayhi කියන්නෙ අර උඬ ලියපු function name එකනේ. අනතිමට sayhi කියලා තියෙන්නෙ ඒ function එක run කරන්න කියලා. සිද්දිය පැහැදිලීද? එහෙනම් තව අඬියක් ඉස්සරහට තියමුකෝ...

def sayhi(name)
puts "adooo #{name}"
end

sayhi "anthrax"

කරලා තියන වැඬේ පැහැදිලීද? function එකට parameter එකක් pass කරන්න පුලුවන් කරන එක තමයි ඔය වරහන් එක්ක කරලා තියෙන්නෙ. වෙනසක් තේරුනාද? sayhi කියන function එකට මම fixed name එකක් assign කරලා නෑ. sayhi function එක call කරද්දි දෙන නමට තමයි එයා greet කරන්නෙ. වැඬ් ලේසී නේද? #{} වලින් කරලා තියෙන්නෙ අර parameter එකේ තියන text එක output text වලට ඔබ්බවන එක. මොන programming language එක පාවිච්චි කලත් හොද internal documentation එකක් maintain කරන්න අමතක කරන්න හොද නෑ නෙ. # සලකූණ යොදලා තමයි අපි comment එකක් දාන්නෙ. හෝව් හෝව්, කෑගහන්න ඉස්සෙල්ලා මේ ටිකත් කියවලා ඉම්මුකො. දැන් ඔය කියන්න ලෑස්ති උනේ #{} පාවිච්චි කරපු විදියයි comment කරන විදියයි එකවගෙයි කියලා නේද? පොඬ්ඬක් හොදට බලන්න අපි #{} පාවිච්චි කරලා තියෙන්නෙ "" ඇතුලෙ නේද? ;)

#this is a commemt
def sayhi(name="gemba") #this is also a comment
puts "adooo #{name}" #here is another comment
end #this is a comment too

sayhi "anthrax"
sayhi

පොඬි වෙනස්කමක් කරලා තියනවා දැක්කද? name variable වලට default value එකක් assign කරලා තියනවා gemba කියලා. එතකොට ඔයා sayhi function එක parameter එකක් නැතුව call කලොත් adooo gemba කියලයි, parameter එකක් එක්ක call කලොත් adoo කියලයි වෙනස් output දෙකක් ලැබෙනවා.

දැනට මෙතනින් නවත්තන්නම්. කූරුගාලා ප්‍රශ්ණ එහෙම තිබ්බොත් අහන්නකො..

7 comments:

Anonymous said...

නියමයි... සෝඩා බෝතලේ වෙන එකක් නෑ... වෙලාවක් තියෙන විදියට හෙමින් කරගෙන යමු... :D

ශාකුන්තල | Shaakunthala said...

නියමයි. වැඩේ නම් එළ. Selection/Repetition පැහැදැලි කරල තියෙන විධිය මැක්සා. :)

"puts කියන්නෙ java වල print වගේ. vb වල ? වගේ."

VB වලත් එම ම තමා :D

Unknown said...

Private Sub cmdTestPrint_Click()
? "qustion mark will do the same job as print, give it a go"
End Sub


;)

ශාකුන්තල | Shaakunthala said...

Ah.. thanks again. I never knew that although I'm a VB programmer. ;)

Gayan Tharaka said...

"ado gemba"
nice work bro & nice examples

python and ruby both easy to understand 4 me.

keep it up

Rasika Nanayakkara said...

ලොක්කා...
අදයි දැක්කේ බලුප් දාලා තියෙනවා...
එළ...

ජය වේවා...

ශාකුන්තල | Shaakunthala said...

ඔන්න මාත් කිව්ව විදියට බල්ටිය ගැහුවෝ...