Wednesday, February 20, 2019

Java Programming sinhala tutorial - Variable scope and Lifetime - Part 12

Variable scope and Lifetime

      අද අපි ඉගෙනගන්න යන්නේ variable scope හා  variable lifetime කියන්නේ මොකක්ද කියලා. සාමාන්‍යයෙන් variable scope ලෙස හදුන්වන්නේ variable එකක් අපිට access කරන්න පුළුවන් කොහේදිද යන්නයි. ඒ අනුව සාමාන්‍යයෙන් variable scope එක වන්නේ variable එක නිර්මාණය කල block එක වේ. Variable lifetime එක යනු variable එකක් program එකක් තුල කොපමණ කාලයක් run කල හැකිද  යන්නයි. එයද variable එක නිර්මාණය කල block එක මත රදා පවතී. Variable එකක්, එය පවතින block එක execute වී අවසන් වූ පසු RAM එකේ මතකයෙන් ඉවත් වේ. ඒ අනුව එකම නමින් variable දෙකක් block එකක් තුල හා ඉන් පිටත නිර්මාණය කල හැක.


Variable scope and Lifetime of loop


       Java loop ගැන අපි කලින් ලිපිය මගින් ඉගෙන ගත්තා. ඒ අනුව loop එකක control variable එකෙහි variable lifetime එක එම loop එකේ condition එක false වන තෙක් body එක run වන සම්පුර්ණ කාලය වේ. මෙහිදී body එක 1 වරක් execute වී condition එක නැවත true වීමෙන් 2 වන වර body එක execute වුවත් control variable එකෙහි පෙර අගය RAM එකේ මතකයේ පවතී. 2 වන වර body එක run වීමේදී control variable එක නැවත වරක්  නිර්මාණය වීමක් ( Initialization ) සිදු නොවේ. එම නිසා loop එකක control variable එකෙහි variable lifetime එක එම loop එකේ condition එක false වන තෙක් body එක run වන සම්පුර්ණ කාලය වේ.


        loop එකක control variable එකෙහි variable lifetime එක එම loop එකේ condition එක false වන තෙක් body එක run වන සම්පුර්ණ කාලය වන නිසා i හි අගය loop එක ආරම්භයේ සිට අවසානය දක්වා 1 වරක් නිර්මාණය වී RAM එකේ මතකයේ පවති. a variable එක loop එක run වන සෑම වාරයකදීම නැවත නිර්මාණය වේ.

අපි ඊලග ලිපියෙන් Java Language ගැන තවත් විස්තර ඉගෙන ගනිමු.

- චමෝදි -

Thursday, February 14, 2019

MongoDB sinhala tutorial part-3





කලින් post එකේදි අපි කතා කලේ  MongoDB database එකක තියන collection එකකට කොහොමද data insert කරන්නෙ  සහ view  කරන්නෙ කියලා. Data view කරද්දි විවිද queries පාවිච්චි කරලා විවිද අාකාරයට data view  කරන්න  පුලුවන්.දැන් බලමු ඒ විදි මොනවද කියලා.කලින් post  එකේ කිව්වෙ db.collectionName.find() query එක  ගැන විතරයි.

ඒ ඇරෙන්න  තව ආකාර තියනවා.
ඊට කලින් කියන්න ඕනි MongoDB   database එකකට  අපි data  document එකක්  insert කරද්දි  document එකට unique  වෙච්ච id  එකක් ලැබෙනවා.ඒක  "object ID "එක විදියට හදුන්නනවා. id එක add වුනාම document තියෙන්නෙ කොහොමද කියලා මේ example එක බැලුවම තේරෙයි.

හරි.කලින්post එකේදි කිව්වා වගේ db.collectionName.find()  execute කලාම අදාල collection එකේ තියන data ඔක්කොම  ටික view  කරන්න පුලුවන්.

ඒ වගේම pretty() command එක පාවිච්චි කරලා database එකේ documents ටික පෙන්නන විදියටම (structured විදියට)  view කරන්න පුලුවන්.


ඒ වගේම අපිට  collection එකේ තියන පලවෙනි document එක view කරන්න ඕනි නම් db.collectionName.findOne() කියන  command එක පාවිච්චි කරන්න  පුලුවන්.


මේ db.collectionName.findOne() command එක execute කරද්දි data view  වෙන්නෙ pretty() format  එකට අදාලවමයි.
දැන් අපි බලමු  condition එකකට අදාලව document වල data,  view කරන්නෙ කොහොමද කියලා.
උදාහරණයක් විදියට අපි බලමු customer collection  එකේ Last Name  එක "Dasanayaka" එක වෙන  customersලා කව්ද  කියලා


ඉලක්කම් තියන  data view කරද්දි  condition පාවිච්චි කරන්නෙ කොහොමද කියලා බලමු.
ඒකට  data  ටිකක් insert කරගමු.


දැන් බලමු වයස 18  වෙන customer කෙනෙක් ඉන්නවනම් එයගෙ  data view කරන්නෙ කොහොමද කියලා. 

ඊළගට  බලමු වයස 21  වෙන customer කෙනෙක් ඉන්නවනම් එයගෙ  data view කරන්නෙ කොහොමද කියලා.  


අපිට ඕනිනම්  වයස  අවුරුදු 20 ට වැඩි අයගේ data view කරන්න "$gt" කියන  keyword එක පාවිච්චි කරන්න ඕනි.



ඒ වගේම  වයස  අවුරුදු 20 ට අඩු අයගේ  data view කරන්න "$lt" කියන  keyword එක පාවිච්චි කරන්නත් පුලුවන්.



අපිටඕනිනම්  වයස   අවුරුදු  21 ට වැඩි හෝ සමාන  අයගේ data view කරන්න "$gte" කියන  keyword එක පාවිච්චි කරන්න පුලුවන්.


ඒ වගේම වයස අවුරුදු 21 ට අඩු  හෝ සමාන  අයගේ data view කරන්න "$lte" කියන  keyword එක පාවිච්චි කරන්න පුලුවන්.


ඒ වගේම වයස අවුරුදු  21  ට සමාන නොවන  අයගේ data view කරන්න "$ne" කියන  keyword එක පාවිච්චි කරන්න පුලුවන්.


මෙතනදි වයස කියන attribute  එක document එකේ තිබුනොත්  වයස අවුරුදු 21 ට අසමාන අයගේ data  පෙන්නනවා.  වයස කියන attribute එක නැති  documents තිබුනොත් ඒවගේ data ත් පෙන්නනවා. ඒ MongoDB කියන්නේ  non relational database වර්ගයක් හින්දා.

හරි එහෙනම්.. අදට ඇති. ඊලග post  එකෙන් හම්බෙමු..
--පියුමි--





Tuesday, February 12, 2019

Java Programming sinhala tutorial - Loops - Part 11

Java Flow Control " Loops "

     Java program හි, instruction හෝ function එකක් හෝ කිහිපයක්, එක ළග, කිහිප වරක්, යම් condition එකක් true වන තෙක් අවශ්‍ය නම් loop පාවිච්චි කල හැක. Java වල ප්‍රධාන ලෙස loop වර්ග 3 ක් පවතී.
  1. For loop 
  2. While loop
  3. Do while loop

For Loop

     කලින් කිව්වා වගේම for loop පාවිච්චි කරන්නේ instruction හෝ function එකක් හෝ කිහිපයක්, එක ළග, කිහිප වරක්, යම් condition එකක් true වන තෙක් අවශ්‍ය විට. For loop එකේ විශේෂත්වය වන්නේ loop එක execute විය යුතු වාර ගණන දැනගෙන ඉන්න ඕනේ.

Simple For Loop

     Simple for loop එකේ කොටස් 4 කට වෙන් කර හදුනා ගන්න පුළුවන්. 
  1. Initialization - loop එක execute වීමට පටන් ගන්නා විට control variable එක initialize වේ. 
  2. Condition - loop එක execute වන සැම වාරයකදීම condition එක evaluate කරන අතර එය false වන තෙක් loop එක execute වේ. 
  3. Statement - loop එක execute වන සැම වාරයකදීම සිදු විය යුතු කරුණු මෙහි අඩංගු වේ.
  4. Increment/ Decrement - loop එක execute වන සැම වාරයකදීම control variable එක වැඩි වීම හෝ අඩු වීම සිදු කරයි.

Syntax


for (initialization; condition; increment/decrement){
       // code to be executed
}


For each Loop / enhance For Loop


      For each loop එක මගින් array එකක එක් එක් element එක return කරයි. මේ ගැන වැඩි විස්තර මම ඉදිරි ලිපි වලදී කියන්නම්.

Syntax


for (Type var : array){
       // code to be executed
}


While Loop


     For loop වගේම while loop පාවිච්චි කරන්නේ instruction හෝ function එකක් හෝ කිහිපයක්, එක ළග, කිහිප වරක්, යම් condition එකක් true වන තෙක් අවශ්‍ය විට. While loop එකේ විශේෂත්වය වන්නේ loop එක execute විය යුතු වාර ගණන දැනගෙන හිදිම අවශ්‍ය නොවීමයි. Condition එක false වන තෙක් loop එක execute වේ.

Syntax


while ( condition ){
       // code to be executed
}


Do While Loop


     For loop වගේම do while loop පාවිච්චි කරන්නේ instruction හෝ function එකක් හෝ කිහිපයක්, එක ළග, කිහිප වරක්, යම් condition එකක් true වන තෙක් අවශ්‍ය විට. Do while loop එකේ විශේෂත්වය වන්නේ loop එක execute විය යුතු වාර ගණන දැනගෙන හිදිම අවශ්‍ය නොවීම හා එක් වරක් අනිවාර්යෙන්ම loop එකේ body එක execute වීමයි. Condition එක false වන තෙක් loop එක execute වේ.

Syntax


do{
       // code to be executed
}while ( condition )


අපි ඊලග ලිපියෙන් Java ගැන තවත් විස්තර ඉගෙන ගනිමු.

- චමෝදි -

Saturday, February 9, 2019

Java Programming sinhala tutorial - Operators - Part 10

Operators in Java

  අද අපි බලමු Java වල පාවිච්චි කරන්න පුළුවන් operators මොනවාද කියලා. මේ operators අපිට floating-point වගේම integer numbers සදහා භාවිතා කරන්න පුළුවන්.

Arithmetic operators


    ප්‍රධාන වශයෙන් අපි arithmetic operators වර්ග 5 ක් හදුනා ගන්න පුළුවන්. ඒවා එකතු කිරීම (+), අඩු කිරීම (-), ගුණ කිරීම (*), බෙදීම (/) හා Modulus (%) . එකතු කිරීම (+), අඩු කිරීම (-), ගුණ කිරීම (*) හා බෙදීම (/) අපි සාමාන්යෙන් එදිනෙදා කරන එකතු කිරීම, අඩු කිරීම, ගුණ කිරීම හා බෙදීම ට සමාන වේ. Modulus operator එක මගින් පළමු සංඛ්‍යාව දෙවන සංඛ්‍යාවෙන් බෙදා ශේෂය (ඉතිරිය) ලබා දෙයි.


ඒවගේම අපිට arithmetic operators String 2ක් concatenate කිරීමටද භාවිතා කල හැක.


    Incrementer (++) හා decrementer (--) operators මගින් පිළිවලින් operand එකෙහි අගය 1 ක් එකතු කිරීම හා අඩු කිරීම කරයි. මෙය postfix හා prefix ලෙස ආකාර 2 කින් සිදු කල හැක.


     n++ (postfix incrementer) මගින් n හි අගය 1කින් වැඩි කළත් එම වෙලාවේදී n ට තිබු පෙර අගය භාවිතා කරයි. ඉන් පසුව n හි අගය 1කින් වැඩි කළ අගය වේ. ++n (prefix incrementer) මගින් n හි අගය 1කින් වැඩි කරන අතර එම අගයම භාවිතා කරයි. 
     n-- (postfix decrementer) මගින් n හි අගය 1කින් අඩු කළත් එම වෙලාවේදී n ට තිබු පෙර අගය භාවිතා කරයි. ඉන් පසුව n හි අගය 1කින් අඩු කළ අගය වේ. --n (prefix decrementer) මගින් n හි අගය 1කින් අඩු කරන අතර එම අගයම භාවිතා කරයි. 

Relational Operators


     Relational operators මගින් සංඛ්‍යා 2 ක් හෝ variable 2 ක් අතර සම්බන්ධතාවය පෙන්නුම් කරයි. මෙයින් ලැබෙන ප්‍රතිඵලය සැම විටම true හෝ false වේ. 


Boolean Logical Operators


    Command එකක යම් statement 2 ක් අතර සිදු විය යුතු logical operation දැක්වීමට යොදන සංකේත boolean logical operators නම් වේ.

  • &  - Boolean AND - statement 2 ම true වේ නම් true, නැත්නම් false 
  • |   - Boolean OR- statement 2 න් එකක් හෝ  true වේ නම් true, නැත්නම් false 
  • ^  - Boolean XOR- statement 2 න් එකක් පමණක් true වේ නම් true, නැත්නම් false 
  • !  - Boolean NOT- statement එකේ logical state එකෙහි විරුද්ධ අගය result එක වේ 
  • &&  - Short circute AND - statement 2 ම true වේ නම් true, නැත්නම් false. නමුත් මෙහිදී පළමු statement එක false නම් දෙවන statement එක execute නොකරයි.
  • ||  - Short circute OR- statement 2 න් එකක් හෝ  true වේ නම් true, නැත්නම් false. නමුත් මෙහිදී පළමු statement එක true නම් දෙවන statement එක execute නොකරයි.


Ternary Operator (?:)


     if - else මගින් කරන ක්‍රියාවලිය එක් පේලියකින් සිදු කිරීම ternary operator මගින් සිදු කරයි. 



Assignment Operator


      Variable එකකට යම් arithmetic operation එකක් සිදු කර එම variable එකටම assign කිරීම කෙටියෙන් දැක්වීම මෙමගින් සිදු කරයි.



Operation Order


     යම් command line එකක operators එකකට වඩා ඇති විට ඒවා ක්‍රියා කරන අනුපිළිවෙල operation order නම් වේ. එය පහත පරිදි වේ.

  1. () , []
  2. ++ , -- , !
  3. * , / , %
  4. + , -
  5. > , < , <= , >= , == , !=
  6. & , | , && , || , ^
  7. ?:
  8. =op
     ඉහත දක්වා ඇති operation order එකෙහි එකම මට්ටමේ ඇති operators, command line එකක ඇති විට ඒවා වමේ සිට දකුණට ක්‍රියා කරයි.

- චමෝදි -

Sunday, February 3, 2019

Java Programming sinhala tutorial - "if" , "if/ else" , "if ladder" - Part 9

Java Flow Control "if" , "if/ else" , "if ladder (if/ else if)"

    Code කිරීමේදී අපිට යම් condition එකකට අනුව run විය යුතු code එක වෙනස් කල යුතු අවස්ථා බොහෝ විට ලැබෙනවා. ඒ වගේ අවස්ථා වලදී if , if - else , if ladder පාවිච්චි කරන්න පුළුවන්.

if

    යම් condition එකක් true වේ නම් කිසියම් code section එකක් run වීමට run time ඉඩ දීම if මගින් සිදු කරයි. ඒ වගේම එම condition එක false වේ නම් එම code section එක run නොවේ.




Condition එක true වූ විට සිදු විය යුතු statement ගණන 1ක් නම් curly bracket තුල statement එක ලිවිම අත්‍යවශ්‍ය නොවේ.



if/ else

 යම් condition එකක් true වේ නම් කිසියම් code section එකක් run වීමට හා එම condition එක false වේ නම් වෙනත් code section එක run වීමට if else භාවිතා කරයි.


if ladder

 යම් condition එකක් true වේ නම් කිසියම් code section එකක් run වීමට හා එම condition එක false වේ නම් වෙනත් condition එකක් check කිරීමට if ladder එක භාවිතා කරයි. මෙලෙස if ladder එකක් භාවිතා කිරීමේදී, එහි ඇති එක් section එකක් පමණක් execute වේ.


Java ගැන තවත් නොදන්න කරුණු දැනගන්න අපි ඊලග ලිපියෙන් හමුවෙමු.

- චමෝදි -