'සමකය වටේ','යුතුකම' වැනි වෙබ් අඩවි වල පිටු පරිගනකයේ සුරකින විට '_001' වැනි නමකින් යුත් දිගුවක් (file extention) රහිත ගොනු එම පිටුව සුරකින ස්ථානයේම සෑදෙනු
දැක ඇත්තෙමි. එසේම 'යුතුකම' අඩවියේ පිටු සුරකිනවිට නිතරම එවැනිම දිගුවක් රහිත ගොනු 'Main','Theory','default' නම් වලින් වෙබ් පිටුවට සම්බන්ධ අතිරේක ගොනු
ගබඩාවන ෆෝල්ඩරය තුල සෑදෙනු දැක ඇත්තෙමි. අනෙකුත් වෙබ් අඩවි වල පිටු සුරැකීමේදීද ඉඳහිට මෙවන් ගොනු සෑදෙනු දැක ඇත්තෙමි. මෙම ගොනුවලින් ඇති ප්රයෝජනය නොදනිමි.
නමුත් මේවා වෙබ් පිටු සෑදීමට අවශ්ය දත්ත ගබඩා කරන යම් ආකාරයක දත්ත පදනමක් (data base) සඳහා පාවිච්චි කරන ගොනු විශේෂයක් යැයි සිතේ.
කෙසේ වෙතත් මෙම ගොනුවල රුක් සටහනක ආකෘතියෙන් දත්ත තැම්පත්කර ඇති බව දුටු නිසා මෙම දත්ත පහසුවෙන් කියැවීම සඳහා මෘදුකාංගයක් තැනුවෙමි. මේ සඳහා ශාකීය දත්ත ආකෘතිය තරමක් සංකීර්ණ ලෙස යොදා ගත්තෙමි.
මෙම ගොනු වලින් ඇති ප්රයෝජනය කුමක්දැයි දන්නා අයෙකු වෙත්නම් එය පැහැදිලි කරන ලෙසද ඉල්ලා සිටිමි.
ක්රියා කරවන ආකාරය:
සිප් ගොනුව භාගත කර එය දිගහැර (extract) එය තුල ඇති WindowsApplication19.exe ගොනුව ක්රියාත්මක කරන්න. ඉන්පසු BROWSE බොත්තම ඔබා file
Samples ෆෝල්ඩරය තුල ඇති ගොනුවක් තෝරා ඉන්පසු, READ බොත්තම ඔබන්න.
මෙහි file Samples ලෙස දී ඇති එක ගොනුවක් 'ඩ්රැකීගේ අඩවියෙනුත්' අනෙක්වා 'යුතුකම' වෙබ් අඩවියෙනුත් ගන්නා ලදී.
Saturday, April 23, 2016
Tuesday, April 12, 2016
Friday, April 8, 2016
පෙන් ඩ්රයිව (pen drive) සංකල්පයේ නිර්මාතෘ.
ඩ්රැකීගේ අඩවියේ පලවූ ගජබින්න ලිපි කියවීමෙන් පසු එවන් ලිපියක් ලිවීමට සිතුන බැවින් මෙය ලියමි. නමුත් මෙය කිසිසේත්ම ගජබින්නයක් නොවන පවසමි.
එකල ජාතික රූපවාහිනියේ රොබෝ කොප් ටෙලි නාට්ය විකාශය කෙරිණි. එය සිංහල හඬ කැවීමක් හෝ උපසිරැසි යෙදීමකින් තොරව විකාශය කෙරුණත් මගේ මිතුරන් අතර එය සෑහෙන ජනප්රියත්වයක් ලබා තිබුණි. එහි මා සිතගත් අංගයක් වූයේ රොබෝ කොප් පරිගණකය සමඟ සම්බන්ධ වීමට යොදා ගන්නා 'උල'යි.
රොබෝ කොප් ගේ උල |
මම පාසල් ගියේ වෑන් රථයකය. දිනක් එහි ගිය අප පාසලේම මට වඩා බාල සිසුවෙක් විශේෂ පෑන් කීපයක් ගෙනැවිත් අපට පෙන්වූයේය. එම පෑන් තනා ඇත්තේ අත්කම් ශිල්පියෙකු විසින් යැයි සිතමි. පෑන්වල බඳ කොටස, පැත්තක දිග සෙන්ටිමීටරක් පමණ වන සමචතුරස්රාකාර හරස් කඩකින් යුත් ලී කූරකිත් තනා තිබුණි. එහි මුදුනේ අර්ධ ගෝලාකාර පබළුවක් ඔබ්බවා තිබුණි. බඳේ පැති හතරේ පැත්තක දෙක බැගින් රුවිත (රොම්බස) හැඩැති කුඩා කණ්නාඩි කැබලි ඔබ්බවා තිබුණි. පෑන් බෙඳේ පහත තුඩ පිහිටි කොටස අඟල් දෙකක් පමණ දිගට රන්පැහැයෙන් කේතු හැඩයට තනා තිබිණ.
මෙම පෑන අතට ගත්විට, එහි තුඩ පැත්ත දුටු මට රොබෝ කොප්ගේ උල සිහිවිය. එහි මුදුනේ වූ පබළුව දුටු මට අපූරු අදහසක් පහල විණ. මම එම අදහස වෑන් රියේ ගිය අනිත්වුන් සමඟ බෙදා ගත්තෙමි.
"අපි මේ පබළුව ගලවා මෙතනට උත්තල කාචයක් සවිකරමු. ඊට යටින් රූප සංවේදකයක් සවිකරමු. ඊට පස්සේ ඇතුලේ පෑන් කූර අයින්කර දත්ත ගබඩා කරන චිප් සහ වෙනත් පරිපථ සවිකරමු. මේ රුවිත හැඩයේ කණ්නාඩි කැබලි ඉවත්කර එතැනට ස්විච් සවිකරමු. එතකොට මේක පෑනක් නෙමෙයි වීඩියෝ කැමරාවක් මේ විදියට ස්විච් එකක් ඔබාගෙන මෙයින් අවශ්ය දෙයක් වීඩියෝ ගතකල හැකියි" (කරන ආකාරය රඟදක්වමින් විස්තර කලෙමි.)
ඉන්පසු පෑන් තුඩ පෙන්වා
"මේ රොබෝ කොප්ගේ උල, වීඩියෝව පරිගණකයකට ලබා ගැනීමට මෙයින් මේ ආකාරයට පරිගණකය ඇන්න යුතුයි." (පෑන්තුඩෙන් එය අයිතිකරුගේ හිසට ඇන්නෙමි)
"ඊට පස්සේ රොබෝ කොප් වගේ මෙහෙම කරකැවිය යුතුයි. එතකොට කොම්පියුටර් එකෙන් වීඩියෝ එක පෙනෙනවා." (පෑන්තුඩ හිසට තබා තදකර කරකවා පෙන්වීමි)
මම මෙසේ කලවිට අනෙක් අයත් එම වර්ගයේ ඉතිරි පෑන් වලින් ඒවා අයිති කරුගේ හිසට අනින්නට විය. අයිතිකරු සියළු පෑන් උදුරාගෙන,
"කැමරා එපා පෑනක් තිබුනාම ඇති" යැයි කීවේය.
මෙම සිදුවීම වූයේ 1996 වසරේ විය යුතුය.
ඒ වන විටත් USB තාක්ෂණය අත්හදා බලමින් තිබුනත් එය ගත්තේ දත්ත ගෙනයන රැහැනක් හරහා පරිගණකයට සවිකරන උපකරණ සඳහාය. (https://en.wikipedia.org/wiki/USB)
මුල්ම USB පෙන් ඩ්රයිවය (USB pen drive) තනා ඇත්තේ ඊස්රායෙල් සමාඟමක් විසින් 1999 වසරේදීය.(https://en.wikipedia.org/wiki/USB_flash_drive)
සමහර විට පෙන් ඩ්රයිව් අදහස මුලින්ම පැමිණියේ මගේ හිතට විය හැක. ☺
Friday, March 18, 2016
නැරඹිය යුතුම වෙබ් අඩවියක්. www.instructables.com
http://www.instructables.com/
මෙම වෙබ් අඩවිය නව නිර්මාණ සහ මිල අධික උපකරණ වෙනුවට යොදාගත හැකි නිවසේදී නැනිය හැකි අඩු වියදම් ආදේශක මෙවලම් ගැන උපදෙස් ලබාගත හැකි එකකි.
මා මැතදී මෙයින් කියවූ ලිපිය මෙයයි. http://www.instructables.com/id/Quickly-Scan-a-Textbook-With-a-Camera/
මෙහි arduino පරිපථ යොදාගෙන කල පරීක්ෂණ ගැන විස්තරද ඇත.
Thursday, February 18, 2016
ඇමරිකානු සිනමාව තුල කතෝලිකයා නිරූපනය වන අයුරු.
මම ටිකකලකට පෙර Dare Devil නම් ඇමරිකානු ක්රියාදාම චිත්රපටය නැරඹූවෙමි. එය මා නරඹා ඇති ඇමරිකානු සිනමාපට වලට වඩා පැහැදිලි වෙසක් ඇති චිත්රපටයකි. මෙම චිත්රපටයේ ප්රධාන චරිතය වනුයේ. කුඩාකල හදිසි අනතුරක් නිසා අන්ධ භාවයට පත් තරුණයෙකි. ඔහු අන්ධ වුවත් කණට ඇසෙන ශබ්ද තරංග හරහා රේඩාර් තාක්ෂණය වැනි ක්රමයකින් අවට ලෝකය හඳුනාගත හැකි අයෙකි. ඔහු එම හැකියාව පාවිච්චි කර රාත්රී කාලයේදී නගරයේ අපරාධකරුවන්ට එරෙහිව සටන් වදියි. ඔහුට සහායවන මැදිවියේ කතෝලික පූජකයෙක් සිටියි.
මම මාගේ පැරණි අත්දැකීම් අනුව පියතුමා සහ තරුණයා අතර සමලිංගික ක්රියාවක් සිදුවනතුරු බලා සිටියෙමි.
මෙම චිත්රපටයේ ඇති ප්රධාන වෙනස වන්නේ කතෝලික ආගමට අපහාස නොවන අන්දමට තනා ඇති චිත්රපටියක් වීමයි. ඊට අමතරව මෙම වර්ගයේ ක්රියාදාම චිත්රපටවල ඇති ස්ත්රිවාදය එබ්බවීමේ සම්ප්රදායද මෙය තුල නොතිබුනි. සාමාන්යයෙන් මෙවන් චිත්රපටවල වීරයාට අමතරව ඔහුට පමණක් දෙවෙනි වන වීර කාන්තාවක්ද දැකිය හැකි. මෙහිද වීර කාන්තාවක් සිටියත් සටන ආරම්භයේදීම ඇය අවාසනාවන්ත ලෙස මියයයි.
ඇමරිකානු සිනමාව තුල ඇති විශේෂ ලක්ෂණයක් වන්නේ එහි ඇති කතෝලික විරෝධයයි. මෙහිදී ළමා චිත්රපට සහ ආගමික තේමා රැගත් චිත්රපට ඇතිබව සලකන්න.
ඇමරිකානු සිනමාව තුල බොහෝ දුරට කතෝලිකයා නිරූපනය වන්නේ. රහසින් පව් කරන්නෙකු, සුවකල නොහැකි රෝගයකින් පීඩාවිඳින්නෙකු, යක්ෂ දිශ්ඨියක් ඇත්තෙකු, කරන කිසිම දෙයක් හරි නොයන අවාසනාවන්තයෙකු, හැමෝගෙන්ම ගුටිකන නිවටයෙකු යනාදී ලෙස ඍනාත්මක චරිත ලෙසයි.
ඊට අමතරව භූමි කම්පා, උල්කාපාත වැටීම නිසා අභිමානවත් කතෝලික පල්ලි කුඩුපට්ටම් වීම. කතෝලික පල්ලියක විවාහවූ යුවලක් චිවාහ චාරිත්ර වලින් පු පල්ලියෙන් එලියට අඩිය තබත්ම ස්නයිපර් ප්රහාර වලට ලක්වීම. වැනි දසුන් ඇමරිකානු සිනමාව තුල කොතෙක් ඇත්ද?
මෙසේ කතෝලික ආගමට අපහාස වෙන නිර්මාන බිහිවීමට හේතුව වනුයේ නූතන බටහිර සංස්කෘතිය බිහිවූයේ කතෝලික සංස්කෘතිය පරාජය කරමින් වීමයි. එමනිසාම බටහිර කලාකරුවා ස්වභාවයෙන්ම කතෝලික විරෝධියෙකි. එබැවින් Dare Devil යනු උඩුගම්බලා පිහිනීමක් වෙයි. මීට අමතරව ඇමරිකාව තුල සිටින සංස්කෘතික වශයෙන් සුදු ජාතියට තර්ජනයක්වන හිස්පැනික් ඇමරිකානුවන් සහ කතෝලික ආගම අතර බැඳීමද මෙයට හේතුවක් විය හැක.
බෞද්ධයෙකු වට මට මේ ගැන ඇති "පුකේ අමාරුව" කුමක්දැයි ඔබට ගැටළුවක් ඇතිවිය හැක. කතෝලික ආගමට හෙන ගැහුවත් මට අමාරුවක් නැත. නමුත් ඇමරිවේ සුද්දන් කතෝලික විරෝධී නිර්මාණ කරනවිට ලංකාවේ සිටින පද්දන් "පොර" වීම සඳහා එම ආකෘතියේම බෞද්ධ විරෝධී නිර්මාණ කිරීමට පෙළඹෙයි.
මෙයට තරමක් සමාන උදාහරණයක් ලෙස පවුරු වළලු චිත්රපටය සැලකිය හැක. එයින් දෙන අදහස වන්නේ, කතාවේ මව (නීටා ප්රනාන්දු) කතෝලික සම්ප්රදායන්ට ගරු කල නිසා විපතට පත්වුනු බවයි. ඇය කතෝලික සම්ප්රදායන්ට ගරු නොකලේ නම් ඇයට කැමති තරමක් පෙම්වතුන් ආශ්රය කර, අවශ්යනම් ගබ්සාවන්ද කරගෙන සතුටින් සිටියහැකි බවක් මෙයින් නොකියවේ ද? මෙම චිත්රපටය බෞද්ධ පසුබිමක ගොඩනැගුවේ නම් දැඩි විරෝධයක් එල්ලවනු නො අනුමානය.
සුද්දන් පසුපස යන ලාංකීය පද්දන්ගේ නිර්මාණ වලින් සිංහල බෞද්ධ සංස්කෘතියට වන හානිය වලක්වා ගැනීමට කලහැකි හොඳම ක්රමය නම් එයට ප්රතිශක්තිය ඇතිකර ගැනීමයි. ඒ සඳහා කලහැකි හොඳම උපක්රමය සුද්දන්ගේ කතෝලික විරෝධී නිර්මාණ රසවිඳීමයි.
Tuesday, February 9, 2016
දෙවොල් දෙවියෝ අයිති සිංහලයන්ට විතරයි.
ස්වර්ණවාහිනී මුල් පිටුව වැඩසටහනකදී, රජයට විරෝධය දක්වා සීනිගම දෙවොල් දේවාලයේ පොල් ගැසීමේ සිද්ධීය ගැන සඳහන්කරමින් හරේන්ද්ර මහතා අපූරු කතාවක් කීවේය. ජාතික ගීය දෙමළෙන් ගැයීම ට විරුද්ධ අය හින්දු දෙවියෙක් වඳින්නේ මන්ද? යන්න ඔහු පලකල අදහස විය. පසුව ප්රවෘත්ති විකාශයකදී එජාප මන්ත්රී වරයෙකුද එම කතාවම කියනු දක්නට ලැබුනි.
මෙම අදහස පැහැදිලිවම තේරුමක් නැති අදහසක් වන අතරම එයින් සිංහලයන්ට තම ජාතික උරුමයක් අහිමි වීම සිදුවේ. යම් ආගමක්/ දෙවියෙක්/ ආගමික නායකයෙක් යම් ගෝත්රයකට අයිතිවීමට නම් එම ගෝත්රයේ බහුතරයක් අතර එම ආගම/ දෙවියා/ ආගමික නායකයා වන්දනාවට ලක්විය යුතුය. උපමාවකින් පැහැදිලි කරන්නේ නම් ළිඳේ වතුර පොදු දේපලක් වුවත් ලිඳෙන් ඇද කලයකට පුරවාගත් වතුර අයිති එම කලයේ හිමිකරුට බව සලකන්න. ඒ අනුව බුදුහාමුදුරුවන් අයිති සිංහලයාට පමණි. විශ්නු දෙවියන් සිංහලයාට අයිතිය. ගන දෙවියන් සිංහලයාට අයිතිය. ශිව ලිංගය දෙමළාට පමණක් අයිතිය (නමුත් ඇට දෙක සිංහලයාටත් අයිතිය :D) ජේසු අයිති දෙමළාටය. දෙවොල් දෙවියන් අයිති සිංහලයාට පමණි.
සිංහල බෞද්ධයන් අතර ඇති දේව ඇදහිලි හින්දු ආගම ලෙස හඳුන්වනවානම් එම ඇදහිලි ශ්රී ලංකාවටම අනන්ය සම්ප්රදායයන් බව සැලකිය යුතුය දෙමළාගේ එවැනි ඇදහිලි තමිල්නාඩු ෆොටෝ කොපි බවත් පැහැදිලිය. එසේනම් නියම ලෝකල් හින්දු ආගම අයිති සිංහලයන්ට විතරක් බව පැහැදිලිය.
මම ගංගොඩවිල සෝම හිමියන්ට ගරුකලත්, සිංහල දේව ඇදහිලි පිළිබඳ ඒ හිමිගේ මතයට එකඟ නොවෙමි.
දෙමළාට බුදුහාමුදුරුවන් අයිති කරගැනීමට අවශ්යනම් ඔවුන් කලයුත්තේ මහා පරිමාණයෙන් බුදුන් වැඳිමට පෙළඹීමයි. නමුත් දෙමළු පුරුදු වී ඇත්තේ සිංහල බෞද්ධයන්ට හරියට බුදුදහම අදහන අයුරු කියාදීමට බව පෙනෙයි.
බලන්න. http://transyl2014.blogspot.com/2016/01/blog-post_11.html
සිංහල බෞද්ධයන්ට මෙවැනි අයගෙන් චරිත සහතික ලබාගැනීමේ අවශ්යතාවක් නැත.
Wednesday, January 20, 2016
විෂුවල් බේසික් (Visual Basic .net) පාඩම : ශාකීය දත්ත ආකෘතිය (binary tree).
(මම විෂුවල් බේසික් ගැන විධිමත් ලෙස හැදෑරීමක් කර නැති නිසා මෙම ලිපියේ ඇති සමහර කරුණු සහ වචන වල දෝශ තිබිය හැකි බව සලකන්න. එසේම මෙම ලිපිය මුල සිට සරලව ඉගැන්වෙන්නක් නොවන බවත් යමු මූලික දැනුමක් අවශ්ය බවත් සලකන්න. මුල සිට සරලව කරන්නට ගියහොත් කිසිවක් කරගැනීමට නොලැබෙන බව අත්දැක ඇත.)
උදාහරණ සකසා ඇත්තේ vishual studio 2015 යොදා ගෙනය. ඔබ පාවිච්චි කරනුයේ වෙනත් සංස්කරණයක් නම් කේත කොටස් notepad වැනි මෘදුකාංගයකින් විවෘත කර copy paste කිරීමට සිදුවිය හැක.
***************************************
ලිපියේ මාතෘකාවට එලැඹීමට පෙර පරිගනක බාශාවල ඇති class නම් සංකල්පය ගැන හැඳින්වීමක් කල යුතුයැයි සිතමි.
class නමින් හඳුන්වන්නේ මෘදුකාංග කොටසක් ලෙස සැලකිය හැක. සංකීර්ණ මෘදුකාංගයක් ලියන විට එහි කේත class කිහිපයකට බෙදා ලිවීම මඟින් කේතනය වඩා පහසු වන අතර මෘදුකාංග සංවර්ධනය ශිල්පීන් කිහිප දෙනෙක් යොදාගෙන කරනවිට එක් එක් ක්ලාස් එකක් සංවර්ධනය එක් එක් ශිල්පියාට පැවරිය හැක. මේ ක්ලාස් වලින් ගතහැකි එක් ප්රයෝජනයකි. ඊට අමතරව තවත් ප්රයෝජනද තිබේ (මේ පාඩමේ අරමුන එවන් වෙනත් ප්රයොජනයක් ගැන සඳහන් කිරීමයි.)
විෂුවල් බේසික් වලින් ක්ලාස් තැනීමේදී
Class "ක්ලාස් එකේ නම"
End Class
ආකාරයට සටහන් කර එම ක්ලාස් එකට අයත් අනෙක් කේත කොටස් එම පේලි අතර සටහන් කල යුතුය.
සාමාන්යයෙන් ක්ලාස් යොදා ගැනීමේදී ක්ලාස් එකකින් ඔබ්ජෙක්ට් යනුවෙන් දෙයක් තනා ගනියි. මෙය උපමාවකින් දක්වන්නේ නම් ක්ලාස් එකක් ජනාධිපති ධූරයටත්, ඔබ්ජෙක්ට් එකක් ජනාධිපති වරයාටත් සමකල හැක.
විෂුවල් බේසික් වලින් ඔබ්ජෙක්ට් එකක් තැනීමේදී මෙසේ සඳහන් කරයි.
Dim "ඔබ්ජෙක්ට් එකේ නම" As New "ක්ලාස් එකේ නම"
New වදන නොමැතිව
Dim "ඔබ්ජෙක්ට් එකේ නම" As "ක්ලාස් එකේ නම"
ලෙස සටහන් කලහොත් ලැබෙනුයේ ඔබ්ජෙක්ට් එකක් සෑදීම සඳහා ඉඩක් වැන්නකි. එය උත්සවයක ජනාධිපති සඳහා වෙන්කල පුටුව වැන්නකි.
Dim "ඔබ්ජෙක්ට් එකේ නම" As "ක්ලාස් එකේ නම"
"ඔබ්ජෙක්ට් එකේ නම" = new "ක්ලාස් එකේ නම"
ලෙස සඳහන් කලහොත් එය මුලින් පුටුව වෙන්කර පසුව එහි ජනාධිපති වාඩිකරවීමට සමකල හැක. (මෙහිදී පොයින්ටර් නම් සංකල්පයක්ද පාවිච්චි වුවත් එය විස්තර කිරීමට ගියහොත් ලිපිය මාතෘකාවෙන් පිට යනු ඇත.)
ජනාධිපතිට වෙන්කල පුටුව තුල ජනාධිපති ධූරය දරන ඕනෑම අයෙක් වාඩි කරවිය හැක. ඒ ආකාරයටම ඕනෑම ඔබ්ජෙක්ට් එකක් ඔබ්ජෙක්ට් ඉඩ තුල තැම්පත් කල හැක. එනම්
Dim "ඔබ්ජෙක්ට් එකේ නමA" As New "ක්ලාස් එකේ නම"
Dim "ඔබ්ජෙක්ට් එකේ නමB" As New "ක්ලාස් එකේ නම"
Dim "ඔබ්ජෙක්ට් එකේ නමC" As New "ක්ලාස් එකේ නම"
Dim "ඔබ්ජෙක්ට් එකේ ඉඩ" As "ක්ලාස් එකේ නම"
"ඔබ්ජෙක්ට් එකේ ඉඩ" ="ඔබ්ජෙක්ට් එකේ නමA"
"ඔබ්ජෙක්ට් එකේ ඉඩ" ="ඔබ්ජෙක්ට් එකේ නමB"
"ඔබ්ජෙක්ට් එකේ ඉඩ" ="ඔබ්ජෙක්ට් එකේ නමC"
ඉහත අවසන් පේලි තුන සලකන්න. එයින් මුල් පේලියේදී "ඔබ්ජෙක්ට් එකේ ඉඩ" කරන වෙනස් කම් "ඔබ්ජෙක්ට් එකේ නමA" බලපායි. ඒ ආකාරයටම අනෙක් අවස්ථාවල අනෙක් ඔබ්ජෙක්ට දෙකට බලපායි.
Class "ක්ලාස් එකේ නම"
Sub New()
End Sub
End Class
ලෙස කේතනය කලහොත් නව ඔබ්ජෙක්ටුවක් සෑදෙන විට
Sub New()
End Sub
අතර කේත කොටස ක්රියාත්මක වේ.
Sub New()
End Sub
Sub New(ByRef a As branch, l As branch_)
End Sub
ලෙස New ක්රියාවලි කිහිපයක් ලිවිය හැක. එවිට ක්රම කිහිපයකින් ඔබ්ජෙක්ට් සෑදීම කල හැක.
***************************************
පරිගනක මතකය තුල දත්ත විශාල ප්රමාණයක් තැන්පත් කිරීම සඳහා සාමාන්යයෙන් array, queue, stack, list යන දත්ත ආකෘති පාවිච්චි කරයි. (නම වෙනස් වුවත් මේවායේ මහා ලොකු වෙනසක් නැත) නමුත් මෙහිදී දත්ත එකිනෙක අතර සම්බන්ධයක් ඇති නොවේ. විභාගයකට සහභාගිවූ සිසුන් ලක්ෂයකගෙන් වැඩිම ලකුනු ගත් සිසුවා තේරීම වැනි ගැටලුවක් විසඳීමේදී ඒ සඳහා ඉහත ආකාරයේ දත්ත අකෘතියක් යොදාගෙන සිසුන්ගේ දත්ත තැම්පත් කලවිට ලැයිස්තුව මුලසිට අගටම කියවා අවශ්ය දත්තය සෙවීමට සිදුවේ.
ශාකීය දත්ත ආකෘතිය මෙවැනි ගැටලු සඳහා පහසුවෙන් යොදාගත හැකි විකල්පයකි.
ශාකීය දත්ත ආකෘතිය උදාහරණයක් මඟින් මෙසේ පැහැදිලි කල හැක.
ආයතනයක "සේවකයෙක්ට" ඔහු යටතේ සේවකයන් දෙදෙනෙක් (ඔවුන් A,B ලෙස ගනිමු) තබාගත හැකියැයි සිතමු. A සහ B යනු "සේවකයන්ම" බැවින් ඔවුන්ටද එකිනෙකාට "සේවකයන්" දෙදෙනා බැගින් තබාගත හැක මෙසේ දිගටම කිරීමේදී ගොඩනැගෙන පිරමිඩාකාර ව්යුහය ශාකීය දත්ත ආකෘතියකට උපමාකල හැක.
විශුවල් බේසික් වලින් ශාකීය දත්ත ආකෘතියක් තැනීමේදී class සංකල්පය යොදා ගත යුතුය.
ඉහත උදාහරණයේදී දැක්වූ ව්යුහයේ මූලික ඒකකය

ලෙස දැක්විය හැක. මෙම ඒකකයක් node ලෙස හඳුන්වයි. ඉහත එකකය පහත දැක්වෙන පරිදි ක්ලාස් එකකින් නිරූපනය කල හැක.
Class සේවකයා
Dim A As new සේවකයා
Dim B As new සේවකයා
End Class
විභාගයකට සහභාගිවූ සිසුන් ලක්ෂයකගෙන් වැඩිම ලකුනු ගත් සිසුවා තේරීම වැනි ගැටලුව සැලකීමේදී ඒ සඳහා ශාකීය ආකෘතියක් යොදා ගැනීමේදී මූලික ඒකකය මෙලෙස සැකසිය හැක.
Class සිසුවා
Dim සිසුවාගේ_නම As string
Dim සිසුවාගේ_ලකුණු As integer
Dim වැඩි As සිසුවා
Dim අඩු As සිසුවා
End Class
මුල් සිසුවාගේ තොරතුරු ඇතුළත් කිරීමේදී ඔහුගේ නම සිසුවාගේ_නම තුලත් ලකුණු සිසුවාගේ_ලකුණු තුලත් ඇතුළු කලහැකි ලෙස සැකසිය යුතුය.
නව සිසුවෙකුගේ ලකුණු ඇතුලත් කරන විට ඔහුගේ ලකුණු මුල් සිසුවාගේ ලකුණු වලට වඩා වැඩිනම් වැඩි තුලත්, අඩුනම් අඩු තුලත් නව සිසුවාගේ දත්ත ඇතුළු කල යුතුය. ඒ සඳහා පහත පරිදි කේතනය කල යුතුය.
Public Class Form1
Dim a As සිසුවා
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
a = New සිසුවා("", 0)
End Sub
Dim b As සිසුවා
Friend Sub brancing(name As String, mark As Integer)
b = a
If b.සිසුවාගේ_ලකුණු < mark Then
b.වැඩි = New සිසුවා(name, mark)
Else
b.අඩු = New සිසුවා(name, mark)
End If
End Sub
End Class
Class සිසුවා
Friend is_end As Boolean = False
Sub New(name As String, mark As Integer)
සිසුවාගේ_නම =name
සිසුවාගේ_ලකුණු =mark
End Sub
Friend සිසුවාගේ_නම As String
Friend සිසුවාගේ_ලකුණු As Integer
Friend වැඩි As සිසුවා
Friend අඩු As සිසුවා
End Class
මෙම ක්රියාවලිය ස්වයංක්රීයව කරවීමට පහත පරිදි කේත ලිවිය යුතුය.
Public Class Form1
Dim a As සිසුවා
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
a = New සිසුවා("", 0)
End Sub
Dim b As සිසුවා
Sub add_data(name As String, mark As Integer)
b = a
search(mark)
brancing(name, mark)
End Sub
Friend Sub brancing(name As String, mark As Integer)
If b.සිසුවාගේ_ලකුණු < mark Then
b.වැඩි = New සිසුවා(name, mark)
Else
b.අඩු = New සිසුවා(name, mark)
End If
End Sub
Sub search(mark As Integer)
Dim c As සිසුවා = b
Do
If c Is Nothing Then
Exit Sub
End If
b = c
If b.සිසුවාගේ_ලකුණු < mark Then
c = b.වැඩි
Else
c = b.අඩු
End If
Loop
End Sub
End Class
Class සිසුවා
Sub New(name As String, mark As Integer)
සිසුවාගේ_නම = name
සිසුවාගේ_ලකුණු = mark
End Sub
Friend සිසුවාගේ_නම As String
Friend සිසුවාගේ_ලකුණු As Integer
Friend වැඩි As සිසුවා
Friend අඩු As සිසුවා
End Class
මෙහි සම්පූර්ණ කේතය මෙතනින් ලබා ගන්න. මෙවැනි කේතනයකදී කරන කාර්යය ගැන සිතා දත්ත ආකෘතිය සකසා එය හැසිරවීමට අවශ්ය ක්රියාවලි සුදුසු පරිදි ලිවිය යුතුය.
**************************
ශාකීය දත්ත ආකෘතියයක් යොදාගෙන කලහැකි සුන්දර කටයුත්තක් නම් ෆ්රැක්ටල් (factal) මෝස්තර සෑදීමයි. ෆ්රැක්ටල් මෝස්තර සෑදීමේදී ඒ සඳහා යොදාගත හැකි සරලම ක්රමය වන්නේ ශාකීය දත්ත ආකෘතියක් හරහා එය කරගැනීම විය යුතුය.
උදාහරණ 1:
මෙහිදී මූලික ඒකකය ලෙස යොදා ගන්නා ක්ලාස් එක ලෙස branch ක්ලාස් එක සාදා ඇත. එය තුල ෆ්රැක්ටල් මෝස්තරය සඳහා යොදා ගන්නා හැඩ තලයේ (මෙහිදී එය රේඛා ඛණ්ඩයකි) ආරම්භක ලක්ෂයේ ඛණ්ඩාංකය, දිග, ඝනකම, සහ කෝණය ඇතුලත්කර ඇත. එයට අමතරව Friend l_b, r_b, m_b As branch ලෙස ශාකා ක්ලාස් 3ක් සඳහා ඉඩ ඇතුලත්කර ඇත.
draw() ක්රියාවලිය මඟින් හැඩ තලය ඇඳිම සිදු කරයි. මෙහිදී විෂුවල් බේසික් වල ග්රැෆික් ක්රියාවලි ගැන යම් අවබෝධයක් තිබිය යුතුය. නමුත් මෙහිදී අඳින්නේ රේඛා ඛණ්ඩයක් නිසා එම කේතය පහසුවෙන් අවබෝධ කරගත හැකියැයි සිතමි.
brancing() ක්රියාවලිය මඟින් ඔබ්ජෙක්ටුවේ ශාකා තුන නිර්මාණය කෙරෙයි.
සාමාන්යයෙන් ගණිතයේදී පාවිච්චි කෙරෙන්නේ මෙවන් ඛණ්ඩාංක තලයක් වුවත්,
විෂුවල් බේසික් වල ග්රැෆික් කටයුතු වලදී පාවිච්චි කරන්නේ මෙවැනි ඛණ්ඩාංක ක්රමයකි.
එමනිසා මෙහිදී අක්ෂ පරිවර්තනයක් කල යුතුය.
මුලින්ම මුල් ඔබ්ජෙක්ටුව සාදා එයට අවශ්ය දත්ත ඇතුළු කරයි. ඉන්පසු එහි ඇති draw() සිදුකර brancing() ක්රියාවලිය ආරම්භ කරයි.
නව ඔබ්ජෙක්ටුවක් සෑදෙන හැම විටම එම ඔබ්ජෙක්ටුව මව් ඔබ්ජෙක්ටුවේ වම, දකුණ හෝ මැද ශාකා වලින් කුමක්ද යන කරුණ මත නව ඔබ්ජෙක්ටුවේ රේඛා ඛණ්ඩයේ කෝණය වෙනස් කිරීමත්, එහි දිග අඩු කිරීමත් සිදු කරයි. ඉන්පසු draw() සිදුකර brancing() ක්රියාවලිය ආරම්භ කරයි. මෙය level විචල්යය තුල දක්වා ඇති වාර ගණන නැවත නැවත කෙරෙයි. මෙමඟන් ගසක හැඩය ඇති ෆ්රැක්ටල් මෝස්තරයක් සෑදේ.
උදාහරණ 2:
මෙය කලින් උදාහරණයට බොහෝ සමාන කේතයකි. එකම ප්රධාන වෙනස ක්රියා වලිය සිදුවන්නේ ශාකීය දත්ත ආකෘතියේ අග්රය නියෝජනය කරන ඔබ්ජෙක්ටුව සෑදෙන විට පමණක් වීමයි. මෙහි branch ක්ලාස් එක වෙනුවට branch1, branch2 පාවිච්චි කිරීමෙන් වෙනස් මෝස්තර සෑදිය හැක.
Subscribe to:
Posts (Atom)





