Pages

Sunday, January 25, 2015

ATalk ( version 1.0 )


ATalk ( version 1.0 )


ATalk කියන්නෙ ඇත්තටම මගේ ලොකු හීනයක්.. ගොඩක් couples වලට තියෙන ප්‍රශ්නයක් තමයි තමන්ගේ private sms කොහොමද private විදියටම තියාගන්නෙ කියන එක.. සමහර වෙලාවට ගෙදරට මාට්ටු වෙනවා, ඒක නවත්වන්න කියලා sms locker එකක් දා ගත්තට වැඩක් නෑ ලඟම ඉන්න එකෙක් හරි sms වල කියලා තියෙන ඒවා දකිනවා.. ( සමහර වෙලාවට පොඩි ළමයි නරක් වෙන ඒවා නේ එන්නෙත්.. :-p ) ඉතින් ඔන්න ඔය ප්‍රශ්නෙට පොඩි විසඳුමක් විදියට තමයි මේ ATalk එක එළියට එන්නෙ..





මුලින්ම මම පොඩි idea එකක් දෙන්නම් මේක කොහොමද වැඩ කරන්නෙ කියලා.. ඊට පස්සෙ අපි images එක්ක step by step මේ app එක use කරන විදිය බලමු..

ATalk වලදි app එක හරහා phone එකට එන messages ඔක්කොම save වෙන්නෙ වෙනමම inbox එකකට, එතකොට ඒක normal sms inbox එකෙන් පේන්නෙ නෑ.. (ඔන්න ඒක නිසා එක පැත්තකින් sms ආරක්ෂාකාරී වෙනවා..)  ඊට අමතරව අපිට පුළුවන් මේ ATalk එකම normal sms වලටත් use කරන්න. එතකොට ATalk වලින් conversation එකක් කරන කෙනෙකුට ATalk දාගෙන නැති කෙනෙකුට sms එකක් යවන්න ඕන වුනොත් වෙන app එකකට යන්න ඕන වෙන්නෙ නෑ... එකම තැනක ඉඳන් ඔක්කොම කරන්න පුළුවන්..

තව මේ app එකට ඇතුලු වෙනකොටම දාලා තියෙන security system එක අපි normal use කරන unlock pattern එකට වඩා ගොඩක් ආරක්ෂිතයි.. මොකද හැමෝම දන්නවා unlock pattern එක 4n එක දිලිසෙන විදියට angle කරාම ඇඳපු පාරක් වගේ පේනවනේ.. ඒත් මේකෙ තියෙන KNOCK unlock system එකේදි වෙන්නෙ අපි තට්ටු කරන වාර ගානයි area එකයි අනුව තමයි pin එක save කරගන්නෙ.. ඒක නිසා මේකෙදි 4n එක angle කරලා බැලුවත් pattern එක බලාගන්න විදියක් නෑ.. :-)


ඇයි ATalk විශේෂ වෙන්නෙ ???



  • කොච්චර කොහොම කරත් අනිත් ක්‍රම වලදි අපේ sms privacy එක අපිට නැති වෙන නිසා..
  • යවන කෙනා pin එක දුන්නොත් ඇරෙන්න වෙන කෙනෙක්ට sms එක කියවන්න බැරි නිසා..
  • අඩුම ගානෙ network provider (mobitel, dialog, etisalat, hutch...) ට වත් sms එකක කියලා තියෙන දෙයක් කියවන්න බැරි නිසා..
  • sms එකක් අනිත් පැත්තට යවන්නෙම unreadable විදියට නිසා..
  • අපිට ඕනනම් එක message එකෙන් message එකට pin එක වෙනස් කරන්න පුළුවන් නිසා..
  • secret sms වගේම normal sms ත් මේකෙන්ම යවන්න පුළුවන් නිසා..

දැන් අපි බලමු කොහොමද මේ ATalk use කරන්නෙ කියලා...


1) මුලින්ම app එක install කරගන්න ඕන.. මෙතනින් පුළුවන් Play store එකේ තියෙන තැනට යන්න.. එතනින් install කරගන්න.. එහෙමත් නැත්නම් space තියන්නෙ නැතුව atalk කියලා Play store එකේ search කරානම් හොයා ගන්න පුළුවන් වෙයි..


2) install කරගෙන first time app එක open කරන කොට අපිට knock pattern එකක් set කරන්න වෙනවා..




මෙතන තියෙන area වලට තට්ටු කරන පිළිවෙල සහ වාර ගාන අනුව අපිට පුළුවන් knock pattern එකක් set කරගන්න.. ඊට පස්සෙ continue කරලා ආපහු පාරක් ඒ pattern එකම දීලා confirm කරාට පස්සෙ වැඩේ හරි..

දැන් ආපහු පාරක් එළියට ගිහින් app එකට එනකොට අපිට මෙන්න මෙහෙම එකක් එනවා..




දැන් මේ තියෙන කොටුව ඇතුලෙ අපි කලින් set කරගත්ත තට්ටු pattern එක හරියටම දුන්නොත් විතරයි ඇතුලට යන්න පුළුවන්..


3) knock lock එකක් set කරගත්තට පස්සෙ අපිව කෙලින්ම app එකේ main screen එකට ඒ කියන්නෙ අපේ secret inbox එකට අරගෙන යනවා..





4) දැන් මෙතන උඩම තියෙන New Message එක click කරාම අපිට පුළුවන් අළුතින් message එකක් යවන්න ඕන screen එක open කරගන්න..




මේ තියෙන්නෙ new messages යවන screen එක.. මෙතන උඩම To කියලා තියෙන තැන යවන කෙනාගෙ number එක ගහන්න තියෙන්නෙ.. ඊට අමතරව Recent button එකෙන් අන්තිමටම use කරපු ටිකයි, All එකෙන් ඔක්කොම contacts ටිකයි load කරගන්න පුළුවන් පෙන්නලා තියෙන විදියට.. ඉතින් මෙතන වැදගත්ම දේ තමයි අපිට නමේ මතක ඕනම කොටසක් ගහන කොට ඒකට අදාල ටික විතරක් filter වෙන නිසා ලේසියෙන්ම contacts තෝරා ගන්න පුළුවන්..

message එක ගහන්න තියෙන්නෙ යටම තියෙන කොටසෙ.. ඊට අමතරව message එක කියවන්න අවශ්‍ය කරන pin එක දෙන්න තියෙන්නෙ no. එක ගහන තැනට යටින් pin කියලා දීලා තියෙන තැන..

ඔන්න එහෙනම් අපි sample message එකක් යවන්නයි මේ සූදානම..






5) ඊළඟට අපි බලමු කොහොමද මෙහෙම යවන message එකක් අපිට පෙන්නන්නෙ කියලා..




දැක්කද අපි "This is a test message" කියලා එව්වට මෙතන දැන් පෙන්නන්නෙ වෙනමම තේරුමක් නැති අකුරු set එකක්..


6) දැන් අපි බලමු කොහොමද හරි message එක බලාගන්නෙ කියලා..




දැක්කා නේද උඩම තියෙන කොටුවෙ message එක එවපු කෙනා දීපු pin එකම හරියටම දුන්නම ඒක ඇතුලෙ තියෙන හරිම තේරුම අපිට පේනවා..


7) ඊළඟ ප්‍රශ්නෙ app එක නැති කෙනෙක්ට කොහොමද message එකක් යවන්නෙ කියලා..


හරිම simple app එක නැති කෙනෙක්ට යවනවානම් කරන්න තියෙන්නෙ pin එක විදියට 0000 දෙන එක විතරයි.. එතකොට ඒක unreadable විදියට convert වෙන්නෙ නැතුව normal විදියටම යනවා..


8) normal sms බලන්නෙ කොහොමද?

අපිට default load වෙලා තියෙන්නෙ secret inbox එකනේ.. ඉතින් normal inbox එක load කරගන්න නම්, menu touch sensor එක touch කරලා එතනින් Inbox කියන එක select කරානම් වැඩේ ගොඩ..








ඔන්න ඔහොම තමයි ATalk එක use කරන්න තියෙන්නෙ.. මේක දිගටම update කරගෙන යනවා අනිවාර්යෙන්ම internet එක හරහා message කරන්නයි, call ගන්නයි වගේම images, files යවන්න වගේ දේවල් කරන්න පුළුවන් වෙන්න.. එතකොට අපිට පුළුවන් රහසිගත විදියට messages වගේම images පවා යවන්න අඩුම වියදමකින්..

design එකෙත් ලොකු වෙනසක් වෙයි.. ඇත්තටම මට ආසාවක් ඇති වුනා මේක මගේ birthday එක දවසටම release කරන්න ඕන කියලා.. ඒක නිසා design එකයි, security එකයි හිතේ තිබුන විදියටම ආවෙ නෑ මේ version එකේ.. ඒ ටික හදලා ATalk 1.1 එක ලඟදිම එළියට දානවා.. ඒක නිසා හැමෝම ඉවසීමෙන් ඉන්න කියලා ඉල්ලන ගමන් මම සමුගන්නම්..


ATalk 1.1 වල එන්න තියෙන දේවල්..


  • user friendly design
  • security fix
  • sms backup and restore
  • performance improving
  • user defined notification
  • sms alert on/off feature


ATalk මතුසම්බන්ධයි...

Thursday, January 8, 2015

Java Part 10 ( Methods )

Methods in Java


exam නිසා අපේ ජාවා කුප්පියේ අවසාන කොටස දාන්න බැරි වෙයිද කියලා හිතේ පොඩි බයක් තිබුනා.. ඒත් මහින්ද මාමාගෙයි මෛත්‍රී මාමාගෙයි චන්දෙ නිසා ලැබුන නිවාඩුව පාවිච්චි කරලා කොහොමහරි ජාවා කුප්පිය ඉවර කරන්න කියලා තමයි මේ සූදානම... ඉතින් අපි අන්තිමටම කතා කරපු arrays ගැන කාටහරි බලන්න බැරි වුනානම් මෙතනින් ගිහින් ඒක බලන්න පුළුවන්. අපි එහෙනම් වැඩේ පටන් ගමුකෝ..

කට්ටියට මතක ඇති අපි array එකක් use කරේ variable set එකක් group කරලා තියාගන්නනේ.. එ් වගේම method ගැනත් දැනට පොඩි idea එකක් දාගමු. method එකක් කියන්නෙ මොනවහරි coding set එකක් group කරලා තියාගත්තම ඒකට කියන නමට කියලා පොඩ්ඩක් දැනට ඔලුවට දාගමු හොඳද..


Method

මෙහෙම හිතමුකෝ, අපි ලියනවා ලොකුම ලොකු program එකක්. මේකෙ තියෙනවා කියලා හිතන්නකො coding පේලි 1000ක් විතර. මේ 1000 ඇතුලේ අපිට එකම දේ කරන්න ඕන වෙන coding set එකක් අවස්ථා 5ක use වෙලා තියෙනවනම් අපිට ඉතින් මහලොකු අමාරුවක් නෑනේ copy / paste පහසුකම භාවිතා කරලා ඒ අවශ්‍ය තැන් වලට ලේසියෙන්ම ඒ code ටික දාගන්න පුළුවන්නෙ නේද?

හැබැයි java වලදි අපි එකම දේ දෙතුන් පාරක් ලියන්නෙ නෑ.. එහෙම කලා කියලා compile error එන්නෙ නම් නෑ. ඒත් අපි standard එකක් විදියට java වල එකම දේ නැවත නැවත යෙදෙනව නම් ඒක එහෙම ලියන්නෙ නැතුව වෙන option එකක් use කරනවා..

ඉතින් දැන් ඔන්න මාර ප්‍රශ්නයක් තමයි වුනේ.. අපිට එකම දේ use කරන්න වෙනවා අපේ program එකේදි. ඒත් java standard එකක් නිසා එහෙම කරන්න එපා කියනවා. දැන් අපි මොකද කරන්නෙ? 

මෙහෙම හිතමුකො.. අපිට එක පාරක් ලියන්න පුළුවන්නෙ? එහෙනම් අපි මෙන්න මේ සැරින් සැරේ අවශ්‍ය වෙන code ටික වෙනම තැනකින් ලියලා තියාගමු. දැන් අපිට ඒ ටික ඕන වෙනකොට අපි compiler ට ඒක තියෙන තැන කියලා ඒ ටික run කරන්න කියලා කිව්වොත් එයා ඒ ටික run කරලා අපේ වැඩේ අවශ්‍ය විදියටම කරලා දෙනවානේ? ඉතින් එහෙම කරගත්තොත් නම් අපි එක පාරකට වඩා ලියන්නෙත් නෑ, අපිට අවශ්‍ය වැඩේ කරගන්නත් පුළුවන්. ඉතින් ඇත්තටම මෙහෙම අවශ්‍ය වෙන code set එකක් ලියලා පැත්තකින් තියලා අවශ්‍ය වෙලාවට run කරවන මේ සිද්ධිය තමයි method එකකින් අපි කරන්නෙ. 

ඒ කියන්නෙ අපි අපේ main එකට පිටින් මෙහෙම ලියන code set එක ලියන්නෙ method එකක් ඇතුලේ.. ඇත්තම කිව්වොතින් main කියලා කියන්නෙත් method එකක්මයි. එහෙනම් අපි coding ලියන්නෙ මොකක් හරි method එකක් ඇතුලේ.. automatically run වෙන method එකට විශේෂ නමක් කියනවා main method එක කියලා. එහෙම නැතුව අපි පස්සෙ අවශ්‍ය code දාලා හදන method වලට main method එකේ ඉඳන් අවශ්‍ය වෙලාවට call කරන්න ඕන..


How to Declare Methods

method එක ප්‍රධාන කොටස් දෙකක් තියෙනවා.. මම මුලින්ම පොදුවෙ method1 කියලා method එකක් හදන හැටි පෙන්නලාම ඒ කොටස් දෙක ගැන කියන්නම්කො..




උඩ රූපේ පෙන්නලා තියෙන විදියට තමයි method එකක් හදන්නෙ.. මෙතනදි අපිට දෙන්න ඕන නමට කලින් void කියලා දීලා තියෙනවා method එකක් කියලා පෙන්නන්න ඕන නිසා method එකේ නමට පස්සෙ වරහනක් දාලා තියෙනවා. ඊට පස්සෙ ඒ method එක යටතේ ලියන්න ඕන code ටික {} ඇතුලේ ලියන්න තියෙන්නෙ..

ඉතින් මම කොටස් දෙකක් ගැන කිව්වනෙ කලින්. රූපේ රතු පාටින් ඉරි දෙකක් ගහලා තියෙන්නෙ ඒ ප්‍රධාන කොටස් දෙක යටින් තමයි.. මේ void කියලා දීලා තියෙන තැනින් වෙන්නෙ method එක ඇතුලෙදි calculate කරලා හරි user ගෙන් scan කරලා හරි ගන්න මොකක් හරි value එකක් method එකට call කරපු තැනට යවන එක.. වරහන ඇතුලෙන් කරන්නේ මේ method එකට පිටින් අවශ්‍ය කරන value එකක් ගෙන්න ගන්න එක.. අපි ඒකත් පොඩි රූප කෑල්ලකින්ම බලලා ඉමුකෝ..




වෙනස් වෙන තැන් දෙකයි තියෙන්නෙ method එකකට.. එහෙනම් අපිට මේ තැන් දෙක වෙනස් කර කර method එකක් හදන්න පුළුවන් ක්‍රම 4ක් ගන්න පුළුවන්.. 



  1. පළවෙනි එක තමයි ඇතුළට මුකුත් ගන්නෙ නැතුව එළියට value එකක් යවන අවස්ථාව.
  2. දෙවෙනි එක තමයි ඇතුළට මුකුත් ගන්නෙත් නැතුව එළියට value එකක් යවන්නෙත් නැති අවස්ථාව.
  3. තුන්වෙනි එක තමයි ඇතුළට value එකක් ගන්නවා, හැබැයි එළියට value එකක් දෙන්නෙ නෑ.
  4. හතරවෙනි එක තමයි ඇතුළට value එකක් අරගෙන එළියටත් value එකක් දෙන අවස්ථාව.

ඉතින් මේ අවස්ථා හතරට අමතරව තව එකක්වත් තියෙන්න විදියක් නැති නිසා අපි method එකක් මේ අවස්ථා 4ටම හදන හැටියි ඒ ඒ අවස්ථා වලදි main method එකේ ඉඳන් ඒවට call කරන හැටියි බලමු.. 


Return Type

ඊට කලින් මම කියලා ඉන්නම් එළියට යවනවා කියන එකේ හරිම තේරුමයි කොහොමද ඒක වෙන්නෙ කියන එකයි. දැන් කලින් අපි method1 කියලා හදද්දි එළියට යවන තැන void කියලානේ දුන්නෙ? එහෙම void කියලා දෙන්නෙ අපි එළියට මුකුත් යවන්නෙ නෑ කියලා කියන්න, ඒ කියන්නෙ අපි method එක run වෙලා ඉවර වුනාම මුකුත් call කරපු තැනට return කරන්නෙ නෑ කියලා කියන්න තමයි void කියලා use කරන්නෙ..

අපිට මොනව හරි return කරන්න ඕනනම් අපි මේ void කියන එක වෙනුවට එහෙම return කරන්න ඕන value එකෙ data type එක තමයි ලියන්න ඕන.. ඒක නිසා අපි මේ කොටසට කියනවා return type එක කියලා.. උදාහරණයක් විදියට method එකෙ අවසානයට calculate වෙච්ච average එකක් යවන්න ඕනනම් මෙතන void වෙනුවට double කියලා තමයි ලියන්න ඕන. integer value එකක් නම් යවන්නෙ int කියලා ලියන්න ඕන. String value එකක් නම් String කියලා ලියන්න ඕන.. අන්න ඒ වගේ අපිට යවන්න ඕන කරන value එකේ data type එක තමයි void කියන එක වෙනුවට ලියන්න ඕන. integer array එකක් වුනත් යවන්න පුළුවන්. එහෙම යවනවම් මෙතන data type එක විදියට ලියවෙන්න ඕන int[] කියලා.. තේරුණා නේද?

මතක තියාගන්න මෙතනින් මෙහෙම ඒ data type එකට අදාල value එකක් යවන්න permission දුන්නට යවන්නනම් අන්තිමට යවන නිසා method එකේ අන්තිම statement එක විදියට return කියලා ලියලා return කරන්න ඕන value එක ලියන්න තියෙන්නෙ.. උදාහරණයක් විදියට 5 return කරන්න ඕනනම් අන්තිම statement එක විදියට return 5; කියලා ලියන්න තියෙන්නෙ.. double average = 5.5; වගේ double variable එකක තියෙන Value එකක් යවන්න ඕනනම් return type එක විදියට double දීලා අවසාන statement එක විදියට return average; කියලා දෙන්න විතරයි තියෙන්නෙ..


Parameters

ඊළඟට මම කියන්නම් කොහොමද value එකක් ගන්නෙ කියලා.. value එකක් ගන්නනම් ඒක අරගෙන දාගන්න variable එකක් තියෙන්න ඕනනේ.. ඒක නිසා අපිට value එකක් method එකකට ගන්න පුළුවන් වෙන තැන වෙන වරහන ඇතුලෙ අපිට ගන්න ඕන value එකට අදාල variable එකක් හදලා තියන්න ඕන.. ඉතින් අපිට මෙහෙම values දෙක තුනක් ඕනනම් කරන්න තියෙන්නෙ කොමා දදා අවශ්‍ය value වලට variable හදලා තියන්න විතරයි.. මෙහෙම values ගන්න වරහන ඇතුලෙ හදන variable වලට කියන්නෙ parameters කියලා.. එහෙමම මතක තියාගන්න මේ parameters වලට main method එකේදි එවන values වලට කියන්නෙ arguments කියලා.. ඒ වගේම parameters එකකට වඩා තියෙනවානම් arguments එවද්දි parameters වල තියෙන පිළිවෙලටම ඒවා එවන්නත් ඕන.. 

උදාහරණයක් විදියට void method2(String a, int b){} කියලා method එකකට values එවනවා නම් මුලින්ම String variable එකට value එකක් එවලා පස්සෙ integer එකක් එවන්න ඕන. order එක මාරු කරන්න බෑ අපිට.. ඒකත් අමතක කරන්න එපා..

එහෙනම් අපි මේ return type එකයි parameters යි අනුව method එන්න පුළුවන් ආකාර හතරට උදාහරණ අරගෙන ඒවා හදන හැටියි main method එකේදී call කරන හැටියි බලමුකෝ..


Case 1 : return කරන්නෙ නෑ, හැබැයි accept කරනවා...




මේකෙදි return කරන්නෙ නැති නිසා අපි return type එක විදියට දීලා තියෙන්නෙ void කියලා.. accept කරන නිසා වරහන ඇතුලෙ parameters හදලා තියෙනවා.. මෙතනදි නම් String value එකක් ගන්න a කියලා variable එකකුයි, integer value එකක් ගන්න b කියලා variable එකකුයි තමයි හදලා තියෙන්නෙ.. දැන් අපි බලමු කොහොමද මේ method එකට call කරන්නෙ කියලා..




method එකේදි String value එකකුයි integer එකකුයි ඉල්ලන නිසා ඒ දෙක දෙන්නෙ නැතුව අපිට call කරන්නනම් විදියක් නෑ.. ඉතින් ඒක නිසා අපිට ඒ පිළිවෙලටම වරහන ඇතුලෙ ඒ data type වලට අදාල values යවන ගමන්ම තමයි call කරන්න වෙන්නෙත්..


Case 2 : return කරන්නෙත් නෑ, accept කරන්නෙත් නෑ...




මේකෙදි return කරන්නෙ නැති නිසා return type එක විදියට void දීලා තියෙන්නෙ.. accept කරන්නෙ නැති නිසා වරහන ඇතුලෙ කිසිම parameter එකක් දෙන්නෙ නැතුව හිස්ව තියලා තියෙන්නෙ.. දැන් බලමුකො කොහොමද මේ වගේ method එකකට call කරන්නෙ කියලා..




Case 3 : return කරනවා, හැබැයි accept කරන්නෙ නෑ...




මේකෙදි return කරන්නෙ integer value එකක් නිසා return type එක විදියට int කියලා දීලා තියෙන්නෙ.. තව හොඳට බලන්න return statement එක ලියලා තියෙන්නෙ අන්තිම statement එක විදියට.. ඒක අමතක කරන්න එපා.. දැන් අපි බලමුකො කොහොමද මේ වගේ එකකට call කරන්නෙ කියලා..




method3() එකට call කරාට පස්සෙ එයා call කරපු තැනට integer value එකක් එවනවානේ.. ඉතින් අපි මෙහෙම එවන value එක අල්ල ගන්න ඕන නිසා තමයි x කියලා integer variable එකක් හදලා method එක call කරාම එන value එක ඒකට දාන්න කියලා තියෙන්නෙ.. අපිට එහෙම එන value එක use කරන්න ඕන නැත්නම් මෙහෙම int x කියලා variable එකක් හදලා ඒකට දාන්න කියලා නොලිව්වට වැරුද්දක් නෑ. ඒත් method3() එකේ code ටික run වෙනවා. මෙහෙම variable එකක් දෙන එකෙන් වෙන එකම දේ තමයි අපිට එහෙම එන value එක use කරන්න පුළුවන් වෙන එක..


Case 4 : returnut කරනවා, acceptut කරනවා...




මේකෙදි integer value 2ක් ගන්න a,b කියලා integer variable 2ක් parameters විදියට දීලා තියෙනවා.. ඊට පස්සෙ එහෙම ගන්න values වලින් average එක calculate කරලා ඒක return කරන නිසා return type එක විදියට double කියලා දීලා තියෙන්නෙ.. අපි දැන් බලමු කොහොමද මේකට call කරන්නෙ කියලා..




මෙතනදි උත්තරේ 37.5 කියලද එන්නෙ?? ඇත්තටම එහෙම වෙන්නෙ නෑ.. උත්තරේ එන්නෙ 37 යි කියලා.. කට්ටියට මතකද දන්නෙ නෑ මෙතනදි අපි double variable එකකට දැම්මට integer operation එකක් වෙන නිසා අපිට integer වලින් cast වෙලා තමයි උත්තරේ එන්නෙ.. අපිට double value එකක්ම ගන්න ඕනනම් double වලින් cast කරන්න වෙනවා.. Casting මතක නැත්නම් සම්පූර්ණ විස්තරේම මෙතනින් ගිහින් බලලා එන්නකො..




එහෙනම් methods කියන්නෙ මොකක්ද, කොහොමද method එකක් හදාගන්නෙ සහ ඒවට call කරන්නෙ කොහොමද කියලා හැමෝටම තේරුනා කියලා හිතනවා.. එහෙනම් අදින් අපේ java kuppiya ඉවර කරමු.. ඊළඟ කොටසෙ ඉඳන් අපි OOP එක්ක හමු වෙමු කියලා සතුටින් කියන ගමන් මම සමුගන්නම්...



Saturday, December 6, 2014

Java Part 9 ( Arrays )

How to use Arrays in Java



අපි අවසානයටම කතා කරේ තරු රටා print කරන්න හිතන්නෙ කොහොමද කියලානේ.. හැබැයි ඒක දාලා ගොඩක් දවස් යනකන් මේ පැත්තට එන්න බැරි වුනා. ඇත්තටම මේ සති දෙක තුන හොඳටම හිරවුනා. දන්න කට්ටිය දන්නවත් ඇති කොච්චර වැඩ set වුනාද කියලා. හැමදාම අද කීය වෙනකන්හරි ඉඳලා කොහොමහරි දානවා කියලා හිතාගත්තත් මහන්සියට නින්ද ගිහිල්ලා හරි වැඩේ මග ඇරුනා.. කමක් නෑ. අදනම් නිදිමත නැති කරගෙන කොහොමහරි දානවා කියලා හිතාගෙන තමයි මේ වැඩේ පටන් ගන්න සූදානම.. :-)

Arrays

arrays කියන්නෙ java වල තියෙන වැදගත්ම වගේම ගොඩක් අය පටලවාගන්න තැනක්.. ඒක නිසා අපි ටිකෙන් ටික හෙමිහිට වැඩේ හිතන විදියම ඔලුවට දාගමු.. මුලින්ම අපි array එකක් කියන්නෙ මොකක්ද කියලා පොඩි idea එකක් අරගෙනම array එකක් ඕන වුනේ ඇයි කියලා බලමු. දැනට array එකක් කියන්නෙ variable set එකක් එකට තියලා හදාගත්තු variable group එකක් කියලා මතක තියාගන්නකො..

why array?

මෙහෙම හිතමුකො.. අපිට ළමයි 5 දෙනෙක්ගෙ subject 3ක marks තියාගන්න ඕන වෙනවා කියලා ගමුකො.. එතකොට එක ළමයෙක්ට 3 ගානෙ ළමයි 5ට variable 15ක් හදන්න වෙනවා නේද? ඒකත් නෙවෙයි ප්‍රශ්නෙ එක සැරේටම එක ළමයෙක්ට අදාළ marks ගන්න ගියාම ඒ අදාළ variable 3 හොයාගන්න බැරි වෙනවානෙ.. ඉතිං මෙන්න මේ වගේ වෙලාවට තමයි හිතෙන්නෙ අපිට variable 3ක් group කර ගන්න පුළුවන් නම් එහෙම හදාගන්න group 5කට ලේසියෙන්ම ළමයින්ගෙ ලකුණු දාගන්න පුළුවන්නෙ කියලා.. ඕන වෙලාවක ඒවා access කරන්නත් ලේසියි. අන්න ඒක නිසා තමයි අපිට Array වල අවශ්‍යතාවය ආවෙ..

Declare an Array

හොඳට මතක තියාගන්න array එකකදි group කරලා තියාගන්න පුළුවන් එකම ජාතියෙ variable set එකක් විතරයි හොඳද.. දැන් අපි බලමුකො කොහොමද array එකක් declare කරගන්නෙ කියලා. හැබැයි ඊට කලින් අපිට normal variable එකක් declare කරන විදිය බලල ආවනම් හොඳයි කියලත් හිතෙනවා.. එහෙනම් මෙතනින් ගිහින් ඒ ගැන බලලම එන්නකො..

මම උදාහරණයක් විදියට integer variable 5ක් group කරලා හදන array එකක් ගන්නම්කො..




මේ තියෙන්නෙ normal integer variable එකක් හදන එකනේ.. ඉතින් මෙතනදි හොඳට මතක තියාගන්න x කියන්නෙ integer value එකක් තියාගන්න පුළුවන් variable එකක label එකනේ.. array එකක් කියලා අඳුරගන්න තියෙන්නෙ arrays වලදි [] කොටු වරහනක් එනවා.. එහෙනම් integer array එකක් x කියලා හදනවානම්...




දැක්කා නේද? මතක තියාගන්න අමාරු නෑ.. දැන් ඊළඟට කෙනෙක්ට ප්‍රශ්නයක් එන්න පුළුවන් array එකක් කියලා compiler ට අඳුරගන්න දාන මේ කොටු වරහන දාන්න ඕන කොතනටද කියලා.. 




රූපේ පෙන්නලා තියෙන විදියට මේ කොටු වරහන මේ තැන් තුනටම වැරදිලා හරි දාන්න පුළුවන් නේද? ඉතිං java කොච්චර හොඳ language එකක්ද කියනවානම් කොටු වරහන එන්න පුළුවන් මේ තැන් තුනම compiler ට කියලා දීලා තියෙන්නෙ.. ඉතිං ඒක නිසා කාටවත්ම වැරදිලාවත් මේක වරදින්න විදියක් නෑ.. :-p




රූපෙන් පෙන්නලා තියෙන විදියට normal x variable එකට 5 කියන එක දාපු විදියටම x කියන integer array එකටත් 5 කියන value එක දීලා තියෙනවා. ඇත්තටම මෙහෙම කරන්න පුළුවන්ද? උත්තරේ බෑ කියන එක. ඒකට හේතුව තමයි int x කියලා හදන x variable එක තියාගන්නෙ integer value එකක් නිසා එයාට integer value එකක් වෙන 5 තියාගන්න පුළුවන්. හැබැයි int[] x කියලා හදන x variable එක integer array එකක් වෙනුවෙන් හදන variable එකක් නිසා එයාට නිකම්ම integer values තියාගන්න බෑ. එයාට තියාගන්න පුළුවන් integer array එකක් විතරයි. ඒ කියන්නෙ එයාට integer values තියාගන්න බෑ. හැබැයි integer variable එකක් group කරලා තිව්වම ඒක තියෙන්නෙ කොහෙද කියලා address එක තියාගන්න පුළුවන්. 

ඒක නිසා හොඳට මතක තියාගන්න int[] x කියලා අපි හදන්නෙ integer array එක නෙවෙයි අපි ram එකේ හදන integer array එකක් තියෙන්නෙ කොහෙද කියලා හොයාගන්න පුළුවන් වෙන්න ඒකෙ address එක තියාගන්න හදන address variable එකක් නැත්නම් reference variable එකක් කියලා..

අනික මෙතන integer variable කීයක් group කරලද කියලා සඳහනකුත් නෑනේ.. මෙතන තියෙන්නෙ ඕනම integer array එකක address එකක් තියාගන්න පුළුවන් address variable එකක් විතරයි..

දැන් අපි බලමු එහෙනම් කොහොමද මේ කියන integer variable set එකක් group කරන්නෙ කියලා..




රූපේ පෙන්නලා තියෙන විදියට තමයි අපි integer variable 5ක් group කරන්නෙ නැත්නම් integer variable 5ක array එකක් හදන්නෙ.. මෙතනදි මතක තියාගන්න එච්චර අමාරු නෑ. අපි අළුතින් හදන නිසා new කියලා එනවා හදන්නෙ integer array එකක් නිසා int[] කියලා එනවා. අපිට ඕන integer variable 5ක array එකක් නිසා කොටු වරහන ඇතුලෙ 5 කියලා දෙනවා. ඇත්තටම මෙතනදි තමයි අපි අවශ්‍ය variable ගාන කියන්නෙත්. අවශ්‍ය ගාන කොටු වරහන් ඇතුලෙ දාන්න විතරයි තියෙන්නෙ..

දැන් ඉතින් අපිට තියෙන්නෙ මේ හදාගන්න variable group එක නැත්නම් ARRAY එකේ address එක address variable එකකට දාගන්න එක. බලමුකො ඒක කොහොමද කරන්නෙ කියලා..




රූපෙ පෙන්නලා තියෙන විදියට දකුණු පැත්තෙ තියෙන code එක නිසා ram එකේ හැදෙන array object එකේ address එක වම් පැත්තෙ තියෙන x කියන integer array address variable එක ඇතුලට දානවා..

Use Array

දැන් එහෙනම් අපි බලමුකො කොහොමද මේ හදන array එකට values දාන්නෙ කියලයි ආපහු ඒවා ගන්නෙ කොහොමද කියලයි.. ඊට කලින් අපි පොඩ්ඩක් බලලා ඉමු ram එකේ මේ array එක හැදෙන්නෙ කොහොමද කියලා පොඩි චිත්‍ර කෑල්ලකින්..




ram එකේ පැත්තක හැදෙන integer variable 5කින් යුතු array object එකේ address එක x කියන address variable එක ඇතුලට දාලා තියෙනවා..

දැන් නිකමට හිතලා බලන්නකො අපි x කියලා normal integer variable එකක් හදලා ඒකට value එකක් දානවනම් int x; කියලා variable එක හදලා පස්සෙ x = 5 කියලා දාන්න පුළුවන්නෙ.. ඒත් දැන් array address variable එක x වෙච්ච එකේ තියෙන array object එකේ එක variable එකකට value එකක් දාන්නනම් අපි array object එක ඇතුලෙ තියෙන variable 5ටත් label දෙන්න ඕන නේද? ඉතින් array object එකක් හැදෙද්දි ඒ variable ටික (element ටික) 0 ඉඳන් automatically index වෙනවා පහත රූපෙ පෙන්නලා තියෙන විදියට.




දැන් ඉතින් අපිට තියෙන්නෙ value එකක් දෙනවානම් ඒ අදාළ variable එකටම දාන්න කියලා දෙන එක විතරයි. අපි බලමුකො එහෙනම් 3න් වෙනි variable එකට 5 කියන value එක දාන්නෙ කොහොමද කියලා. මෙතනදි හොඳට මතක තියාගන්න 3න් වෙනි element එකේ index එක වෙන්නෙ 2 කියලා මොකද index වෙන්න පටන් ගන්නෙ 0 ඉඳන්නෙ.. ගොඩක් අය මේ දේ වරද්දගන්නවා.. ඒක පොඩ්ඩක් ඔලුවට දාගන්න..




රූපේ පෙන්නලා තියෙන විදියට තමයි 3වෙනි element එකට 5 කියන value එක දාන්නෙ.. මේක මතක තියාගන්න ඇත්තටම අමාරු නෑ... array එකේ address variable එක x නිසා x කියලා ලියලා array එකක් නිසා [] කොටු වරහන දානවා. මොන element එකටද value එක වැටෙන්නෙ ඕන කියලා දෙන්න කරන්න තියෙන්නෙ ඒ element එකේ index එක මේ කොටු වරහනෙ ඇතුලෙ ලියන එක විතරයි. දැන් ඉතිං x[2] කියන්නෙ සාමාන්‍ය integer variable එකක්ම නිසා ඒකට දැන් normal variable එකකට value එකක් දාන විදියටමයි value එක දාන්න තියෙන්නෙ..

අපිට 5 වෙනි element එකට 3 දාන්න ඕන වුනානම් code එක ලියවෙන්නෙ x[4] = 3; කියලා. තේරෙනවා නේද දැන්???

එහෙනම් අපි බලමු කොහොමද දැන් මේ දාපු value එකක් use කරන්නෙ කියලා.. ඇත්තටම ඉතින් මෙච්චර වෙලා කියපුවා තේරුනානම් දැන් ගේමක්ම නෑ ඉතිං..

හිතන්නකො අපිට 3 වෙනි element එකේ තියෙන value එක Print කරන්න ඕන වුනා කියලා..




ඉතින් අපිට තේරෙනවානම් array එක ඇතුලෙ තියෙන තනි variable එකක් access කරගන්න එතනින් එහාට ඒක සාමාන්‍ය variable එකක් වගේම තමයි use වෙන්නෙ..

එහෙනම් කට්ටියටම array කියන්නෙ මොකක්ද? ඇයි array එකක් අවශ්‍ය වුනේ? array එකක් හදන්නෙ කොහොමද? array එකක් use කරන්නෙ කොහොමද කියලා පොඩි හරි idea එකක් ආවා කියලා හිතනවා.. කෝකටත් කියලා මම පොඩි summary එකකුත් දෙන්නම්කො..

Summary



  • Array එකක් කියන්නෙ එකම ජාතියේ variable set එකක එකතුවක්.. (group එකක්)
  • Array එකක ප්‍රධාන කොටස් දෙකක් තියෙනවා address variable එකයි array object එකයි කියලා..
  • Array එකක elements label වෙන්නෙ 0 ඉඳන් index විදියට..
  • 0 ඉඳන් index වෙන නිසා අවශ්‍ය element එකේ index එක වෙන්නෙ ඒකට එකක් අඩු එක.



හිතට ලොකු සතුටක් දැනෙනවා කොහොමහරි නිදාගන්නෙ නැතුව මේක ඉවර කරන්න ලැබුන නිසා.. හෙට දවසෙත් කරන්න ගොඩක් වැඩ තියෙනවා. ඒක නිසා දැන්වත් ටිකක් නිදාගන්න ඕන. ඉතින් කාටහරි ප්‍රශ්නයක් තියේනම් අනිවා අහන්න. මම වැඩිය මුකුත් නොකියා එහෙනම් වැඩේ මෙතනින් නවත්වනවා.. ඊළඟ කොටසින් අපි method ගැන කතා කරලා java programming වලින් කෙලින්ම Object Oriented Programming (OOP) වලට යමු.. එහෙනම්,

මතුසම්බන්ධයි..

Saturday, November 8, 2014

Java Part 8 ( star patterns part 2 )

How to program Star PATTERNS in JAVA ( part 2 )


ඇත්තටම exam එක්ක ටිකක් හිරවුන නිසයි තව පොඩි පොඩි ප්‍රශ්න ටිකකුයි නිසා තමයි දෙවෙනි කොටස දාන්න මෙච්චර පරක්කු වුනේ.. ඇත්තටම පරක්කු වුන එකට sorry වෙන්න ඕන.. කට්ටියම එහෙනම් තනියම තරු රටා print කරන්න try කරලා එන්න ඇති කියලා හිතනවා.. අද අපි බලමු කොහොමද ඒ ටික print කරන්න program එකක් හරියටම තනියම හිතාගන්නෙ කියලා.. ආපහු පාරක් මතක් කරනවා හිතන විදිය පුරුදු වෙන්න code කටපාඩම් කරන්නනම් එපා කිසිම තේරුමක් වෙන්නෙ නෑ.. අපි කෙලින්ම වැඩේට බහිමුකො..

මෙන්න මේ ටික තමයි අපි print කරන්න යන්නෙ..


මුල්ම තරු රටාව විදියට අපිට තියෙන්නෙ තනි තරුවක්නෙ.. ඉතිං කට්ටිය බලනවා ඇති මේකෙ මොන රටාවක්ද කියලා නේද? ඔහොමම ඉන්නකො.. එතකොට තේරෙයි ඒකෙන් පටන් ගන්නෙ ඇයි කියලා.. එහෙනම් අපි ඒකට ලියන code එක මුලින්ම බලමුකො..


මේකෙ ඇත්තටම කාටවත් හිතන්න කියලා ප්‍රශ්නයක්නම් නෑනෙ ඉතින්, එක තරුවක් print කරන්න print statement එකක් ලියන්න විතරයි තියෙන්නෙ.. ඊළඟට අපි එහෙනම් බලමු තරු 5 හේ පේළිය එක print statement එකකින් ලියන්නෙ කොහොමද කියලා..


පොඩ්ඩක් කල්පනා කරලා බැලුවම ඒ රටාව ඇතුලෙ තියෙන්නෙ අර තනි තරුව වගේම 5ක් නේද..? ඉතින් එහෙම තනි තරුව වගේම 5ක් නම් මෙතන තියෙන්නෙ අපිට පුළුවන්නෙ තනි තරුවක් print කරන්න ලියපු code එක 5 පාරක් ලියලා මේක ගන්න.. ඇත්තටම පුළුවන් ඒත් අපිට ප්‍රශ්නෙ තියෙන්නෙ print statement එකක් විතරක්නෙ use කරන්න වෙන්නෙ.. දැන් ඉතින් කට්ටියට මතක් වෙන්න ඕන මොකක් හරි දෙයක් කිසියම් නිශ්චිත වාර ගනනක් run කරවන්න නම් මොකක්ද use කරන්න වෙන්නෙ කියලා.. මතක කට්ටියට නම් ඔලුවට එනවා ඇති for loop එක තමයි use කරන්න ඕන මෙතනදි කියලා.. හරියටම for loop එක run වෙන විදිය මතක නැත්නම් පොඩ්ඩක් බලලා එන්න මොකද එහෙම නැති වුනොත් මේකත් තෙරෙන්නෙ නැතුව යයි.. 

දැන් එහෙනම් අපි බලමු කොහොමද for loop එක use කරලා ඒ රටාව ගන්නෙ කියලා..


මෙතනදි අර තනි තරුව print කරන්න ලියපු code එක 5 පාරක් run කරවන්න කියලා for loop එකක් දාලා කියලා තියෙනවා. පේනවා නේද අපිට තනි තරුවක් print කරන එක ඕන වුනේ ඇයි කියලා? මෙතනදි කරලා තියෙන්නෙ ඒ තනි තරුවට ලියපු code එක 5 පාරක් run කරවන්න කියලා loop එකක් දාපු එක..

දැන් ඊළඟට අපි බලමු කොහොමද 5*4 කොටුව හදන්නෙ කියලා..


දැක්කා නේද? මෙතන තියෙන්නෙ මොකක්ද? අපි අර කලින් ගහපු තරු 5 හේ රටාව වගේ 4 ක් නේද? එහෙනම් අපිට කරන්න තියෙන්නෙ මුලින්ම තරු 5 හේ පේළිය print වෙන්න statements ලියලා ඒ තරු 5 print වෙන code set එක තව 4 පාරක් loop කරවන්න නේද? එහෙනම් අපි බලමු කොහොමද ඒක කරන්නෙ කියලා..


මේකෙ අංක 2 දාලා තියෙන for loop එකෙන් වෙන්නෙ හරහට තියෙන තරු 5 print වෙන එක. ඒ කියන්නෙ ඇතුලෙ තියෙන for loop එක ලියන්න ඕන column ගානට.. එළියෙ තියෙන අංක 1 දාපු for loop එකෙන් වෙන්නෙ පහළට යන එක.. ඒ කියන්නෙ rows ගාන ගැන කියවෙන්නෙ මේකෙන්.. මේ for loop එකේ size එක වෙන්නෙ අපිට පහළට ඕන rows ගණන.. දැන් ඉතින් හිතුනට මෙහෙම code එක ලිවුවම ලස්සනට උඩ තියෙන විදියටම print වෙයි කියලා ඇත්තටම print වෙන්නෙ මෙන්න මේ විදියට..


අවුල් වගේ නේද? එහෙම එක පේළියකටම print වුන හේතුව කියලා දෙන්න කලින් terminal එකේ print වෙන හැටි හරියටම තේරුම් ගන්න මේක බලලම එන්නකෝ..

ඒක බැලුවනම් දැන් තේරෙනවා ඇති ඇයි එහෙම උනේ කියලා.. ඇත්තටම අපි තරු 5ක් print වෙන codes 4 පාරක් loop කරවලා තියෙන නිසා රූපෙ පේන විදියට තරු 5 හේ ඒවා 4ක් print වෙලා තියෙන්නෙ. ඒත් හැබැයි අපිට වෙන්න ඕන තරු 5ක් print වුනාට පස්සෙ අළුත් line එකකට ගිහින් අනිත් තරු 5 print වෙන්නනෙ.. එහෙනම් අපි දැන් කරන්න ඕන තරු 5ක් print වුනාට පස්සෙ cursor එක අළුත් line එකකට යවන එක.. දැන් එහෙනම් බලමු අපි අළුත් line එකක් print කරන්න ලියන System.out.println(""); code එක කොතනද ලියන්න ඕන කියලා..


අපිට අළුත් line එකකට යන්න ඕන වෙන්නෙ තරු 5හේ පේළි එකක් ඉවර වුනාට පස්සෙ නිසා තමයි මෙහෙම ඒ තරු 5 print කරන for loop එක ඉවර වුනාට පස්සෙ අළුත් line එකකට යන statement එක ලියලා තියෙන්නෙ..

ඒකත් තේරුම් ගත්තා නම් අපි දැන් ඊළඟට බලමු කොහොමද අපේ ඊළඟ රටාව print කරන්න හිතන්නෙ කියලා.. මෙන්න මේක තමයි අපිට ඊළඟට තියෙන්නෙ..


මේකෙනම් ටිකක් විතර හිතන්න දෙයක් තියෙනවා.. මුලින්ම තේරෙන්න ඕන දේ තමයි පහළට තියෙන row ගානට එක for loop එකකුයි දකුණට තියෙන column ගානට ඒක ඇතුලෙ තව for loop එකකුයි ලියන්න වෙනවා.

ඊළඟට බැලුවම තේරුම් ගන්න ඕන දේ තමයි කලින් 5*4 රටාවෙදි වගේ මේකෙ හැම row එකකම තරු 5ක් නෙවෙයි තියෙන්නෙ.. ඉතින් අපිට දැන් ප්‍රශ්නයක් එනවා එහෙනම් කොහොමද column ගානට ලියන for loop එකේ size එක තීරණය කරන්නෙ කියලා. තව ටිකක් හොඳට බැලුවමනම් තේරුම් ගන්න පුළුවන් මේ හරහට තියෙන තරු ගණන row ගාන එක්ක සම්බන්ධයක් තියෙනවා කියලා. පළවෙනි පේළියෙදි එක තරුවයි. දෙකේදි දෙකයි, තුනේදි තුනයි, හතරදෙි හතරයි, පහේදි පහයි.. අන්න ඒක නිසා අපි තීරණය කරනවා ඇතුලෙ for loop එකේ size එකට එළියෙ for loop එකෙන් සම්බන්ධ කරන්න වෙනවා කියලා.. දැන් එහෙනම් අපි බලමු කොහොමද ඒ සම්බන්ධෙ හරියටම දෙන්නෙ කියලා.


ආපහු පොඩ්ඩක් මේ 5*4 රටාවෙ code එක බලලම ඉන්නකො.. මේකෙ හරහට තියෙන තරු ගාන හැම තිස්සෙම 5ම නිසා තමයි ඇතුලෙ තියෙන for loop එකේ size එක විදියට 5 දීලා තියෙන්නෙ.. ඒත් දැන් අපිට තියෙන්නෙ එහෙම නියත අගයක් නෙවෙයි නිසා අපිට ඒ අදාළ row එකට අදාළව ඇතුලෙ for loop එකේ size එක හිතලා දෙන්න වෙනවා..


දැන් පේනවා නේද ඇතුලෙ for loop එකේ size එක විදියට අපි දැන් දීලා තියෙන්නෙ row එකේ ඒ run වෙන වෙලාවට තියෙන row value එක.. හැබැයි මෙතනදි පොඩි ප්‍රශ්නයක් තියෙනවා.. පළවෙනි පාර code එක run වෙනකොට j ගෙ අගය 0 යි නේ? හැබැයි ඇතුලෙ for loop එකේ condition එකේදි i කුඩායි 0 කියන එක i ත් 0 නිසා false වෙනවා.. ඒක නිසා පළවෙනි අවස්ථාව මගහැරිලා තරු පේළි 3යි වදින්නෙ.. ( පළවෙනි එක නිකම්ම false වෙලා තරු print වෙන්නෙ නැති නිසා.. )

මුල්ම සැරෙත් condition එක true වෙන්න ඕන නිසා අපි condition එක i කුඩා හෝ සමානයි j කියලා දැම්මොත් හරි නේද? එතකොට 0 සමානයි 0 කියන එකත් true වෙන නිසා කිසිම ප්‍රශ්නයක් වෙන්නෙ නෑ.. දැන් එහෙනම් එන්න ඕන හරිම code එක බලමුකෝ..


දැන් ප්‍රශ්නෙ හරි නේද? පළවෙනි පේළියෙදි එක පාරයි ඇතුලෙ for loop එක run වෙන්නෙ. ඒක නිසා එක තරුවයි print වෙන්නෙ. ඒක Print වෙලා අළුත් line එකකට යනවා. ඊට පස්සෙ දෙපාරක් condition එක true වෙන නිසා තරු දෙකක් print වෙනවා. පස්සෙ තරු 3යි, ඊට පස්සෙ තරු 4 යි.. දැන් තේරෙනවා නේද ඒ රටාව හරියටම හිතලා ගන්නෙ කොහොමද කියලා?

දැන් එහෙනම් අපිට තියෙන අන්තිම රටාවත් බලලම ඉමුකෝ..


මේකෙත් කලින් රටාවෙ වගේම පහළට තියෙන row එක මත දකුණට තියෙන තරු ගණන තීරණය වෙනවා.. හැබැයි හරහට හිටින්නෙ මේකෙ මුලින්ම space වගයක් තියෙන එකනේ.. මාර වැඩේ තමයි. දැන් කට්ටිය හිතනවා ඇති space නැති වුනානම් nothing කියලත් නේද? ඇත්තටම එහෙම වුනානම් මේකත් කලින් රටාවම වෙනවානේ..

දැන් ඉතින් අපි space ටික ගහගන්න ඒකෙ රටාවක් හොයාගන්න ඕන.. ටිකක් හොඳට බැලුවනම් පේනවද එතනත් රටාවක් තියෙනවා කියලා..?


පේනවද spaces වලත් මොකක්ම හරි රටාවක් තියෙනවා.. පළවෙනි එකේදි space 4යි, දෙකේදි 3යි, තුනේදි 2යි, හතරෙදි 1යි, පහේදි 0යි.. බලාගෙන ගියාම එතන size එක එන්නෙ row ගානෙන් අදාළ row එක අඩු කරාම නේද?

පළවෙනි එකේදි space 5 - 1 = 4 යි..
දෙකේදි space 5 - 2 = 3 යි..
තුනේදි space 5 - 3 = 2 යි..
හතරෙදි space 5 - 4 = 1 යි..
පහේදි space 5 - 5 = 0 යි..

රටාව හරි නේද? දැන් ඊළඟට තේරුම් ගන්න ඕන දේ තමයි එක පේළියක් සලකද්දි මුලින්ම space print වෙලා ඊළඟට තරු print වෙලා තමයි අළුත් line එකකට යන්නෙ කියන එක.. දැන් එහෙනම් අපි බලමුකො මුලින්ම space ටිකට විතරක් කොහොමද code එක එන්නෙ කියලා..


මෙතනදි පේනවා නේද මුලින්ම initial value එක විදියට maximum row එකෙන් එකක් අඩු කරලා (5-1 = 4) 4 තමයි දාලා තියෙන්නෙ.. පස්සෙ condition එක විදියට ඒ loop එකේ value එකෙන් (k) අදාළ row එක අඩු කරනවා. for loop එකක් run වෙන විදිය පොඩ්ඩක් බලලා එන්න එතකොට හොඳටම තේරෙයි..

දැන් එහෙනම් අපි space ටිකත් හරියටම print කර ගත්ත නිසා දැන් සම්පූර්ණ code එකම බලමුකෝ..


තේරුනා නේද හිතන විදිය..? ඉතින් හරියට තේරුම් ගන්නවනම් කිසිම අමාරුවක් නෑ මේවයේ.. එක්කෙනෙක්ට හරි පොඩි idea එකක් හරි මේකෙන් ගන්න පුළුවන් වුනා නේද? මම එහෙම හිතනවා.. එක්කෙනෙක් හරි වැඩක් ගත්තොත් මට ඒ ඇති.. එහෙනම් පුරුදු වෙන්නත් එක්ක තව try කරලා බලන්න pattern ටිකක් දෙන්නම්කො එහෙනම්..



ඔන්න එහෙනම් කට්ටිය හිතන විදිය හොඳටම පුරුදු වෙන්නත් එක්ක මේ ටිකත් තනියමම කරන්නකෝ.. මතක තියාගන්න program කරන්න නම් අපිට ඒකේ රටාවක් හොයාගන්න වෙනවා මුලින්ම..

එහෙනම් තරු රටා ගැන මෙතනින් ඉවර කරනවා.. අපි ඊළඟ දවසේ අපිට කලින් කියන්න බැරි වුන java වල විශේෂ වුන loop එක, for-each loop එක ගැනයි තව වැදගත් කොටස් ටිකකුයි එක්ක ඉක්මනටම හමුවෙමු.. එහෙනම් එතකන් ජය වේවා !!

මතුසම්බන්ධයි...

Contact Form

Name

Email *

Message *