Pages

Sunday, June 1, 2014

Programming in Sinhala (part 4)



පහසුවෙන් Programming ඉගෙන ගනිමු. ( සිව්වන කොටස )



හැමදාම වගේ පරක්කු කරන්නෙ නැතුව කුප්පිය කරගෙන යන්න හැදුවත් කරුමෙට mid exam set වුන නිසා තිබුන වැඩ ටිකට තව වැඩ වැඩි වුනා.. ඒක නිසා මේ පාරත් අපේ වැඩේ පරක්කු නොකර කරන්න හිතාගෙන හිටියට ඒක එහෙම වුනේ නෑ.. දැන් ඉතිං කමක් නෑ අපි එහෙනම් දැන්වත් වැඩේ පටන් ගමුකො.. ඊට කලින් කලින් ටික බලපු නැති කෙනෙක් ඉන්නවා නම් මෙතනින් ගිහින් ඒ ටිකත් බලලාම එන්නකො...

දැන් කට්ටියට variable එකක් හදලා data එකක් assign කරගන්නත් පුළුවන් නිසා අපි දැන් බලමු programming වලදි හැමතිස්සෙම කියවෙන මේ operators කියන්නෙ මොනවද කියලා.. programming වලදි operators කියන්නෙ ඇත්තටම අපි එදිනෙදා ජීවිතයේදී භාවිතා කරන එකතු කිරීම, අඩු කිරීම වගේ දේවල්ම තමයි.. එහෙනම් ඒවා ගැන දැන් බලමුකො..


Arithmetic Operators



උඩ රූපෙ පේන විදියට වම් පැත්තෙන් පේන්නෙ අපි සාමාන්‍යයෙන් භාවිතා කරන Operators ටික. හැබැයි ඇත්තටම කල්පනා කලොත් මෙතනින් එකතු කිරීමයි අඩු කිරීමයි ඇරෙන්න අනිත් ඒවා ටික computer එකට input කරන්න විදියක් නෑ. මොකද x අකුරත් වැඩි කිරීමේ ලකුණ වගේම නිසා compiler ට ඒ දෙක වෙන් කරලා අඳුරගන්නත් බැරිවෙනවා. ඊට අමතරව බෙදීමේ සලකුණ දෙන්න විදියක් ඇත්තෙම නෑ.. දැන් කට්ටියට තේරෙනවා ඇති ඒ කියන්නෙ අපි සාමාන්‍යයෙන් භාවිතා කරන operators ටික ඒ විදියටම දෙන්න විදියක් නැති නිසා මොකක් හරි ක්‍රමයක් අවශ්‍ය වෙනවා කියලා. අන්න ඒ හේතුව නිසා තමයි රූපෙ දකුණු පැත්තෙන් පෙන්නලා තියෙන විදියට programming වලදි වැඩි කිරීමේ ලකුණ වෙනුවට තරු සලකුණයි. බෙදීමෙ සලකුණ වෙනුවට back slash ( / ) එකයි use කරන්නෙ..


දැන් එහෙනම් අපි බලමු කොහොමද මේ operators programming වලදි use කරන්නෙ කියලා..






රූපේ පෙන්නලා තියෙන විදියට තමයි operators පාවිච්චි වෙන්නෙ. operator එකට වම් පැත්තෙ තියෙන දේ දකුණු පැත්තෙන් තියෙන දේ එක්ක මැද තියෙන operator එකට අදාළව සුළු වෙන එක තමයි මේකෙදි වෙන්නෙ.. (maths වලදි වගේමයි).

  • උදාහරණයක් විදියට පළවෙනි එකෙන් කියන්නෙ වම් පැත්තෙ තියෙන එක දකුණු පැත්තෙ තියෙන එකට එකතු කරන්න කියන එක..
  • දෙවෙනි එකෙන් කියන්නෙ වම් පැත්තෙ තියෙන එකෙන් දකුණු පැත්තෙ තියෙන එක අඩු කරන්න කියන එක..
  • තුන්වෙනි එකෙන් කියන්නෙ වම් පැත්තෙ තියෙන එක දකුණු පැත්තෙ තියෙන එකෙන් වැඩි කරන්න කියන එක..
  • හතරවෙනි එකෙන් කියන්නෙ වම් පැත්තෙ තියෙන එක දකුණු පැත්තෙ තියෙන එකෙන් බෙදන්න කියන එක..

Modulus Operator

මේ දේවල් වලට අමතරව අපිට ගොඩක් වැඩ වලදි අවශ්‍යම වෙන දෙයක් තමයි කිසියම් සංඛ්‍යාවක් තව දෙයකින් බෙදුවම ඉතිරි වෙන remainder එක. maths වලදි අපිට ඒක ලේසියෙන්ම ගන්න පුළුවන් වුනාට programming වලදි ඒක ලේසියෙන් ගන්න බැරි නිසා ඒකටත් විශේෂ operator එකක් තියෙනවා. ඒකට කියන්නෙ modulus operator (%) කියලා..




මේ modulus එකෙන් වෙන්නෙ වමේ තියෙන එක දකුණෙ තියෙන එකෙන් බෙදුවම ඉතිරි වෙන සංඛ්‍යාව (remainder) answer එක විදියට දෙන එක..




රූපෙ පෙන්නලා තියෙන උදාහරණෙ විදියට මුලින්ම x කියලා integer type එකේ variable එකක් හදලා තියෙනවා. එහෙම variable එක හැදුවට පස්සෙ කියලා තියෙන්නේ modulus operator එකට වම් පැත්තෙ තියෙන 15 දකුණු පැත්තෙ තියෙන 2 න් බෙදුවම ඉතිරි වෙන අගය x කියන variable එක ඇතුළට දාන්න කියන එක. මතක තියාගන්න මෙතනදි x ට වැටෙන්නෙ 7.5 නෙවෙයි 15 ව 2 න් බෙදුවම ඉතිරි වෙන 1 කියන value එක..


Compound Assignment Operators

ඉංග්‍රීසියෙන් වචනයක් දැම්මට බය වෙන්න එපා මම හැමදාම කියනවා වගේ programming ඉගෙන ගන්න ආසනම් මේ වචන වලට බය වෙන්නෙ නැතුව ඒකෙන් කියලා තියෙන දෙයින් වෙන්නෙ මොකක්ද කියලා තේරුම් ගන්න. ඇත්තටම compound assignment operator කියන්නෙ අපි මෙච්චර වෙලා ඉගෙන ගත්ත operators වලින් එකක් එක්ක assignment operator (=) එක ලියන එකම විතරයි. මේකෙදි වෙන්නෙ පොඩ්ඩක් speed එක වැඩි වෙන එකයි, code එක පහසුවෙන් කෙටියෙන් ලියන්න පුළුවන් එකයි විතරයි. දැන් අපි බලමු ඒකෙ මොකක්ද වෙන්නෙ කියලා..




රූපේ පෙන්නලා තියෙන විදියට මුලින්ම x කියලා integer type එකේ variable එකක් හදලා ඒකට 5 දාලා තියෙනවා.. පස්සෙ plus assignment operator එක තමයි use කරලා තියෙන්නෙ.. ඒ කියන්නෙ අපි කලින් කතා කරපු plus operator (+) එක එක්ක assignment operator (=) එක එකට ලියලා තියෙන්නෙ. මෙතනදි වෙන්නෙ සමාන ලකුණට කලින් තියෙන variable එකේ තියෙන value එක අරගෙන ඒකට සමාන ලකුණට දකුණු පැත්තෙන් තියෙන value එක මැද තියෙන operator එකට අදාළව සුළු කරලා එන උත්තරේ වම් පසින් තියෙන variable එක ඇතුළට දාන එක..
ඒ කියන්නෙ,



උඩින් දාලා තියෙන රූපේදි වගේ මෙන්න මේ x ගේ දැනට තියෙන value එකට දකුණු පසින් තියෙන value එක එකතු කරාම එන උත්තරේ ආපහු x ට දාන්න කියන එක තමයි මේ විදියට කෙටි කරලා තියෙන්නෙ.. මේ විදියට කෙටි කරලා compound assignment operator එකක් දීලා තිබුනොත් පහළ රූපෙ පෙන්නලා තියෙන විදියට පියවර දෙක වෙන් කරලා ලියා ගන්න පුරුදු වෙන්න. එතකොට වරදින්නෙ නෑ..



වෙන් කරාට පස්සෙ ලියවෙන්නෙ මෙහෙම නිසා පැහැදිලිව තේරුම් ගන්න පුළුවන්..


මේකෙදි පළවෙනි පියවර විදියට වම් පැත්තෙ තියෙන variable එකේ නමත් එක්ක සමාන ලකුණ ලියාගන්න ඕනේ.. ඊට පස්සෙ දෙවන පියවර විදියට ආපහු වම් පැත්තෙ තියෙන variable එක ලියලා operator එක ලියලා දකුණු පැත්තෙ තියෙන value එක ලියාගන්න ඕනෙ.. ඔන්න ඔහොමයි compound assignment operator එකක් තිබුනොත් ඒක තේරුම් ගන්නෙ.. දැක්කනේ වචනෙට බය හිතුනට ඇති දෙයක් නෑ.. මතක තියාගන්න මෙතනදි උදාහරණයක් විදියට plus operator (+) එක ගත්තට ඒක වෙනුවට මෙච්චර වෙලා කතා කරපු අනිත් operator එකක් දැම්මම ඒවත් වැඩ කරන්නෙ මේ විදියටමයි..


Relational Operators

relational operators කියන්නෙ මොනවා හරි දේවල් දෙකක් අතර සම්බන්ධයක් ගැන පරික්ෂා කිරීමට භාවිතා කරන operators.. අපි මුලින්ම බලමු අපි maths වලදී එහෙම use කරන relational operators මොනවද කියලා..




දැන් ඉතින් ආපහු ප්‍රශ්නයක් එනවා මේ සමහර දේවල් කොහොමද computer එකෙන් input කරගන්නෙ කියලා.. ඊටත් වඩා කට්ටියට මතක ඇති අපි maths වලදි තනි සමාන ලකුණෙන් කියන්නෙ වම් පැත්තෙ තියෙන එක දකුණු පැත්තට සමානද කියලා බලන එක වුනාට programming වලදි තනි සමාන ලකුණෙන් කියන්නෙ දකුණෙ තියෙන එක වමට දාන්න කියලා නිසා ඇත්තටම මෙහෙම ගොඩාක් relational operators input කරගන්න විදියක් නෑ.. ඒක නිසා මේවා programming වලදි use කරද්දි ඒවාට අදාළව වෙනමම සලකුණු භාවිතා කිරීම සිදු කරනවා.. දැන් අපි බලමු ඒ මොනවද කියලා..





  • කලින් අපි කතා කරා වගේ තනි සමාන ලකුණට compiler විශේෂ දෙයක් දන්න නිසා අපිට කොහේදි හරි මොනවා හරි දේවල් දෙකක් සමානද කියලා බලන්න අවශ්‍ය නම් අපි එතෙන්ට සමාන ලකුණු දෙකක් දානවා.. මතක තියාගන්න programming වලදි මොනවා හරි සමානද කියලා බලන්න ඕනෙ නම් අපි සමාන ලකුණු දෙකක් දෙන්න ඕනෙ..
  • අසමාන ලකුණ දෙන්න විදියක් නැති නිසා අසමානයි කියන එක ඉංග්‍රීසියෙන් කියවෙන විදියට (not equals) කියලා කියවෙන්න සලකුණු ලබා දෙන්න ඕනෙ.. (!=)
  • විශාල ලකුණයි කුඩා ලකුණයි ප්‍රශ්නයක් නැති නිසා ඒ දෙක එහෙමම දෙන්න පුළුවන්..
  • විශාල හෝ සමාන ලකුණෙදියි කුඩා හෝ සමාන ලකුණෙදියි ඒවා input කරන්න විදියක් නැති නිසා ඒවායෙත් ඉංග්‍රීසියෙන් කියවෙන විදියට සලකුණු ලබා දීම සිදු කරනවා.. (greater than or Equal >= ) (less than or equal <=)


Increment & Decrement

Increment එකයි Decrement එකයි කියන්නෙ තවත් විශේෂ operators 2 ක්.. දෙකේම වෙන්නේ එකම වගේ දේවල් නිසා මම එකක් කියලා දෙන්නම් අනිත් එකත් ඒ වගේමයි.. මම increment එක සලකන්නම්. Increment කියන්නෙ මොකක් හරි variable එකක නමක් එක්ක ++ කියලා ධන සලකුණු දෙකක් ලබා ගන්න එක. මෙහෙම ධන සලකුණු දෙකක් ලබා දුන්නම වෙන්නෙ ඒ දීපු variable එකේ දැනට තියෙන අගයට තවත් එකක් එකතු කරන්න කියන එකයි.. එහෙනම් ඍණ සලකුණු දෙකක් (--) තිබුනනම් ඒකෙන් කියන්නෙ ඒ දීපු variable එකේ දැනට තියෙන අගයෙන් එකක් අඩු කරන්න කියන එකයි.. මේකට තමයි decrement කියලා කියන්නෙ..

දැන් ඊළඟට කාටහරි හිතෙන්න පුළුවන් ඒ ++ හෝ -- දාන්න ඕනෙ variable එකට ඉස්සරහින්ද පස්සෙන්ද කියලා. කොහොම වුනත් ප්‍රශ්නයක් නෑ ධන ලකුණු දෙකක් ඉස්සරහින් හරි පස්සෙන් හරි තිබුනනම් ඒකෙන් කියන්නෙ variable එකේ අගයට එකක් එකතු කරන්න කියන එක, ඍණ ලකුණු දෙකක් තිබුනනම් ඒකෙන් කියන්නෙ variable එකේ අගයෙන් එකක් අඩු කරන්න කියන එක..


increment

decrement


දැන් ඊළඟට කෙනෙක්ට හිතෙන්න පුළුවන් variable name එකට කලින් operator එක දැම්මත් පස්සෙ දැම්මත් එකම නම් වෙන්නෙ ඇයි දෙකක් තියෙන්නෙ කියලා.. දෙකෙන්ම එකම දේ වුනාට ඒ දෙක භාවිතා වෙන්නෙ අවස්ථා දෙකකට..

postfix

postfix කියන්නෙ increment එක හරි decrement එක හරි use කරද්දි variable name එකට පස්සෙ operator එක දාන අවස්ථාවට.. මේකෙදි operator එක තියෙන්නෙ variable name එකට පස්සෙ නිසා variable එකේ අගය එකකින් වැඩි වුනාට මෙහෙම code එක ලියන පේළියෙදි use කරන්නෙ එහෙම වැඩි වෙන්න කලින් variable එකේ තිබුණ value එක.. තේරුනේ නෑ නේද? කමක් නෑ උදාහරණයක් අරගෙනම බලමුකො.




රූපෙ පෙන්නලා තියෙන විදියට මුලින්ම x කියලා integer variable එකක් හදලා ඒකට 5 දාලා තියෙනවා. පස්සෙ තව integer variable එකක් හදලා ඒකට y කියලා නම දීලා තියෙනවා.. පස්සෙ postfix increment එක use කරලා එන value එක y ට දාලා තියෙනවා. ඇත්තටම මේකෙදි අපිට දැන් increment වුන නිසා y ට වැටෙන්නෙ 6 කියලා හිතුනට y ට වැටෙන්නෙ 5 මයි.. 

හොදට තේරුම් ගන්න මෙතන තියෙන්නෙ increment එක වුනාට ඒකෙ postfix අවස්ථාව කියලා. ඒ කියන්නේ ඇත්තටම ධන ලකුණු දෙකට කලින් variable name එක තියෙන නිසා අගය එකකින් වැඩි වෙන්න කලින් එයාගේ තියෙන value එක y ට දාලා ඉන්නවා. ඊට පස්සෙ ධන ලකුණු දෙක තියෙන නිසා y ට x ගෙ ලඟ තියෙන value එක දාලා ඉවර වුනාට පස්සෙ තමයි xට එකක් එකතු වෙන්නෙ. ඒක නිසා yගෙ අගය 5මයි.. (මොකද x ගෙ අගය එකකින් වැඩි වෙන්න කලින් ඒ අගය y ට වැටුන නිසා)

prefix

prefix කියන්නෙ increment එක හරි decrement එක හරි use කරද්දි variable name එකට කලින් operator එක දාන අවස්ථාවට.. මේකෙදි operator එක තියෙන්නෙ variable name එකට කලින් නිසා variable එකේ අගය එකකින් වැඩි වෙලා මෙහෙම code එක ලියන පේළියෙදි use කරන්නෙ එහෙම වැඩි වුනාට පස්සෙ variable එකේ තියෙන value එක.. තේරුනේ නෑ නේද? කමක් නෑ ඒකත් උදාහරණයක් අරගෙනම බලමුකො.




මේකෙදි  prefix increment එක use කරලා එන value එක y ට දාලා තියෙන නිසා ඇත්තටම මේකෙදි අපි දැන් y ට වැටෙන්නෙ 6 කියලා හිතුවට y ට වැටෙන්නෙ 6 ම තමයි :-) .. 

හොදට තේරුම් ගන්න මෙතන තියෙන්නෙ increment එකේ prefix අවස්ථාව කියලා. ඒ කියන්නේ ඇත්තටම ධන ලකුණු දෙකට පස්සෙ variable name එක තියෙන නිසා අගය එකකින් වැඩි වෙලා තමයි එයාගේ තියෙන value එක y ට දාන්නෙ. මුලින් ධන ලකුණු දෙක තියෙන නිසා y ට x ගෙ ලඟ තියෙන value එක දාන්න කලින් තමයි xට එකක් එකතු වෙන්නෙ. ඒක නිසා y ට x ගෙ අගය දාන කොට එයාගෙ අගය දැන් 6 නිසා y ට වැටෙන්නෙත් 6 ම තමයි.. (මොකද x ගෙ අගය එකකින් වැඩි වුනාට පස්සෙ එයාගෙ අගය y ට වැටුන නිසා)


එහෙනම් අමාරුවෙන් හරි වෙලාවක් අරගෙන operators ගැන ඉවර කරන්න ලැබුනු එක ගැන මටත් සතුටුයි.. ඔයාලට මේ කරන කුප්පි වැඩසටහන තේරෙනවද කියලා අනිවාර්යෙන්ම අදහසක් තියලා යන්න අමතක කරන්න එපා. මොකද කොච්චර වැඩ තිබුනත් කට්ට කාගෙන හරි කරන වැඩෙන් කාටවත් වැඩක් ගන්න බැරිනම් මගේ මහන්සියත් අපරාදෙ කියලයි මටනම් හිතෙන්නෙ.. ඒක නිසා අනිවාර්යෙන්ම ඔයාලගෙ අදහස් මට කියන්න කියලා කියන ගමන් ආපහු ඉක්මනින්ම ඊළඟ කොටසත් එක්ක හමු වෙමු කියලා මම සමුගන්නම්..

මතුසම්බන්ධයි...

76 comments:

  1. නියමයි.හොදට තේරෙනවා.දිගටම කරගෙන යං.

    ReplyDelete
    Replies
    1. thanks macho.. මට ඕනෙ කොහොමහරි අපේ දුප්පත් ළමයින්ට තනියම ඉගෙන ගන්න පුළුවන් වෙන ගානට basic ටික (හිතන විදිය) course වලට නොයා මෙතනින්ම දෙන්න.. එතකොට උවමනාවක් තියෙන කෙනෙක්ට internet එකෙන් ඉතිරි ටික කරගෙන යන්න පුළුවන්නෙ..

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. niyamay kollo digatama ohoma karagena yamu,spelling mistake akak nisa kalin post aka remove karanna una dude,ela

      Delete
  3. supiri kollo supiri kiyala wadak naaaa

    ReplyDelete
  4. too much descriptive .. will get bored. You can address all these simple theories by one code example and it wil b vry practical . if not this is like denis ritchie's reference book .. Gud luk!

    ReplyDelete
    Replies
    1. මම නම් කියන්නෙ මේ ලියල තියෙන ක්‍රමය හොදයි.මුකුත්ම දන්නෙ නැති කෙනෙකුට වුනත් තේරුම් ගන්න පුලුවන්

      Delete
  5. ඔබතුමන්ගේ මේ සත්ක්‍රියාව ඉතා අගේ කොට සලකමි

    ReplyDelete
  6. Can you add about logical operators?

    ReplyDelete
  7. අනේ අයියේ ඉක්මනට උත්තරයක් ඕනේ... postfix increment/decrement දානකොට ඔයා කියනවා y ට එන්නේ 5මයි කියල. අපි for loop ekak ලියන්නේ මෙහෙමනේ.... for(x = 0 ; x < 10 ; x++) කියලනේ.... මෙතන postfix oporator 1 use වෙන හින්ද x වැඩි වෙන්නේ කොහොමද?

    ReplyDelete
    Replies
    1. uda kiyala tiyenawa macho.. postfix unat prefix unat wenne ekakin wadi wena ekama tamai.. wenasak wenne run wena line ekema e value eka use karaddi witarai..

      Delete
  8. amboo operator scene ekath supiriyatama click una machan...thanks wewa sahoo!!!

    ReplyDelete
  9. Wede goda ayye ela ela. Oka therenne nethuwa thibbe. Den hari

    ReplyDelete
  10. Ethakota "Bitwise Operators" kiyanne monawadha ?

    ReplyDelete
  11. niyamai digatama karagena yamu..obata jaya..

    ReplyDelete
  12. සුපිරි.... යේ පටන් ගන්න කොල්ලෝ

    ReplyDelete
  13. Supiri, loku udawak , mn campus eke programming epa wela hitiye, dan goda, issaraharatath ohoma karanna yanna , loku udawak , gdak pin

    ReplyDelete
  14. Great Work....! Wish you all the best.

    ReplyDelete
  15. Thank you so much. sirawatama therenawa kiyala dena de. thanks bro

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. wow... thanks a lot. previous comment was deleted bcz of spelling mistakes..

      Delete
  17. maru aiya.. hodata therum ganna puluwn vdihta thyenwa..

    ReplyDelete
  18. thq thq ayye.....gdk watinawa mewa elakiri

    ReplyDelete
  19. Super Brother , good job

    ReplyDelete
  20. godak hodata teruna ayiye thnkyou.

    ReplyDelete
  21. ගොඩක් ස්තූතියි....!! ��

    ReplyDelete
  22. Thank you soo much!��❤️

    ReplyDelete
  23. me vidiyata pehedili karanakota igena nogena inne kohomada...?supiri...godak thanks.........

    ReplyDelete
  24. supiri.. hodata teruna. Thanks...

    ReplyDelete
  25. Superb...godak wadagath apita

    ReplyDelete
  26. Nice Dude! Really helpful blog. Thank you!

    ReplyDelete
  27. thank you postfix frefix den thama hariyatama therune

    ReplyDelete
  28. Thank u bn..meeka supirima wedak.umbta godak pin

    ReplyDelete
  29. nodanna deewal godak operator gana igena gaththa. godak aya karana widiya kiyala dunnata wenne mokakda kiyala hariyatama kiyala denne naa eeth aiya okkoma mula idamma kiyala denawa amathaka nowennama

    ReplyDelete
  30. hodata theruna. godak pin.

    ReplyDelete
  31. Thama igena gannawa meken pin

    ReplyDelete
  32. Hodtm terenawa maru.

    ReplyDelete
  33. Thank you so much..

    ReplyDelete

Contact Form

Name

Email *

Message *