ඔන්න අද පාඩම පටන් ගන්න කලින් දැම්ම එක කියවලා හිටියනම් තමයි හොද..

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

Arithmetic Operators

operators.png

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

operator Use.png

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

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

Compound Assignment Operators

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

compound assignment.png

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

compound assignment (1).png

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

technique.png

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

 

compound assignment (1).png

මේකෙදි පළවෙනි පියවර විදියට වම් පැත්තෙ තියෙන variable එකේ නමත් එක්ක සමාන ලකුණ ලියාගන්න ඕනේ.. ඊට පස්සෙ දෙවන පියවර විදියට ආපහු වම් පැත්තෙ තියෙන variable එක ලියලා operator එක ලියලා දකුණු පැත්තෙ තියෙන value එක ලියාගන්න ඕනෙ.. ඔන්න ඔහොමයි compound assignment operator එකක් තිබුනොත් ඒක තේරුම් ගන්නෙ.. දැක්කනේ වචනෙට බය හිතුනට ඇති දෙයක් නෑ.. මතක තියාගන්න මෙතනදි උදාහරණයක් විදියට plus operator (+) එක ගත්තට ඒක වෙනුවට මෙච්චර වෙලා කතා කරපු අනිත් operator එකක් දැම්මම ඒවත් වැඩ කරන්නෙ මේ විදියටමයි..
Relational Operators
relational operators කියන්නෙ මොනවා හරි දේවල් දෙකක් අතර සම්බන්ධයක් ගැන පරික්ෂා කිරීමට භාවිතා කරන operators.. අපි මුලින්ම බලමු අපි maths වලදී එහෙම use කරන relational operators මොනවද කියලා..
relational1.png
දැන් ඉතින් ආපහු ප්‍රශ්නයක් එනවා මේ සමහර දේවල් කොහොමද computer එකෙන් input කරගන්නෙ කියලා.. ඊටත් වඩා කට්ටියට මතක ඇති අපි maths වලදි තනි සමාන ලකුණෙන් කියන්නෙ වම් පැත්තෙ තියෙන එක දකුණු පැත්තට සමානද කියලා බලන එක වුනාට programming වලදි තනි සමාන ලකුණෙන් කියන්නෙ දකුණෙ තියෙන එක වමට දාන්න කියලා නිසා ඇත්තටම මෙහෙම ගොඩාක් relational operators input කරගන්න විදියක් නෑ.. ඒක නිසා මේවා programming වලදි use කරද්දි ඒවාට අදාළව වෙනමම සලකුණු භාවිතා කිරීම සිදු කරනවා.. දැන් අපි බලමු ඒ මොනවද කියලා..
relational1.png
  • කලින් අපි කතා කරා වගේ තනි සමාන ලකුණට compiler විශේෂ දෙයක් දන්න නිසා අපිට කොහේදි හරි මොනවා හරි දේවල් දෙකක් සමානද කියලා බලන්න අවශ්‍ය නම් අපි එතෙන්ට සමාන ලකුණු දෙකක් දානවා.. මතක තියාගන්න programming වලදි මොනවා හරි සමානද කියලා බලන්න ඕනෙ නම් අපි සමාන ලකුණු දෙකක් දෙන්න ඕනෙ..
  • අසමාන ලකුණ දෙන්න විදියක් නැති නිසා අසමානයි කියන එක ඉංග්‍රීසියෙන් කියවෙන විදියට (not equals) කියලා කියවෙන්න සලකුණු ලබා දෙන්න ඕනෙ.. (!=)
  • විශාල ලකුණයි කුඩා ලකුණයි ප්‍රශ්නයක් නැති නිසා ඒ දෙක එහෙමම දෙන්න පුළුවන්..
  • විශාල හෝ සමාන ලකුණෙදියි කුඩා හෝ සමාන ලකුණෙදියි ඒවා input කරන්න විදියක් නැති නිසා ඒවායෙත් ඉංග්‍රීසියෙන් කියවෙන විදියට සලකුණු ලබා දීම සිදු කරනවා.. (greater than or Equal >= ) (less than or equal <=)

Increment & Decrements

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

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

increment.png

Increment

decrement.png

Decrements

දැන් ඊළඟට කෙනෙක්ට හිතෙන්න පුළුවන් variable name එකට කලින් operator එක දැම්මත් පස්සෙ දැම්මත් එකම නම් වෙන්නෙ ඇයි දෙකක් තියෙන්නෙ කියලා.. දෙකෙන්ම එකම දේ වුනාට ඒ දෙක භාවිතා වෙන්නෙ අවස්ථා දෙකකට..
Postfix
Postfix කියන්නෙ increment එක හරි decrement එක හරි use කරද්දි variable name එකට පස්සෙ operator එක දාන අවස්ථාවට.. මේකෙදි operator එක තියෙන්නෙ variable name එකට පස්සෙ නිසා variable එකේ අගය එකකින් වැඩි වුනාට මෙහෙම code එක ලියන පේළියෙදි use කරන්නෙ එහෙම වැඩි වෙන්න කලින් variable එකේ තිබුණ value එක.. තේරුනේ නෑ නේද? කමක් නෑ උදාහරණයක් අරගෙනම බලමුකො.
postfix.png
රූපෙ පෙන්නලා තියෙන විදියට මුලින්ම 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 එක.. තේරුනේ නෑ නේද? කමක් නෑ ඒකත් උදාහරණයක් අරගෙනම බලමුකො.

postfix (1).png
මේකෙදි  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 ගැන ඉවර කරන්න ලැබුනු එක ගැන මටත් සතුටුයි.. ඔයාලට මේ කරන කුප්පි වැඩසටහන තේරෙනවද කියලා අනිවාර්යෙන්ම අදහසක් තියලා යන්න අමතක කරන්න එපා. මොකද කොච්චර වැඩ තිබුනත් කට්ට කාගෙන හරි කරන වැඩෙන් කාටවත් වැඩක් ගන්න බැරිනම් මගේ මහන්සියත් අපරාදෙ කියලයි මටනම් හිතෙන්නෙ.. ඒක නිසා අනිවාර්යෙන්ම ඔයාලගෙ අදහස් මට කියන්න කියලා කියන ගමන් ආපහු ඉක්මනින්ම ඊළඟ කොටසත් එක්ක හමු වෙමු කියලා මම සමුගන්නම්..

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s