Skip to main content

c හා c++ ප්‍රෝග්‍රැමිං - 4


දැන් ඉතා සරල සී ප්‍රෝග්‍රෑම් එකක් සාදමු. පහත දැක්වෙන කෝඩිං (coding) ඔබේ ටෙක්ස්ට් එඩිටර් එක තුළ ඒ දක්වා ඇති පරිදි ලියන්න. ඉන්පසු එය සේව් කරන්න ඔබට කැමැති නමකින්. එහෙත් අනිවාර්යෙන්ම එම සේව් කරන ෆයිල් එකේ අගට ලියන extension එක වනුයේ .c යන්නයි. ඒ අනුව මා එම ෆයිල් එක hello_world.c ලෙස නම් කරනවා.




සටහන
සෝස්කෝඩ් ෆයිල් එකට ඔබට කැමති නමක් දිය හැකියි. එහෙත් ඔබ නිතරම උත්සහ කළ යුතුයි පුලුවන් තරම් කෙටි හා හොඳ නමක් ලබා දීමට. කෙනෙකු එම ෆයිල් එකේ නම දුටු ගමන් එය අහවල් දේ සම්බන්ධ ෆයිල් එකක් බව සරල දැනුමක් එම ෆයිල්නේම් එකෙන් ලැබිය යුතුය.

වින්ඩෝස්වල සිම්පල් හා කැපිටල් භේදය නැති නිසා ෆයිල්නේම් එක සිම්පල් හෝ කැපිටල් හෝ කලවමේ හෝ ලිව්වාට ගැටලු මතු නොවේ (case-insensitive). ඒ කියන්නේ myfile.c, MyFile.c, myFILE.C ආදී නම් සියල්ලම වින්ඩෝස්වලදී එක සමානයි. එහෙත් සියලුම ලිනක්ස් පද්ධති සිම්පල් කැපිටල් වෙනසට සංවේදී වේ (case-sensitive). ඒ අනුව ලිනක්ස්වලදී ඉහත ෆයිල්නේම් 3 ඇත්තටම වෙන වෙනම (ස්වාධීන) ෆයිල් 3කි. එනිසා, ඔබ භාවිතා කරන්නේ කුමන ප්ලැට්ෆෝම් එකක් වුවත්, සිරිතක් හා පුරුද්දක් ලෙස සිම්පල් කැපිටල් යම් ප්‍රතිපත්තියක් මත යොදන්න. උදාහරණයක් ලෙස, මා සිරිතක් ලෙස හැමවිටම ෆයිල්නේම් ලියන්නේ සිම්පල් අකුරින් පමණි. ප්‍රෝග්‍රැමිංවලදී මෙවැනි සරල ප්‍රතිපත්ති මාලාවක් පිළිපැදීමේ වටිනාකම කියා නිම කළ නොහැකි තරම් වේ (ඒ ගැන තවදුරටත් පාඩම් මාලාව තුලදී කතා කරමු).

තවද, තමන් සේව් කරන සෝස්කෝඩ් පරිගනකයේ නොයෙක් තැන් තැන්වල සේව් කරන්නත් එපා. ඕනෑම දෙයක් කරන විට, එහි යම් විනයක් හා පිළිවෙළක් අනුගමනය කිරීම ඵලදායිතාවට හේතු වෙනවා. එනිසා ඔබේ සෝස්කෝඩ් සියල්ල එක් නිශ්චිත ෆෝල්ඩර් එකක සේව් කරන්න. එය හාඩ් ඩිස්ක් එකේ හෝ ෆ්ලෑෂ් ඩ්‍රයිව් එකේ විය හැකියි. උදාහරණයක් ලෙස, මා සෝස්කෝඩ් ෆයිල් සේව් කරන්නේ මගේ home folder එකේ c යන සබ්ෆෝල්ඩර් එක තුලයි (ලිනක්ස්වල මෙන්ම වින්ඩෝස්වලද හෝම් ෆෝල්ඩරය යනු ඔබ භාවිතා කරන යූසර්නේම් එකට ඉබේම සාදා දෙන, ඔබේ ෆයිල් සේව් කළ හැකි ෆෝල්ඩර් එකයි).

හරි... දැන් සෝස්කෝඩ් එක ලියා අවසානයි (ඔබට එම කෝඩිංවල තිබූ දේවල් පොඩ්ඩක්වත් තේරුණේ නැතත් දැනට ගැටලුවක නැත මොකද මොහොතකින් ඒ සියලු දේ ගැන එකින් එක ඉගැන්වේ). මීළඟට කරන්නට තිබෙන්නේ එම සෝස්කෝඩ් එක කම්පයිල් කරන්නයි. ඒ සඳහා ටර්මිනල් (කමාන්ඩ් ප්‍රොම්ප්ට් එක) රන් කරන්න.

ටර්මිනලයක් ඕපන් වන විට, එය අනිවාර්යෙන්ම යම් ෆෝල්ඩර් එකක් ඕපන් කරනවා. එය හරියට ඔබ යම් ෆෝල්ඩර් එකක් මත ඩබ්ල් ක්ලික් කළ විට, එම ෆෝල්ඩර් එක ඕපන් වෙනවා වාගේ දෙයකි. එවිට ඔබට එම ඕපන් වෙච්ච ෆෝල්ඩර් එක තුළ තිබෙන සබ්ෆෝල්ඩර් හා ෆයිල් සමග ගනදෙනු කළ හැකියිනෙ. ඉතිං, සාමාන්‍යයෙන් ටර්මිනලයක් ඕපන් වන විට, ඉබේම එය ඔබ දැන් ලොග්ඉන් වෙලා සිටින යූසර්නේම් (යූසර් එකවුන්ට්) එකට අයත් හෝම් ෆෝල්ඩර් එක තමයි ඕපන් කරන්නේ. ලිනක්ස්වල නම්, එම හෝම් ෆෝල්ඩර් එක ~ යන සංඛේතයෙන් දක්වනවා. උදාහරණයක් ලෙස එම ටර්මිනලය මත ls හෝ dir යන කමාන්ඩ් එක ලියා එන්ටර් කර බලන්න (වින්ඩෝස්වල නම් ls වෙනුවට dir යන ඩොස් කමාන්ඩ් එක ලිවිය යුතුයි). එවිට, එම ෆෝල්ඩර් එක තුළ තිබෙන ෆයිල් හා සබ්ෆෝල්ඩර් සියල්ල පෙන්වනු ඇත (පහත දැක්වෙන්නේ මාගේ හෝම් ෆෝල්ඩරය තුළ තිබෙන දේවල්ය).




ඉතිං ටර්මිනලයක් සමග වැඩ කරන විට, පළමුවෙන්ම ඔබේ සෝස්කෝඩ් ෆයිල් තිබෙන ෆෝල්ඩර් එකට යෑම උචිතයි. මාගේ සෝස්කෝඩ් තිබෙන්නේ හෝම් ෆෝල්ඩරයේම තිබෙන c නම් සබ්ෆෝල්ඩරය තුළයි. එය ඕපන් කිරීමට මා cd c යන්න ටයිප් කර එන්ටර් කරනවා. ටර්මිනලයක් තුළදී දැන් සිටින ෆෝල්ඩරයේ සිට වෙනත් ෆෝල්ඩරයකට යෑමට cd (ch යනු change directory යන්නයි)නම් කමාන්ඩ් එක භාවිතා කළ යුතුයි. මීට පෙර ඔබ දුටු ls හා dir යන කමාන්ඩ්වලින් කළේ සිටින ෆෝල්ඩරය තුළ තිබෙන ෆයිල් හා සබ්ෆෝල්ඩර් දර්ශනය කිරීමයි. ටර්මිනලයක් සමග වැඩ කිරීමට මෙවැනි කමාන්ඩ් රාශියක් සෑම මෙහෙයුම් පද්ධතියකම තිබේ.

cd කමාන්ඩ් එකට පසුව ඔබට ඕපන් කිරීමට අවශ්‍ය ෆෝල්ඩර් එකේ පාත් එක ලබා දිය යුතුයි. මට ඕපන් කිරීමට අවශ්‍ය c ෆෝල්ඩර් එක තිබුණේ දැනට මා සිටින ෆෝල්ඩර් එක තුළ බැවින් cd c ලෙස ටයිප් කිරීම ප්‍රමාණවත් වූවා. මට ඕපන් කිරීමට අවශ්‍ය වූයේ c ෆෝල්ඩරය තුළ තිබෙන abc නම් ෆෝල්ඩරයකට නම්, cd c/abc ලෙස මට ටයිප් කිරීමට සිදු වේවි. එසේත් නැතිනම් හෝම් ෆෝල්ඩරයේ සිට පෙර පරිදි cd c රන් කර පළමුව c ෆෝල්ඩරය තුළට ගොස්, නැවතත් cd abc යන්න ටයිප් කර abc ෆෝල්ඩරය තුළට යා හැකියි. ඇත්තටම cd ගැනත්, වෙනත් කමාන්ඩ් ගැනත් ඉගෙනීමට තවත් දේවල් තිබේ (ඒවා සොයා බලන්න). කෙසේ හෝ වේවා, කම්පයිල් කිරීමට පෙර තමන්ගේ සෝස්කෝඩ් එක තිබෙන ෆෝල්ඩර් එක ඕපන් කිරීමයි වැදගත්.

කම්පයිල් කිරීමට පහත රූපයේ දිස්වන ආකාරයට කම්පයිල් කමාන්ඩ් එක රන් කරන්න. ඔබේ පරිගනකයේ GCC ඉන්ස්ටෝල් කර තිබේ නම්, එය ඉක්මනින්ම කම්පයිල් වේවි. මෙහි gcc යනු කම්පයිලර් ප්‍රෝග්‍රෑම් එකේ නමයි (ඔබ භාවිතා කරන්නේ වෙනස් කම්පයිලරයක් නම්, එම කම්පයිලරයේ නම ලියන්න). කම්පයිලරයට කිව යුතුයි කුමන සෝස්කෝඩ් එක කම්පයිල් කරන්නද කියා. අප කම්පයිල් කරන්නට යන්නේ මොහොතකට පෙර hello_world.c ලෙස සේව් කරගත් සෝස්කෝඩ් එක නිසා එම නම ලබා දී ඇත. ඉන්පසුව -o (ඉංග්‍රිසි "" අකුර) යන්නට පසුව මා hello_world.exe ලෙස නමක් ලබා දී තිබේ. එහි අරමුණ කම්පයිල් කළාට පසුව ලැබෙන එක්සික්‍යුටබල් හෙවත් බයිනරි ෆයිල් එකේ නම එසේ විය යුතුය කියාය. මෙහිදීද ඔබට කැමති නමක් ලබා දිය හැකියි.




මෙම ප්‍රෝග්‍රෑම් එක ඉතාම සරල හා කුඩා නිසා ක්ෂණයකින් කම්පයිල් වනු ඇත. විශාල ප්‍රෝග්‍රෑම් සඳහා යම් කාලයක් ගත වේවි. කිසිදු වරදක් සෝස්කෝඩ්වල නැති නම්, සාර්ථකව කම්පයිල් වේවි. එහෙත් යම් යම් වැරදි ඇතොත්, කම්පයිලරයට පළමුවෙන්ම හමුවන වැරැද්දේදීම කම්පයිලරය නවතිනු ඇත. වැරැද්ද කුමක්දැයි කෙටියෙන් පෙන්වාවි. එවිට, ඔබට හැකියි එම වැරැද්ද කුමක්ද කියා හරියටම සොයා බලන්නට.

සටහන
ප්‍රෝග්‍රැමිංවලදී අපිට නිතරම වැරදි (error) හමු වෙනවා. එය කිසිසේත් බිය වීමට හෝ ලැජ්ජා වීමට හේතුවක් නොවේ. කොතරම් දක්ෂ ප්‍රෝග්‍රැමර් කෙනෙකුට වුවත් වැරදි කිසිවක් හමුනොවන සේ එකවර ප්‍රෝග්‍රෑම් සෑදිය නොහැකියි. දක්ෂතාව තිබෙන්නේ එලෙස හමුවන වැරදි හඳුනාගෙන ඒවා නිවැරදි කිරීමට ඇති හැකියාව තුල යැයි මා විශ්වාස කරනවා. මූලිකව මෙවැනි එරර් (වැරදි) වර්ග දෙකක් හඳුනාගත හැකියි - compile-time errors, run-time errors.

කම්පයිල්-ටයිම් එරර්ස් යනු නමෙහිම කියවෙන පරිදි ප්‍රෝග්‍රෑම් එක කම්පයිල් කරන විට හමුවන හෙවත් මතුවන වැරදිය. ඒවා නිවැරදි නොකර කිසිසේත් ප්‍රෝග්‍රෑම් එකක් සෑදිය නොහැකියි (මොකද එක්සික්‍යුටබල් ෆයිල් එක සාදන්නට පෙර කම්පයිලරය වැරැද්ද හමුවන තැන නවතින නිසා). එහෙත් ඉන්ටප්‍රීටර් ක්‍රමයේ ප්‍රෝග්‍රෑම්වලදී නම් කම්පයිල්-ටයිම් වැරදි හමු නොවේ මොකද එහිදී කම්පයිල් කිරීමක් නැත. ඉන් ඔබ වැරදි හැඟීමක් ඇති කර ගන්න එපා කම්පයිල් වර්ගයට වඩා ඉන්ටර්ප්‍රීට් වර්ගය වඩා හොඳයිනෙ කියා. කම්පයිල් කරන මොහොතෙ වැරදි හමු වන විට, ඉන් ඔබට අවස්ථාවක් ලැබෙනවා එම වැරදි කල්තියාම හඳුනාගෙන ඒවා නිවැරදි කිරීමට. එහෙත් එම ප්‍රෝග්‍රෑම් එක ඉන්ටර්ප්‍රීට් ක්‍රමයට සකස් කළ විට, එය රන් කරන විටයි එම වැරදි හමු වන්නේ. ඒ කියන්නේ වැරැදි හමුවන්නේ පසු කාලීනවයි. ඔබ කැමති ඔබේ ඇඳුමක් මඟුල් ගේකට යන්න අඳින්නට ගන්නා විට එය මීයො කාලා කියා දැනගන්නද, එහෙමත් නැතිනම් මඟුල් දවසට සතියකට පෙර එය මීයො කාලා කියා දැනගන්නටද? සිතා බලන්න.

රන්-ටයිම් වැරදි යනු ප්‍රෝග්‍රෑම් එකක් රන් වන මොහොතෙදී හමු වන ඒවාය. මේවා කම්පයිල් කරන විට කිසිසේත් හමු නොවේ. තවද, මෙවැනි වැරදි කෝඩිංවල තිබුණත්, රන් කරන හැමවිටම හමු නොවන්නත් පුලුවන්. ඊට හේතුව උදාහරණයක් ඇසුරින් මා පෙන්වන්නම්. සිතන්න යම් ප්‍රෝග්‍රෑම් එකක තිබෙනවා ඔබ ලබා දෙන සංඛ්‍යා දෙකක් එකකින් අනෙක බෙදීමට කියා. එම සංඛ්‍යා දෙක x, y ලෙස සැලකුවොත්, ඒ කියන්නේ මෙම කෝඩිං කොටසින් කරන්නේ x / y (එක්ස් බෙදීම වයි) යන ගණිත කර්මය වේ. ඔබට කැමති කැමති ඉලක්කම් ලබා දිය හැකියිනෙ. මෙලෙස බොහෝ වාරයක් ඔබ මීට විවිධ අගයන් ලබා දුන් විට ප්‍රෝග්‍රැමර් සිතූ පරිදි එම කෝඩිං වැඩ කරාවි. එහෙත් ඔබ y සඳහා 0 (බිංදුව) ලබා දුන් විට, ඉහත කෝඩිං එකට ගණනය කිරීමට බැරි වෙනවා. ඊට හේතුව කිසිම පරිගණකයකට බැහැ යම් අගයක් බිංදුවෙන් බෙදන්නට. මෙවිට ප්‍රෝග්‍රෑම් එක ඇනහිටිනවා. මෙවැනි වැරදි තමයි රන්-ටයිම් වැරදි කියන්නේ. මේවා හරියට කාල බෝම්බ වැනිය. ඔබ නොසිතන මොහොතක එකපාරටම වැරැද්ද මතු වේ. මෙච්චර කාලයක් හොඳට වැඩ කරපු එක දැන් කොහොමද එකපාරටම අප්සට් වූයේ කියා සිතේවි.

ඇත්තටම හොඳ ප්‍රෝග්‍රැමර් කෙනෙකුගේ අනෙක් දක්ෂතාව තමයි මෙවැනි වැරදි මතු විය හැකි තැන් කල් තියාම හඳුනාගෙන ඒවා ඇති නොවන පරිදි ප්‍රෝග්‍රෑම් සෑදීම. උදාහරණයක් ලෙස, ඉහත ගත් උදාහරණයේදී හොඳ දක්ෂ ප්‍රෝග්‍රැමර් කෙනෙකු නම්, හැමවිටම ඔහු x/y ගණනය කිරීමට පෙර, y සඳහා ඔබ විසින් ලබා දෙන අගය 0 ට සමානද කියා චෙක් කර, එය 0ට සමාන නම්, කරුණාකර වෙනත් අගයක් ඇතුලු කරන්න කියා ඔබට ඉබේම උපදෙසක් ලබා දෙන පරිදි කෝඩිං එක සකස් කරාවි.

හරි... දැන් කම්පයිල් කරපු ප්‍රෝග්‍රෑම් එක රන් කර බැලීමට අවස්ථාවයි. ඉහත කම්පයිල් කමාන්ඩ් එක රන් කළ පසුව සෑදෙන එක්සික්‍යුටබල් ෆයිල් එක සේව් වන්නේද සෝස්කෝඩ් එක තිබෙන ෆෝල්ඩර් එක තුළමයි. එය රන් කිරීමට, ටර්මිනලය තුළ එම ෆෝල්ඩර් එකට ගොස්, සේව් වෙච්ච ප්‍රෝග්‍රෑම් එකේ නම ටයිප් කර එන්ටර් කරන්න.

එහෙත් මෙහිදී සමහරවිට ප්‍රෝග්‍රෑම් එක රන් නොවන්නත් පුලුවන් (hello_world.exe: command not found ලෙස එවැනි ප්‍රෝග්‍රෑම් එකක් නැතැයි කියන්නට ඉඩ තියෙනවා). ඊට හේතුව සරලයි. ටර්මිනලය තුළ යම් ප්‍රෝග්‍රෑම් එකක නමක් ඇතුලු කළ විට, එම නමින් ඇති ප්‍රෝග්‍රෑම් එකක් තිබේදැයි පළමුවෙන්ම සොයා ගත යුතුයි. එහෙත් ටර්මිනලය ඔබේ පරිගනකයේ තිබෙන සෑම ෆෝල්ඩර් එකකටම එබී එම නමින් ප්‍රෝග්‍රෑම් එකක් තිබේදැයි සොයා බලන්නේ නැත. ටර්මිනලය එසේ ප්‍රෝග්‍රෑම් තිබේදැයි සොයා බලන ෆෝල්ඩර් ගණනාවක් තිබේ (එම ෆෝල්ඩර් මොනවාදැයි මෙහෙයුම් පද්ධතිය විසින් ඉබේම සෙට් කරයි). මෙම ෆෝල්ඩර් මොනවාද යන්න PATH ලෙස හැඳින්වෙන "සෙටිං එකක්" (එනම්, environment variable) මඟින් තමයි එය සෙට් කරන්නේ. මෙහෙයුම් පද්ධතිය විසින් ඊට එකතු කර ඇති ෆෝල්ඩර්වලට අමතරව ඔබටත් පුලුවන් ඊට ඔබ කැමති ෆෝල්ඩර් එකතු කරන්න. ඉතිං ඔබ සාදපු ප්‍රෝග්‍රෑම් තිබෙන ෆෝල්ඩරය මෙම පාත් එකට එකතු කළොත්, ඔබේ ප්‍රෝග්‍රෑම් එක රන් වේවි; පාත් එකේ නැතිනම් එවැනි කමාන්ඩ් එකක් නැතැයි පවසාවි.

ඇත්තටම ඔබගේ ෆෝල්ඩරය පාත් එකට ඇතුලු කර කර ඉන්නට අවශ්‍ය නැහැ. ටර්මිනලය මත ./ යන්න ලියා ඊට පසුව ප්‍රෝග්‍රෑම් එකේ නම ලියූ විට (එම නමින් ප්‍රෝග්‍රෑම් එකක් තමන් දැන් සිටින ෆෝල්ඩරය තුළ ඇත්නම්) අදාල ප්‍රෝග්‍රෑම් එක රන් වෙනවා. ./ යන්නෙන් කියන්නේ "තමන් දැන් සිටින ෆෝල්ඩර් එක තුළ ඇති" යන්නයි. ඒ අනුව, ./hello_world.exe යන්න රන් කරන විට, ඒ කියන්නේ දැන් ටර්මිනලයේ ඕපන් වී තිබෙන ෆෝල්ඩරයේ තිබෙන hello_world.exe ප්‍රෝග්‍රෑම් එක රන් කරන ලෙසයි. ඒ අනුව පහත රූපයේ ආකාරයට එම ප්‍රෝග්‍රෑම් එක රන් වේවි.




කිසිදු රන්-ටයිම් වරදක් නැතිව සාර්ථකව ප්‍රෝග්‍රෑම් එක රන් වුණා. ඇත්තටම මෙම ප්‍රෝග්‍රෑම් එකෙන් සිදු කරපු එකම කාර්ය වූයේ Hello World! යන වාඛ්‍ය කොටස ටර්මිනල් තිරය මත දැක්වීම පමණි. මෙලෙස ටර්මිනලයක් මත පමණක් ක්‍රියාත්මක වන පරිදි සාදපු ප්‍රෝග්‍රෑම්වලට console applications/software කියා කියනවා. ඊටම CLI applications කියාද කියනවා (CLI යනු command line interface යන්නයි). මෙවැනි කන්සෝල් සොෆ්ට්වෙයාර් සමග ගනුදෙනු කරන්නේ කීබෝඩ් එක හරහාය. ඒ කියන්නේ ප්‍රෝග්‍රෑම් එකට දත්ත ඇතුලු කිරීමට අවශ්‍ය නම්, ඔබ එම දත්ත කන්සෝල් එකේම ටයිප් කර එන්ටර් කරන්නට අවශ්‍යයි. එලෙසම, ප්‍රෝග්‍රෑම් එකෙන් ඔබට යම් යම් දේවල් කියන විට, එම පණිවිඩද දිස්වන්නේ ටර්මිනලය තුලමයි. මවුසය භාවිතා කරන්නේ නැති තරම්ය. මෙනු, බට්න්, ඩයලොග් බොක්ස්, රූප, ශබ්ද ආදී "විච්චූර්ණ" දේවල් කිසිවක් නැත. එනිසාම මේ ආකාරයට සාදන ප්‍රෝග්‍රෑම් ඉතා වේගවත්ය. මුල් කාලයේ පරිගණක වැඩසටහන් සියල්ලම පැවතියේ මේ ආකාරයට පමණි. කිසිදු ලස්සනක් හා පහසු බවක් නැති නිසා, සාමාන්‍ය අය කිසිසේත් මෙවැනි සොෆ්ට්වෙයාර්වලට කැමැති නැති වීම මෙහි ඇති ප්‍රධාන දුර්වලකමයි.

සාමාන්‍ය අය කැමැති ලස්සනට හා පහසු බවටයි. “එහෙන් ක්ලික් කර, මෙහෙන් ක්ලික් කර" තමන්ගේ වැඩේ සිදු කර ගන්නට ඔවුන් කැමැතියි. ඔබ භාවිතා කරන සියලුම සොෆ්ට්වෙයාර් මවුසය ඇසුරින් නේද මෙහෙයවන්නේ? මෙවැනි "ලස්සන" හා "භාවිතා කරන්නාට පහසු" (user-friendly) සොෆ්ට්වෙයාර් GUI applications ලෙස හැඳින්වෙනවා (GUI යනු graphical user interface). මෙවැනි "ගූයි" සොෆ්ට්වෙයාර් සෑදීමට නම් සී භාෂාවට අමතරව තවත් කරුණු ඉගෙනීමට සිදු වේ. එම කරුණු ඉගැන්වීම මෙම පාඩම්වල අරමුණ නොවන නිසා, අප විසින් සාදන සියලු ප්‍රෝග්‍රෑම් කොටස් කන්සෝල් ආකාරයේ ඒවාය. ඔබ මේ වන විට, පළමු කන්සෝල් ප්‍රෝග්‍රෑම් එක සාදා අවසානයි. මෙතැන් සිට සී භාෂාවේ මූලිකාංග ගැන ඉගෙන ගමු.

Comments

  1. E unata e amatara karunu ganat katakalot agei..me taram saralawa igennuwanam apit e kalema goda.

    ReplyDelete
    Replies
    1. danuma wagema danuma idiripath karana aakaarayath ithaa wadagath thamai... :) haki tharam liyanna uthsaha karannam... danuth parakku na... igena ganna tika tika...

      Delete
  2. Ow kawadawat salenna hoda na.weti weti tamai ewidinna purudu wennet.. obe sahaya itha agei

    ReplyDelete
  3. අන්තර්ගතය කොච්චර ගැබුරු උනත්,ලබාදෙන දෙය කොපමන වටිනා උනත්, ඒක දීලා තිබෙන්නෙ යමෙකුට අමාරුවෙන් තේරුම් ගන්න වගේනම් කොච්චර දුන්නත් ප්‍රතිපල අඩුයි නේ.බුදු දහමෙත් අපි අහලා තියනවා යමක් දෙනකොට සකසා දියයුතුය කියල(මට මතක විදියටනම් ත්‍රිහේතුක මොකක්ද එකක්...)ඉතින් මේතරම්ම මේ බ්ලොග් එක වටින්නේ ඔබේ ලිපි ,අන්න ඒ ආකාරයට සකසා ලබා දී තිබෙන නිසයි කියල මා නම් සිතන්නේ.ගොඩක් මහන්සි වෙලා පිලියෙල කරල තියනවා..නෝඅඩුව දීලා තිබෙනවා.. උදාහරන,ලියලා තිබෙන ආකාරය , ඒක ඉදිරිපත්කරලා තියෙන ආකාරය අති විසිෂ්ටයි.හරියට අපි හොදට ඇබ්බැහි වෙච්ච ටීවි සීරිස් එකක් බලනවා වගේ.(මගේ උදා : - ප්‍රිසන්බ්‍රේක්..).

    තව මට සමහර ඉලෙක්ට්‍රොනික් පාඩම් වල ගැබුරු ගණිත සංකල්ප කොච්චර ගැබුරු උනත් අතාරින්න හිතෙන්නේ නෑ..මම ගණිත අකැමති කෙනෙක්..ඒත් මේ බ්ලොග් එක නිසා මං ගණිතයට කැමති වෙලා..කවදා හරි හිමින් ඉගෙනගන්න පුලුවන් කියන විශ්වාසෙත් ඇති උනා,වගේම ඇති වෙලා, සොබාවයෙන්ම.ඉගෙන ගන්න ආස හිතෙනවා,ඒ වගෙම ඉගෙන ගත්තා,තව ඉගෙන ගන්නවා.

    ඇත්තටම පුදුම හිතෙන්න ඉගෙන ගත්තා,ඉගෙනීම පුදුම හිතෙනවා කියන එකත් මට මුලින් වැටහුනේ ඉස්කොලෙන් නෙමෙයි..මේ බ්ලොග් එකෙන්,ඒක සහතිකයි.මම ඉස්කෝලේ ඉගෙන ගන්න ගියේ නෑ..පුරුද්දට සහ බය නිසා ගියේ..ඉගෙන ගත්තා කියලා දැනෙන්න වචන දෙකක් හරි ඉගෙන ගත්තේ මේ බ්ලොග් එකෙන් සහ ඔබ තුමාගෙන්.(මම ඉන්ටෙනෙට් එකෙ බ්ලොක් ගොඩක් දැකල බලල තියනවා).ඉතින් ඔබ තුමාගේ හැම පෝස්ට් එකකටම කොමෙන්ට් එකක්, හිතට දැනෙන අදහසක් දාන්න ගියෝත් ඒ හැම එකකටම මේකම තමා දාන්න වෙන්නේ මොකද, සුපිරිම සුපිරී කියනවා, ඒ සුපිරි කියන අදහස විහිදුවන්න උත්සාහ කලා.

    දැනුම කියන දේ විතරක් නෙමෙයි මෙතන තියෙන්නේ..රසය,දානය,හැකියාව,රිජු බව,පූර්නත්වය,නිවැරදිබව වගේ ගොඩාක් ගුනාංග ඔබතුමාගේ ලිපි වලින් දැනෙනවා..අන්න ඒ දැනෙන දෙය තමා මං මෙතන කියන්න උත්සාහ කලේ..දිගටම කරගෙන යන්න හැකි උපරිම අයුරින්..මොකද මම වගේ තව කීදෙනෙක් මේකෙන් ප්‍රයෝජන ගනීද?..කොච්චර අය මේ වගේ හොද එකක් හොයනවා ඇත්ද,කී දෙනෙකුට තව මේ බ්ලොග් එක මගැරිලා ඇත්ද ?,අනාගතේ මේක කීදෙනෙක් නම් ප්‍රයෝජන ගනීද,ඒනිසා ඔබට ජයෙන් ජයම වේවා..

    ReplyDelete
    Replies
    1. ස්තූතියි ෂමින්ද :)

      මං හිතන්නේ බ්ලොග් එකේ ආරම්භක කාලයේ සිට තවමත් එය කියවන හා මා හට මෙවන් දිරිගැන්වීම් දිගටම කරපු කෙනා ඔබයි.

      පහුගිය දවස්වල මං තරමක් අසනීපවීම හා කාර්යබහුල වීම නිසා අධ්‍යාපනික ලිපි ලිවීම මඟ හැරුණා. අනිවාර්යෙන්ම තවත් පොත් ගණනාවකම ලිපි පළ කිරීමට තිබෙනවා. නොබෝ දිනකින් ට්‍රාන්සිස්ටර් පාඩම්මාලව ලියන්නට සිතාගෙන සිටිනවා.

      Delete
    2. ස්තුතී..නිදුක් නීරොගි සුවය පතනවා..අපි බලන් ඉන්නවා අලුත්ම ලිපි එනකන්..විශේෂයෙන් තාක්ශණික ලිපි ඔබෙන්..ජයවේවා.

      Delete

Post a Comment

Thanks for the comment made on blog.tekcroach.top

Popular posts from this blog

Let's Learn Sinhalese in English 17 (final)

I will show you the Sinhala alphabet. I recommend learning it too.   Following picture shows the Sinhala vowels . Beside (in front of) each letter is the name of the letter and below each letter is the sound it represents. The first 12 vowels are very important. The following picture shows the consonants of Sinhala alphabet (not in the conventional order and format). I have crossed out some letters which are redundant and useless (I vehemently support removing these pesky letters from the operating alphabet ). Actually you should remember all the letters, but I suggest you to use only the letters that are not crossed out. Sinhala alphabet is phonetic (that is, each letter shall have one dedicated sound only), therefore it is easier to use than English alphabet. Consonant letters cannot be sounded on their own, and you have to use vowels to aid in them to be pronounced. In English, you just place the vowel just after the constant. For example: ...

ඉලෙක්ට්‍රෝනික්ස් II (Electronics) - 6

විශේෂ ප්‍රතිරෝධක ඉහත සාකච්ඡා කළ නියත හා විචල්‍ය ප්‍රතිරෝධක හැරුණහම , තවත් සුවිශේෂී ජනප්‍රිය ප්‍රතිරෝධක වර්ග කිහිපයක්ද තිබෙනවා . මේවා ආලෝකය , උෂ්ණත්වය වැනි විවිධ භෞතික රාශින්ට සංවේදී ප්‍රතිරෝධකයි . මේ අතරින් සුලභම වර්ගය තමයි ආලෝකයට සංවේදී ප්‍රතිරෝධක වර්ගය . මේවා ප්‍රකාශ - ප්‍රතිරෝධක (photoresistor) හෝ “ආලෝකයට සංවේදී ප්‍රතිරෝධක” (Light Dependent Resistor – LDR) ලෙස හැඳින් වෙනවා . එහි සාමාන්‍ය භාහිර හැඩය පහත දැක්වේ .   මෙම ප්‍රතිරෝධයේ හිස මත තිබෙන්නේ ආලෝකයට ඉතා සංවේදී කැඩ්මියම් සල්ෆයිඩ් (CdS), ලෙඩ් සල්ෆයිඩ් (PbS), කැඩ්මියම් සෙලිනයිඩ් (CdSe) ආදී යම් රසායනික ද්‍රව්‍යයකි . එම ද්‍රව්‍යයන්වල ඉතා ඉහල ( බොහෝවිට 500k ohm වැනි ) ප්‍රතිරෝධි අගයන් තිබේ . එහෙත් ඒ මතට ආලෝකය වැටෙන විට , ප්‍රතිරෝධි අගය සීඝ්‍රයෙන් පහළ යයි ( බොහෝවිට ඕම් 500 වැනි ). මෙහිදී කිව යුතු වැදගත් කරුණ නම් , ඉහත සඳහන් කළ ( හා නොකළ ) ආලෝක සංවේදී රසායනික ද්‍රව්‍ය එකම ආකාරයෙන් ආලෝකයට සංවේදී නොවේ . සමහර ඒවා “ආලෝකයේ රතු පැත්තට” ( ඒ කියන්නේ දිගු තරංග ආයාම සහිත ආලෝකයට ) සංවේදිතාව දක්වන අතර , තවත් සමහර ඒවා “ආලෝකයේ නිල් / ද...

දෛශික (vectors) - 1

එදිනෙදා ජීවිතයේදිත් විද්‍යාවේදිත් අපට විවිධාකාරයේ අගයන් සමඟ කටයුතු කිරීමට සිදු වෙනවා . ඉන් සමහරක් නිකංම සංඛ්‍යාවකින් ප්‍රකාශ කළ හැකි අගයන්ය . අඹ ගෙඩි 4 ක් , ළමයි 6 දෙනෙක් ආදී ලෙස ඒවා ප්‍රකාශ කළ හැකියි . තවත් සමහර අවස්ථාවලදී නිකංම අගයකින් / සංඛ්‍යාවකින් පමණක් ප්‍රකාශ කළ නොහැකි දේවල් / රාශි (quantity) හමු වේ . මෙවිට “මීටර්” , “ තත්පර” , “ කිලෝග්‍රෑම්” වැනි යම් ඒකකයක් (unit) සමඟ එම අගයන් පැවසිය යුතුය ; නැතිනම් ප්‍රකාශ කරන අදහස නිශ්චිත නොවේ . උදාහරණයක් ලෙස , “ මං 5 කින් එන්නම්” යැයි කී විට , එම 5 යනු තත්පරද , පැයද , දවස්ද , අවුරුදුද ආදි ලෙස නිශ්චිත නොවේ . මේ දෙවර්ගයේම අගයන් අදිශ (scalar) ලෙස හැඳින්වේ . අදිශයක් හෙවත් අදිශ රාශියක් යනු විශාලත්වයක් පමණක් ඇති දිශාවක් නැති අගයන්ය . ඔබේ වයස කියන විට , “ උතුරට 24 යි , නැගෙනහිරට 16 යි” කියා කියන්නේ නැහැනෙ මොකද දිශාව යන සාධකය / කාරණය වයස නමැති රාශියට වැදගත්කමක් නැත . එහෙත් සමහර අවස්ථා තිබෙනවා අගයක් / විශාලත්වයක් (magnitude) මෙන්ම දිශාවක්ද (direction) පැවසීමට සිදු වන . මෙවැනි රාශි දෛශික (vector) ලෙස හැඳින්වේ . උදාහරණයක් ලෙස , ඔබ යම් “බලයක්...