ක්රමලේඛනයට (Coding) පිවිසෙමු!
පසුගිය මොඩියුල පහේදීම, අපි මෘදුකාංගයක් නිර්මාණය කිරීමේදී ඊට පිටුපසින් ඇති න්යාය, සැලසුම්කරණය සහ කළමනාකරණය පිළිබඳව ඉගෙන ගත්තෙමු. දැන්, එම සියලු සැලසුම් යථාර්ථයක් බවට පත් කරන, එනම් පරිගණකයට උපදෙස් ලබා දෙන ක්රියාවලිය වන ක්රමලේඛනය (Programming) වෙත පිවිසීමට කාලයයි.
සරලවම කිවහොත්, ක්රමලේඛනය යනු පරිගණකයට තේරුම් ගත හැකි භාෂාවක් භාවිතයෙන්, යම්කිසි කාර්යයක් ඉටු කර ගැනීම සඳහා පියවරෙන් පියවර උපදෙස් මාලාවක් ලබා දීමයි. මෙය හරියට රසවත් ආහාරයක් පිළියෙල කිරීම සඳහා වට්ටෝරුවක් ලිවීම වැනිය. සෑම පියවරක්ම නිවැරදිව, නිශ්චිතව සහ නිසි පිළිවෙලට තිබීම අත්යවශ්ය වේ. Java, Python, JavaScript යනු එම වට්ටෝරුව ලිවීමට අප භාවිතා කරන විවිධ භාෂාවන්ය. නමුත්, ඔබ කුමන භාෂාවක් ඉගෙන ගත්තත්, ඒ සෑම භාෂාවකටම පොදු වූ මූලික සංකල්ප කිහිපයක් ඇත. මෙම මොඩියුලයේදී අපි එම විශ්වීය ගොඩනැගුම් කොටස් (universal building blocks) පිළිබඳව ඉගෙන ගනිමු.
ප්රධාන ක්රමලේඛන සංකල්ප
1. විචල්යයන් (Variables)
විචල්යයක් යනු දත්තයක් (information) තාවකාලිකව ගබඩා කර තැබීම සඳහා අප භාවිතා කරන, නමක් සහිත බහාලුමකි (container). එහි අගය වැඩසටහන ක්රියාත්මක වන විට වෙනස් විය හැක. මෙය හරියට ඔබ යම් දෙයක් දමා තැබීමට භාවිතා කරන, ලේබලයක් ගැසූ පෙට්ටියක් වැනිය. ලේබලය විචල්යයේ නම වන අතර, පෙට්ටිය ඇතුළේ ඇති දෙය එහි අගයයි.
userName = "Kamal Perera"(මෙහිuserNameයනු විචල්යයේ නමයි,"Kamal Perera"යනු එහි අගයයි)userAge = 30(මෙහිuserAgeයනු විචල්යයේ නමයි,30යනු එහි අගයයි)
2. පාලන ව්යුහයන් (Control Structures)
වැඩසටහනක උපදෙස් ක්රියාත්මක වන අනුපිළිවෙල පාලනය කිරීමට මේවා භාවිතා වේ. සෑම විටම උපදෙස් එකින් එක ක්රියාත්මක නොවේ; සමහර විට අපට තීරණ ගැනීමට හෝ යම් දෙයක් නැවත නැවත කිරීමට සිදුවේ.
- කොන්දේසිගත ප්රකාශ (Conditional Statements - If/Else): යම්කිසි කොන්දේසියක් සත්ය නම් එක් දෙයක්ද, අසත්ය නම් තවත් දෙයක්ද කිරීමට උපදෙස් දීමයි.
උදාහරණය: "වෙලාව සවස 6 ට වඩා වැඩි නම් (IF), ලයිට් දමන්න. නැතිනම් (ELSE), ලයිට් නිවා දමන්න." - පුනරාවර්තන (Loops - For/While): යම්කිසි උපදෙස් මාලාවක්, නිශ්චිත වාර ගණනක් හෝ යම් කොන්දේසියක් සත්යව පවතින තුරු නැවත නැවත ක්රියාත්මක කිරීමයි.
උදාහරණය: "කෝප්පයේ තේ ඇති තාක් (WHILE), තේ බොන්න."
3. ශ්රිත (Functions)
ශ්රිතයක් යනු නිශ්චිත කාර්යයක් ඉටු කරන, නැවත නැවත භාවිතා කළ හැකි කේත කොටසකි. මෙය හරියට යන්ත්රයක ඇති බොත්තමක් වැනිය. ඔබ බොත්තම එබූ විට, ඊට අදාළ සම්පූර්ණ ක්රියාවලියම සිදුවේ. එම ක්රියාවලිය සිදුවන ආකාරය ගැන ඔබට කරදර වීමට අවශ්ය නැත.
උදාහරණය:calculateTotal() නමින් ශ්රිතයක් සෑදුවහොත්, අපට බිලක එකතුව ගණනය කිරීමට අවශ්ය සෑම විටම එම ශ්රිතය ඇමතීම (call) පමණක් genügt. සම්පූර්ණ ගණනය කිරීමේ කේතය නැවත නැවත ලිවීමට අවශ්ය නොවේ.
4. දත්ත ව්යුහ (Data Structures)
දත්ත කාර්යක්ෂමව ගබඩා කිරීමට සහ කළමනාකරණය කිරීමට භාවිතා කරන ක්රමවේදයන්ය. සරලම දත්ත ව්යුහ දෙකක් නම්:
- ලැයිස්තුව (Array/List): එකම වර්ගයේ දත්ත අනුපිළිවෙලකට ගබඩා කිරීමේ ක්රමයකි. මෙය හරියට ඔබ සාප්පු යෑමට සකස් කරන බඩු ලැයිස්තුවක් වැනිය.
- ශබ්දකෝෂය (Dictionary/Map): දත්ත යුගල වශයෙන් (යතුර සහ අගය - Key & Value) ගබඩා කිරීමේ ක්රමයකි. මෙය දුරකථන නාමාවලියක් වැනිය. නම (Key) සෙවූ විට, ඊට අදාළ දුරකථන අංකය (Value) ලැබේ.
අවසාන වශයෙන්
ඉහත සඳහන් කළ සංකල්ප, ඔබ කුමන ක්රමලේඛන භාෂාව භාවිතා කළත් ඔබට හමුවන මූලිකම ගොඩනැගුම් කොටස් වේ. භාෂාවක ව්යාකරණ (syntax) කටපාඩම් කිරීමට වඩා, මෙම සංකල්ප පිටුපස ඇති තර්කනය (logic) අවබෝධ කර ගැනීම ඉතා වැදගත් වේ.
දැන් අපි මෙම මූලික ගොඩනැගුම් කොටස් පිළිබඳව දන්නා නිසා, ඊළඟ පියවර වන්නේ මෙම කොටස් භාවිතා කරමින් විශාල, සංකීර්ණ සහ හොඳින් සංවිධානය වූ මෘදුකාංග ගොඩනගන ආකාරය ඉගෙන ගැනීමයි. ඒ සඳහා, අපි ඊළඟ මොඩියුලයෙන්, නූතන ක්රමලේඛනයේ හදවත බඳු "වස්තු පාදක වැඩසටහන්කරණය (Object-Oriented Programming - OOP)" පිළිබඳව Java සහ Python භාෂා ඇසුරින් ඉගෙන ගනිමු.