Programming සිව්වන කොටස

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

දැන් කට්ටියට 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

Programming පළමු පාඩම

Campus වලට ගියාම ගොඩාක් අය මට කියලා තියෙන දෙයක් තමයි Software හදන්න අමාරුයි කියන එක. ඉතින් ඒක නිසාම තමයි මම කල්පනා කලේ මම දන්න පොඩි දෙයින් එහෙම අමාරු කෙනෙක්ට පොඩි හරි help එකක් දෙන්න ඕනෙ කියලා. ඉතින් ඔන්න දැන් කියන්න එපා අපිට ඕනේ C, Java, C++ කියලා. මම ඒ හැම දේකටම ඕනෙ වෙන basic ටික කියලා දෙන්නම්. පස්සෙ කට්ටියට තේරෙනවා කියලා දැනුනොත්  C යි Java යිත් දන්න විදියට එතනින් එහාට කියලා දෙන්නම්. මම ගොඩක්ම උත්සාහ කරන්නෙ theory වලට වඩා මම තේරුම් ගත්තු විදියට හිතන විදිය පුරුදු කරන්න. මොකද theory වලින් කවදාවත් program එකක් ලියන්න බෑ. අමාරුම දේ program එක ලියනවාට වඩා ඒක ලියන්නෙ කොහොමද කියලා තේරුම් ගන්න එක. ඉතින් අන්න එ්ක නිසා අපි කොහොම හරි හිතන විදිය පුරුදු වෙමු.

Continue reading “Programming පළමු පාඩම”

Programming තෙවන පාඩම

හැමදාම වගේ කුප්පියෙ ඊළඟ කොටස ඉක්මනට දෙන්න හිතාගෙන හිටියත් වැඩ ගොඩක් මැද හිරවෙලා ඉන්න නිසා වෙලාවක් වෙන් කරගන්න වෙන්නෙම නෑ.. කට්ටිය ඉතිං අවුල් ගහන්න එපා පුළුවන් විදියට කොහොමහරි අපි එකතු වෙලා වැඩේ කරමුකො.. ඔන්න එහෙනම් ලැබුන මේ වෙලාවෙවත් වටේ යන්නෙ නැතුව කෙළින්ම වැඩේට බහිමු. හැමෝටම කලින් කරපුවා මතක ඇති කියලා මම හිතනවා, වැරදිලා හරි කෙනෙකුට කලින් කරපුවා බලාගන්න බැරිවුනා නම් මෙතනින් ගිහිල්ලා ඒ ටිකත් බලලම එන්නකො..
අපි අවසානෙටම කරේ C language එක use කරලා අපිට අවශ්‍ය දෙයක් print කරගන්න විදියනේ, දැන් එහෙනම් අපි ඕනෑම programming language එකකට පොදු theory ටික ඉගෙන ගන්න පටන් ගනිමු. මුලින්ම මම programming කිව්වොත් නිතරම අහන්න ලැබෙන variable එකක් කියන්නෙ මොකක්ද කියලා කියලා දෙන්නම්. මතක තියාගන්න ඕනම දෙයක් ඉගෙන ගන්න කොට ඒක අවශ්‍ය වෙන්නෙ මොන වගේ වෙලාවල් වලටද කියලත් ඉගෙන ගන්න. එතකොට ඒක කවදාවත් අමතක වෙන එකක් නෑ.. එහෙනම් වැඩේට බහිමුකො..
variable.jpg
Variable එකක් කියන්නෙ RAM එකේ වෙන් කරගන්න Memory Space එකකට. දැන් ඉතිං ප්‍රශ්නෙ තියෙන්නෙ එහෙම RAM එකෙන් Memory Space එකක් වෙන් කරගන්න අවශ්‍ය වෙන්නෙ මොකටද කියලා. ඇත්තටම අපි ලියන program වලදි අපිට කිසියම් ගණනයක් කරන්න අවශ්‍ය වුනොත් ඒකට අදාළව එන උත්තරේ හරි ලබා ගත්ත විශේෂ අගයක් හරි මොකක් හරි දෙයක් මතක තියාගන්න ඕන වෙනවානෙ.. ඉතිං අපේ program එකට අදාළව මොනවා හරි මතක තියාගන්න ඕනෙනම් අපි අපේ program එක වෙනුවෙන් ඒ දේවල් මතක තියාගන්න තැනක් හදා ගන්න ඕනෙ. අන්න ඒ නිසා තමයි අපිට variables අවශ්‍ය වෙන්නෙ..

int x ;

<Data Type> <Variable Name>;
පෙන්නලා තියෙන විදියට variable එකක් හදනකොට ප්‍රධාන කොටස් දෙකක් තියෙනවා. එකක් තමයි data type එක අනික variable name එක. මම හැමතිස්සෙම කියනවා වගේ අපි බලමු මෙහෙම කොටස් දෙකක් අවශ්‍ය වෙලා තියෙන්නෙ මොකටද කියලා. එතකොට හැමෝටම variable එකක් කියන්නෙ මොකක්ද කියලා වගේම variable එකක් හදාගන්නෙ කොහොමද කියලත් කවදාවත් අමතක වෙන එකක් නෑ.
මුලින්ම මම කියන්නම් මේකට නමක් අවශ්‍ය වෙන්නෙ ඇයි කියලා. හිතලා බලන්න අපි කාට හරි කියනවා අපි ඉන්නෙ අහවල් ගමේ කියලා. හැබැයි අපේ address එක එයා දන්නෙ නැත්නම් අපි ඒ ගමේ ඉන්නවා කියලා sure වුනත් එයාට අපිව හමු වෙන්න අපේ ගෙදර එන්න බැරි වෙනවානේ.. අන්න ඒ වගේ අපි අපේ program එකේ data එකක් ram එකේ save කරලා පස්සෙ ඒ data එක ram එකේ තියෙනවා කියලා sure එකටම දැනගෙන හිටියත් ඒක හරියටම කොහේද තියෙන්නෙ කියලා අපි දන්නැති නිසා ඒ data එක අපිට ආපහු use කරන්න බැරි වෙනවා. ඉතිං එහෙම use කරන්න බැරි වෙනවා නම් data එකක් save කරලා තියා ගන්න එකෙන් වැඩක් නැති වෙන නිසා තමයි ගෙදරකට address එකක් දුන්නොත් ඒ ගෙදර හොයා ගන්න පුළුවන් නිසා එහෙම address එකක් දීලා තියෙනවා වගේ අපේ variable වලටත් නමක් දීලා තියෙන්නෙ. මතක තියාගන්න මේ නම විදියට අපිට කැමති දෙයක් දෙන්න පුළුවන්..
දැන් variable එකක් හදද්දි නමක් දෙන්නම ඕන හේතුව නම් තේරෙනවා. හැබැයි data type එකක් කියලා එකක් නොතිබුනත් data එක හොයා ගන්න බැරිද කියලා කෙනෙක්ට හිතෙන්න පුළුවන්. ඇත්තටම මේ විදියට data type එක දෙන්න හේතුව මොකක්ද? මුලින්ම බලමු data type එකක් කියන්නෙ මොකක්ද කියලා. ඇත්තටම data type එකක් කියන්නෙ කිසියම් variable එකක් සලකද්දි ඒ variable එක, ඒ කියන්නෙ ram එකේ වෙන් කරගත්ත memory space එක ඇතුලෙ store කරන data එක මොන වර්ගයේද කියලා දැන ගන්න තියෙන මිනුමක් වගේ දෙයක්. (දැනට අපි integer data type එක විතරක් සලකමු. ඒක represent කරන්නෙ int කියලා)
ඉතින් දැන් කෙනෙක්ට හිතෙන්න පුළුවන් ඇයි එහෙම store කරන data එකේ වර්ගෙ ගැන සැලකිලිමත් වෙන්න ඕනෙ කියලා. ඇත්තටම කට්ටියට මතක ඇතිනෙ අපිට තේරෙන භාෂාවෙන් ලියන program එක computer එකට තේරෙන භාෂාවට හරවන compiler අපි ලියන program එකේ වැරදි තියේද කියලා බලලා එහෙම වැරැද්දක් නැත්නම්නෙ compile කරන්නෙ. ඉතින් ටිකක් හිතලා බැලුවොතින් එයා run කරන්නෙ නැතුව, ඒ කියන්නෙ ඇත්තටම ram එකේ variable එකක් හදලා ඒකට data දාන්නෙ නැතුව වැරදි තියේද කියලා බලන්න මොකක් හරි ක්‍රමයක් use කරනවා නේද? compiler data type එක use කරන්නෙ අන්න ඒ දේ කරන්න තමයි. අපි variable එකක් හදන කොට දෙන data type එක ඒ නමට අදාළව compiler මතක තියාගන්නවා. එතකොට අපි ඒ variable එකට data එකක් දාන්න හදන කොට හරි ගන්න හදන කොට හරි ඒ දේ practically කරන්න පුළුවන්ද කියලා compiler බලලා තමයි අපේ program එක compile කරන එක හරි error එකක් දෙන එක හරි කරන්නෙ.
උදාහරණයක් විදියට මම ගන්නම් x කියලා නම් කරපු ඉලක්කම් තියාගන්න පුළුවන් variable එකක්. මම දැන් ඒකට මගේ program එකේදි වචනයක් store කරන්න යනවා. එතකොට compiler බලනවා x ගෙ data type එක මොකක්ද කියලා ඇත්තටම x කියන්නෙ ඉලක්කම් දාන්න හදපු variable එකක් නිසා එයා තීරණය කරනවා අපි කරන්න හදපු වැඩේ වැරදියි, ඒක computer එකට කරන්න බෑ. ඒක නිසා මම error එකක් දෙන්න ඕනෙ කියලා. අන්න ඒ හේතුව නිසා තමයි data type එකක් ගොඩක් වැදගත් වෙන්නෙ..
දැන් අපි බලමු කොහොමද variable එකකට data එකක් දාන්නෙ කියලා |

int x;

x= 5;

රූපේ පෙන්නලා තියෙන විදියට මුලින්ම x කියන නමින් integer data type එකේ variable එකක් හදලා තියෙනවා. පස්සෙ ඒ x කියන variable එකට 5 assign කරන්න කියලා කියලා තියෙනවා. ඇත්තටම අපිට එහෙම variable එකකට data එකක් දාන්න ඕනනම් කරන්න තියෙන්නෙ මුලින්ම ඒ variable එකේ නම දීලා ඒකට ඉස්සරහින් සමාන ලකුණක් ( = ) දාලා variable එක හදපු data type එකේම data එකක් දීලා statement එක ඉවර වුන බව පෙන්වන්න “;”(semicolon) එකක් දෙන්න විතරයි.
මෙතනදි විශේෂයෙන්ම මතක තියාගන්න තියෙන්නෙ programming වලදි තනි = ලකුණක් තිබුනොත් ඒකෙ තේරුම maths වලදි වගේ සමාන ලකුණට දකුණු පසින් තියෙන දේ සමාන ලකුණට වම් පසින් තියෙන දේට සමානයි කියන එක නෙවෙයි, සමාන ලකුණට දකුණු පසින් තියෙන data එක සමාන ලකුණට වම් පසින් දීලා තියෙන නමට අදාළ variable එක ඇතුළට දාන්න කියන එකයි. සරලව කිව්වොත් තනි = ලකුණෙන් කියවෙන්නෙ දකුණෙ තියෙන එක වමට දාන්න කියන එකයි.. මෙන්න මේ පොඩි දේ අමතක කරලා ගොඩක් අය programs වරද්ද ගන්නවා. ඒක නිසා ඔන්න අමතක කරන්න එපා…
ඔන්න එහෙනම් මට තේරෙන විදියට ඕනම programming language එකකට පොදු variable කියන එක ගැන පුළුවන් උපරිමෙන්ම ඔයාලටත් ලබා දුන්නා.. හැමදාම කියනවා වගේ කිසියම් ගැටළුවක් හරි අදහසක් හරි තියෙනවානම් comment එකක් විදියට දාන්න පුළුවන් කියලා මතක් කරමින් මම එහෙනම් අදට සමු ගන්නම්.. ඉක්මනටම ඊළඟ කොටසත් එක්ක හමුවෙමු එහෙනම්..

Programming දෙවන පාඩම

දැන් එහෙනම් කට්ටිය C Program එකක් ලියන්න පුළුවන් වෙන විදියට machine එක හදාගෙන ඇති කියලා හිතා ගෙන මම වැඩේ පටන් ගන්නම්.

මුලින්ම මම කැමතියි computer program එකක් කියන්නෙ මොකක්ද කියලා සහ programming language එකක් අපිට අවශ්‍ය වෙන්නෙ මොකටද කියලා දැනගන්න. සරලව කිව්වොතින් අපිට වගේ computer එකට දෙයක් හිතලා කරන්න බැරි නිසා එයාට කියලා අපිට මොකක් හරි දෙයක් කරගන්න ඕන නම් අපිට ඒක කරන විදිය මුලින්ම එයාට කියලා දෙන්න වෙනවා. මෙහෙම එයාට කියලා දෙන්න ලියන උපදෙස් (Instructions) වල එකතුවට තමයි Computer Program එකක් කියලා කියන්නෙ.

ඇත්තටම computer එකට අපිට තේරෙන සිංහල, ඉංග්‍රීසි, දෙමළ වගේ භාෂාවන් තේරෙන්නෙ නැහැනේ.. ඒ වගේම computer එකට තේරෙන Machine Language එක අපිට තේරෙන්නෙත් නැහැනේ.. ඉතින් ඔන්න ප්‍රශ්නයක් මතු වෙනවා දැන් අපි කොහොමද එයාට එ් කරන විදිය කියලා දෙන්නෙ කියලා. අන්න ඒ ප්‍රශ්නෙට විසඳුමක් විදියට තමයි Programming Languages හදලා තියෙන්නෙ. මේ Programming Languages හදලා තියෙන්නෙ අපිට තේරෙන භාෂාවට (English) ගොඩක් සමීප වෙන විදියට නිසා අපිට මේවා ඉගෙන ගන්න එච්චර අමාරු වෙන්නෙත් නෑ.. දැන් මේ Programming Language එක computer එක සහ අපි අතර අතරමැදියෙක් විදියට ඉඳගෙන අපිට computer program එකක් ලියන්න අවස්ථාව හදලා දෙනවා.

ඉතින් දැන් කෙනෙක්ට හිතෙන්න පුළුවන් computer එකට තේරෙන්නෙ Machine Language එක විතරක් නම් මෙහෙම අපි Programming Language එකක් use කරලා ලියන Program එක එයා කොහොමද තේරුම් ගන්නෙ කියලා. ඇත්තටම මෙහෙම හිතුනනම් ගොඩක් හොඳයි. (දැන් ඉතින් හිතුනෙ නැති අය එහෙම හිතුනෙ නැති එකට අවුල් ගහන්න එපා. එහෙම හිතෙන්න ඕනෙත් නෑ හොඳද) ඇත්තම කිව්වොත් Programming Languages වල compiler කියලා කෙනෙක් ඉන්නවා. මෙයා තමයි අපිට තේරෙන විදියට programming language එකක් use කරලා translate කරලා දෙන්නෙ. ඉතින් ඒ කියන්නෙ programming language එකක තියෙන ප්‍රධානම දෙයක් තමයි compiler කියන්නෙ. මොකද අපිට තේරෙන භාෂාවෙන් ලියන program එක එයා computer එකට තේරෙන භාෂාවට හරවලා දෙන්නෙ නැතිනම් අපිට program එකක් ලියන්න බැරි වෙනවානෙ..

දැන් කට්ටියට program එකක් කියන්නෙ මොකක්ද compiler කියන්නෙ මොකක්ද programming language එකකින් මොකක්ද කරන්නෙ කියලා idea එකක් තියෙන නිසා අපි කෙලින්ම වැඩේට බහිමු. මුලින්ම අපි බලමු C වලින් program එකක් ලියන කොට අනිවාර්යෙන්ම ලියවෙන්න ඕන දේවල් මොනවාද කියලා.
ඊට කලින් Code Blocks IDE එක use කරලා program එකක් ලියන්න background එක හදා ගන්න ඕන. එ්කට කරන්න තියෙන්නෙ යටින් දාලා තියෙන රූපෙ විදියට file මෙනු එකේ new කියන එකට ගිහින් Empty file කියන එක click කරලා අළුතින් file එකක් ආවම CTRL+ S press කරලා එන window එකේ කැමති නමක් අවසානයට “.c” කියලා දාලා save කර ගන්න එක විතරයි. උදාහරණයක් විදියට මම නම විදියට firstProgram කියලා දාලා save කරනවනම් එ්ක එන්න ඕනෙ firstProgram.c කියලා.

NewFile.png

දැන් අපිට මේ file එකේ අපේ C program එක ලියන්න පුළුවන්. එහෙම C program එකක් ලියද්දි හැම එකකම ලියවෙන්නෙ එකම විදියට.. ඉතින් අපි මුලින්ම අන්න ඒ ආකෘතිය කොහොමද කියලා බලමු.

structure.png

උඩ රූපෙ පේන විදියට මුලින්ම #include<stdio.h> කියලා ගහන්නම ඕනෙ. මේවායේ තේරුම් දැන්ම ඕනෙ නෑ. මතක තියාගන්න C program එකක් ගහන්න කලින් මේක අනිවාර්යෙන්ම ලියවෙන්න ඕනෙ කියලා. ඊට පස්සෙ main() කියලා ලියන්න ඕන. program එක ලියවෙන්නේ මෙන්න මේ main() කියන function එක ඇතුලෙ. මතක තියා ගන්න ගොඩක් programming languages වල මොකක් හරි දෙයක් යටතේ coding තියෙනවා නම් එ්වා  { }  (curly braces) ඇතුලෙ තමයි ලියන්නෙ. දැන් අපි කලින් කිව්වා වගේ main() කියන එක යටතේ අනෙක් coding ලියන නිසා තමයි main() කියලා ලියපු තැනින් “{” එකක් දාලා පටන් අරගෙන codes ඉවර වුනාට පස්සෙ “}” දාලා ඉවර ක‍රන්නෙ.

මේ C Program Structure එක හොඳට ඔලුවට ගන්න. අනිවාර්යෙන්ම මේ ටික ලියවුනේ නැතිනම් අපේ program එකේ error එකක් එනවා. දැන් මම කියලා දෙන්නම් අපිට ඕන දෙයක් කොහොමද program එකකදි print කරන්න දෙන්නෙ කියලා. ඒකට පහතින් පේන රූපෙ විදියට C වල function එකක් දීලා තියෙනවා printf() කියලා.

#include<stdio.h>
main()
       {
         printf("Hello World");
       }

මේ printf() කියන එක අමුතුවෙන් මතක තියාගන්න ඕන වෙන්නෙ නෑ. මොකද අපිට print කරන්න ඕන වුනාම මේක දාන නිසා කොහොමත් print කියන එක අමතක වෙන්නෙ නෑ. ඊට අමතරව මේක function එකක් නිසා තමයි අගට f අකුරක් එන්නෙ.. ඔන්න එහෙනම් දැන් මේක කාටවත් අමතක වෙන්න බෑ හොඳද.. print කියන එක නිසා print කියන කොටසත් function කියන එක නිසා f අකුරත් ඇවිල්ලා තමයි printf කියන function එකට නම දීලා තියෙන්නෙ. ගොඩක් programming languages වල function එකක් හඳුනා ගන්න පුළුවන් ඒවායේ අගට () (වරහන්) දාලා තියෙන නිසා. ඒ කියන්නෙ function එකක අනිවාර්යෙන්ම () තියෙන නිසා දැන්නම් කාටවත් printf() කියන function එක අමුතුවෙන් කට පාඩම් කරගන්න ඕන වෙන එකක් නෑ කියලා හිතනවා. දැන් කාටහරි හිතෙන්න පුළුවන් අපිට ලියන්න ඕන දේ කොහෙද ලියන්නෙ කියලා. මේ printf() කියන function එකේ වරහන ඇතුලෙ ” ” (double quota) දාලා ඒක ඇතුලෙ තමයි අපිට print කරන්න ඕන දේ ලියන්න ඕන.. දැන් කට්ටියට පේනවා ඇති උඩ රූපෙ තියෙන program එකේ “Hello World” කියලා තමයි print වෙන්නෙ කියලා..

මේකෙදි මතක තියාගන්න අපි double quota (” “) ඇතුලෙ ලියන හැම දෙයක්ම ඒ විදියටම මෙයා print කරනවා. ඒ කියන්නෙ අපි space තිව්වොත් එයා ඒ space එකත් එහෙමම තියලා තමයි print කරන්නෙ. ඉතින් අපිට මෙන්න මේක නම් ගොඩක් වටිනවා. මොකද අපිට අවශ්‍ය දේවල් අවශ්‍ය විදියටම එහාට මෙහාට දාලා print කරන්න මේක ගොඩක් වටිනවා. ඊට අමතරව කියන්න ඕන වැදගත්ම දෙයක් තමයි අපිට අළුතින් line එකකට යන්න ඕන වුනොතින් කරන්න තියෙන්නේ අළුත් line එකට යන්න ඕන තැනදි \n කියලා type කරන එක විතරයි.

#include<stdio.h>
main()
{
   printf("Line 01 \nLine 02");
}

මේකෙදි Line one කියලා print වෙලා අළුත් line එකක Line Two කියලා print වෙන්න ඕන නිසා තමයි \n කියන එක Line one කියන එක ඉවර වුන තැනින් ලියලා තියෙන්නෙ..

ගොඩක් programming languages වල මොකක් හරි code line එකක් ඉවර වුනාට පස්සෙ ඒක ඉවර වුන තැනින් ; (semicolon) එකක් තියන්න ඕන. එහෙම නැතිනම් කොච්චර හොඳට program එකක් ලිව්වත් එක line එකක හරි semicolon දාලා නැතිනම් මුළු program එකම run වෙන්නෙ නෑ error එකක් එනවා. ඒකට හේතුව තමයි අපි ලියන මේ program එක computer එකට තේරෙන භාෂාවට හරවන compiler ට අපි මේ ලස්සනට enter කර කර space තිය තියා ලියන program එකේ ඔක්කොම space අයින් වෙලා එකම line එකක් වගේ තමයි එයාට පේන්නෙ.. ඉතින් එතකොට එයාට අළුත් code statement එකක් පටන් ගත්තා කියලා දැනගන්න බැරි නිසා එයාට කියලා තියෙන්නෙ අපි එකක් ඉවර වෙන තැනින් තමයි semicolon එක තියන්නෙ ඔයාට එහෙම semicolon එකක් අහු වෙනකන්ම එක statement එකක් විදියට ගන්න කියලා. දැන් අපි බලමුකො අපිට පේන විදියයි compiler ට code එක පේන විදියයි අතරෙ කොච්චර ලොකු වෙනසක් තියේද කියලා..

අපිට පේන විදිය                                                        compiler එකට පේන විදිය

#include<stdio.h>                         #include<stdio.h>
main()                                    main(){printf("Line 01\n"); 
{                                         printf("Line 02\n");
printf("Line 01\n");                      printf("Line 02\n");}
printf("Line 02\n");                      
printf("Line 03\n");
}

දැන් කට්ටියට පේනවා ඇති අපි එක semicolon එකක් අතෑරියොත් අහිංසක compiler කොච්චර අමාරුවක වැටෙනවද කියලා. ඒක නිසාම තමයි එක semicolon එකක් අතෑරුන ගමන් error එකක් එන්නෙත්. ඔන්න එහෙනම් අමතක කරන්න එපා මොකක් හරි statement එකක් ලියපු ගමන්ම අවසානයට semicolon එකක් මතක ඇතුවම දාන්න.
එහෙනම් අද දවසට මම වැඩේ නතර කරනවා. දැන් මට තේරෙන විදියට අවශ්‍ය මූලිකම ටික හිතන විදිය කියලා දුන්න නිසා ඊළඟ කොටසෙ ඉඳන් මීට වඩා ඉක්මනට අපිට කරන්න පුළුවන් වෙයි. මතක තියාගන්න programming කට පාඩම් කරන්න එපා වෙන දේ තේරුම් අරගන්න. එතකොට ඔයාලට programming කියන එක ආස හිතෙන සරල දෙයක් වෙයි.. ඔයාලගෙ අදහස් මට කියන්න. නොතේරෙන දෙයක් තියෙනවනම් දෙපාරක් හිතන්නෙ නැතුව අහන්න. එහෙනම් ඉක්මනටම නැවත හමුවෙමු.
මට Code Blocks වල program එකක් ලියලා run කරන විදිය කියලා දෙන්න අමතක වුනානෙ.. හරිම සරලයි කරන්න තියෙන්නෙ program එක ලියලා යටින් දාලා තියෙන රූපෙ විදියට සලකුණ උඩ click කරන්න විතරයි. එතකොට program එක compile වෙලා run වෙනවා.

run.png