Tuesday, March 26, 2013

python හි අංක සහ ගණිතකර්ම භාවිතය-2 කොටස

.අපි කලින් කතා කලේ python වල අපිට ඕනේ විදියට function එකක් හදාගන්නේ කොහොමද කියන එක.අපි එක වරක් හදපු function  නැවත save කරලා තියල වෙනම program එකක උනත් use කරන්න පුලවන්.module එකක් කියන්නේ මේ වාගේ function කීපයක එකතුවක්.අපි දැන් බලමු python එක්ක එන වැදගත් module කීපයක්.අපි modules ගැන විස්තර පසුව කතා කරමු.
මුලින්ම අපි බලමු ගණිතමය කටයුතු සඳහා python සමග ලැබෙන module එක. මේකේ තිබෙන function නිතර use කරන ඒවා නෙමෙයි.එම නිසා මෙම math module එක python වලින් නිකන්ම call කරන්න බැහැ.ඉස්සර වෙලා මෙම module එක ඉම්පෝර්ට් කරගත යුතු වෙනවා.

>>> import math
>>>
command එක මගින් ඔබට math module එක ඉම්පෝර්ට් කරගන්න පුළුවන් අපි බලමු මේ සමග ලැබෙන
function මොනවද කියල.අපි math  type කරලා dot එකක් තියල ටික වෙලාවක් හිටියම ඔබට ඒ සමග ලැබෙන function ටික බල ගන්න පුළුවන්.

අපි මේ එක එකක් ගැන වෙන වෙනම බලමු.

math.ceil(x)
මේ මගින් දශම සන්කයාවක  ඊට පසුව ඇති පළමු පුර්ණ සංක්යාවට return කරනවා.
ex-අපි හිතමු 15.2 දැම්ම කියල පිළිතුර වෙන්නේ 16
මේ තියෙන්නේ තවත් උදාහරණයක්
>>> math.ceil(12.3)
13
>>>

math.copysign(x,y)
මෙහිදී function එක මගින්  x return කරනු ලබනවා.නමුත් x වල ලකුණ වන්නේ ය හි ලකුණයි.
ex-
>>> math.copysign(12,-3.2)
-12.0
>>> math.copysign(-12,-3.2)
-12.0
>>> math.copysign(-12,3.2)
12.0
>>>

 math.fabs(x)
මේ මගින් x හි මාපාංකය return කරනු ලබනවා.(මාපාංකය යනු ඕනෙම සන්කයවක  ධන අගයයි.මෙය ගණිතයේදී |  | සලකුණු අතර අදාළ සන්ක්යව යෙදීමෙන් පෙන්නුම් කරනවා.-12 මාපන්ක්යත් 12 මාපන්කයත් 12  මයි.)
උදා-
>>> math.fabs(12)
12.0
>>> math.fabs(-12)
12.0
>>>
 මෙය මත module එක ඉම්පෝර්ට් කරගන්නේ නෙතුවම හොයාගන්න පුළුවන් ඒ abs command එකෙන්
 >>> abs(-10)
10
>>>

 math.factorial(x)
මේ මගින් x හි ක්‍රමරෝපිතය ලබාදෙනවා.ක්රමාරෝපිතය ! සලකුණ මගින් ගනිතයීදී නිරුඋපනය කරනු ලබනවා.
3!-3 හි ක්රමාරෝපිතය
4!=4*3*2*1
7!=7*6*5*4*3*2*1*
උදා-
>>> math.factorial(4)
24
>>> math.factorial(12)
479001600
>>>

math.floor(x)
මේ මගින් දශම සන්කයවක ඊට කලින් ඇති පළමු පුර්ණ සන්කයව return කරනවා.
උදා-
>>> math.floor(12.78)
12
>>> math.floor(15.999)
15
>>>

 
math.exp(x)
ex මෙම මගින් return කරනු ලබනවා.

math.log(x,[base])
මෙම function එකට එක අගයක් පමණක් ලබා දුන්නන විට e පාදයට එම සන්ක්යාවේ ලගුගනකය ලබා දෙනවා
උදා-
>>> math.log(100)
4.605170185988092
අගයන් දෙකක් ලබා දුන් විට දෙවන අගයේ පාදයට පළමුවන පදයේ අගය ලබා දෙනවා
>>> math.log(100,10)
2.0
>>>
ඉහත දක්වා ඇත්තේ 10 පාදයට 100 හි ලගුගනකයයි.

math.log2(x)
දෙකේ පාදයට x හි ලගුගනකය ලබාදෙයි.

math.log10(x)
10 පාදයට x හි ලගුගනකය ලබාදෙයි.

math.pow(x,y)
මේ මගින් xy පිළිතුර ලෙස ලබාගත හැක.
උදා-
>>> math.pow(2,3)
8.0
>>> math.pow(100,10)
1e+20
>>>

math.sqrt(x)
මේ මගින් x හි වර්ගමුලය ලබා දෙයි.
 >>> math.sqrt(25)
5.0
>>> math.sqrt(2)
1.4142135623730951
>>>

math.hypot(x,y)
පිළිතුර ලෙස x2+y2 ලබාදෙයි.
>>> math.hypot(3,4)
5.0
>>>

math.degrees(x)
මෙහිදී x ලබාදිය යුත්තේ රේඩියන් වලිනි.මෙමෙ function එක මගින් එය අංශක බවට හරවයි.
>>> math.degrees(180)
10313.240312354817
>>> math.degrees(1)
57.29577951308232
>>>





math.radians(x)

 මෙහිදී x ලබාදිය යුත්තේ අංශක වලිනි.මෙමෙ function එක මගින් එය රේඩියන් බවට හරවයි.
>>> math.radians(180)
3.141592653589793
>>>

math.pi
මේ මගින් ෆයි නම් ගණිතමය සඳහා වන අගය ලබාදෙයි
>>> math.pi
3.141592653589793
උදා-අරය 7ක් වන වෘත්තයක වර්ගපලය සොයන්නට සිදු වුනායයි සිතන
>>> math.pi*7*7
153.93804002589985
>>>

math.e
මේමගින් e (අඝාත ශ්‍රිතය) අගය සොයාගත හැක.
>>> math.e
2.718281828459045

ත්‍රිකෝණමිතික ගණිතකර්ම සඳහා යොදාගන්නා functions.

math.sin(x)
sin x පිළිතුර ලෙස ලබාදෙයි.(මෙහි x රේඩියන් වලින් ලබාදිය යුතුය.)
>>> math.sin(math.pi/6)
0.49999999999999994
>>> math.sin(math.radians(30))
0.49999999999999994
>>>

math.cos(x)
cos x පිළිතුර ලෙස ලබාදෙයි.(මෙහි x රේඩියන් වලින් ලබාදිය යුතුය.)

math.tan(x)
tan x පිළිතුර ලෙස ලබාදෙයි.(මෙහි x රේඩියන් වලින් ලබාදිය යුතුය.)

 math.asin(x)
x හි sin ප්‍රත්ලෝමය ලබාදෙයි.(මෙහිදී sin අගය ලබා දුන් විට ඊට අදාළ කෝනය ලබාදෙයි.)
 >>> math.asin(0.5)
0.5235987755982989
>>>

 math.acos(x)
x හි cos ප්‍රත්ලෝමය ලබාදෙයි.
>>> math.degrees(math.acos(0.5))
60.00000000000001
>>>

math.atan(x)
x හි tan ප්‍රත්ලෝමය ලබාදෙයි.

 අපි මෙම ලිපියෙන්කතා කලේ python වල math function එක යොදාගන්න ආකාරයයි.මේ ලිපිය ගැන ඔබේ අදහස් වැරදි අඩුපාඩු comment එකක් ලෙස දමන්න.

Friday, March 8, 2013

functions in python

function එකක් කියන්නේ මොකක්ද?
 function එකක් ඇතුලේ තිබෙන්නේත් සාමාන්‍ය python code ම තමයි.නමුත් අපි එක දිගටම program එක ලියාගෙන ගියොත් එක බලන වෙන කෙනෙකුට එක මහා අවුල් ජාලයක්.අපි කුඩා කුඩා වැඩ වලට කුඩා කුඩා function ලියාගෙන ගිහින් එක අවශ්‍ය වෙලාවට එකට call කරනවානම් අනිත් අයට එක තේරුම් ගන්න ඉතාම පහසුයි.
function භාවිතයේ තියෙන අනිත් වැදගත්ම ප්‍රයෝජනය තමයි එකම function එක නැවත නැවත use කරන්න පුළුවන් වීම.උදාහරණයකට අපි හිතමු අපි අංක දෙකක් එකතු කරන්න function එකක් ලිව්වා කියල, අපිට අංක දෙකක් එකතු කරන්න ඕනේ වෙන හැම වෙලාවකම අපිට අර function එක යොදාගන්න පුළුවන්.ඉස්සර වගේ එකතු කරන හෙම වෙලාවේම එකතු කිරීමී command එක ලියන්න ඕනේ නැහැ.
මේ  වගේ නැවත නැවත use කරන්න පුළුවන් function විශාල ප්‍රමාණයක් python සමග ලැබෙනවා.අපිට අවශ්‍ය function එකක් හදාගන්න පුළුවන්.අපි මීට කලින් use කරපු type,int,float වගේ ඒවා python සමග ලැබෙන function.
සමහර python සමග ලැබෙන function නිකන්ම භාවිතා කරන්න බැහැ.ඒවා ඉම්පෝර්ට් කරගන්න ඕනේ.math කියන්නේ ඒ වගේ ඉම්පෝර්ට් කරගන්න ඕනේ function සෙට් එකක්.මේවගේ function සෙට් එකකට අපි module කියල කියනවා.මේ වගේ python සමග ලැබෙන module ගෙන ඉදිරියේදී සාකච්චා කරන්න බලා පොරොත්තු වෙනවා.අපි දැන් කරන්න හදන්නේ අපිට ඕනේ කරන function එකක් හදාගන්න හැටි බලන්න.
function එකක සාමාන්‍ය structure එක පහත දක්වා තිබෙනවා.

def function_name (arguments):
        #your code type here

python වලදී function  එක හදුනා ගන්නේ tab මගින් වන අතර මෙහි තබා ඇති ටැබ් එක ඉවර වන තුරු function එක ලෙස සැළකේ.

අපි දැන් බලමු function  එකක කොටස් මොනවද කියල.
def-මෙය සැම function  එකක් මුලදීම යෙදිය යුතුයි.python විසින් function  එකක් හදුනා ගන්නේ මෙමෙ key word එක මගින්.
function name-function name එකට අපට සුදුසු නමක් use කරන්න පුළුවන්.හැබැයි සමහර words නම් use කරන්න බැහැ.උදාහරණයක් විදියට python වල තියෙන කිසිම key word එකක් function  name එක විදියට use කරන්න බැහැ.ඒ වගේම function  name එකේ space තියෙන්නත් බෑ.
arguments කියන්නේ function එක රන්  වෙන්න ලබා දිය යුතු දත්තයි.ඔබ විසින් function  එකට call කරන විට මෙය ලබා දිය යුතු වනවා.argumants අපි ලබා දෙන්නේ වරහන් ඇතුලෙයි.
උදා-ඔබ අංක දෙකක් එකතු කරන්න function  එකක් ලියනවා කියල හිතන්න.එතකොට ඔබ එකතු කල යුතු අංක දෙක arguments විදියට ලබාදිය හැකියි.
සමහර function  වලට argumants අවශ්‍ය නැහැ.print_hello කියන්න ඒ වගේ function  එකක්.
body-මේ තුල function  එක තුලින් සිදු විය යුතු සියල්ල සඳහන් වනවා.
අපි මේ function  දෙක රන් කරල් බලමු.
අපි මේකට කියන්නේ function call කියල .ඒ කියන්නේ  function  එකකට call කරනවට.මෙහිදී  function name එක ඉදිරියෙන් වරහන් ඇතුලේ arguments ටික ලබාදිය යුතු වනවා.
මෙහි print_hello function එකට arguments නැති නිසා වරහන් තුල හිස්ව තැබිය යුතු වනවා.
පේලි කිහිපයකින් යුතු  function එකක් තමයි පහත දකින්නට ලැබෙන්නේ.
 function එකකට call කලාම එම කතා කල තැනට අගයක් return කරන්න  function එකකට පුළුවන්.
අපි කලින් උදාහරණයම ගමුකො.අංක දෙක  function යවපුවම එම අංක දෙකේ එකතුව print කිරීමනේ කලින් කලේ.නමුත් අපිට පුළුවන් එකතුව අපි  function එකට call කරන තැනට ලබා දෙන්න එතකොට එම පිළිතුර යොදාගෙන ඕනේ දෙයක් කරන්න call කරන  function එකට ලැබෙනවා.ඒ වගේම එක  function එකකට call කරලා ලැබෙන පිළිතුර  function එකක අර්ගුමෙන්ට් එකක් හැටියට යොදාගන්න පුළුවන්කමත් ලැබෙනවා.
පහත තිබෙන්නේ ඒ වගේ   function එකක් .මේක කලින් codes  වගේ interpreter එකේ වෙනුවට 
file->new window වලින් අලුත් file එකක් අරගෙන එකතුල.මේ විදියට code කරන කරන code save කරලා තියන්න පුළුවන්.මේ ගෙන මම කලින් post එකක කියල තියෙනවා.
http://pythonsinhalen.blogspot.com/2012/09/how-to-use-python-command-line-and-idle.html
මේ ලින්ක් එකෙන් ඒ post එක බලාගන්න පුළුවන්.

පහත දැක්වෙන්නේ return type සහිත function දෙකක් සහ එයට විවිද ආකාරයෙන් call කලහෙකි ආකායන්.
මෙහි අවසාන පේලිය ගැන විස්තර කලොත් add_ten function එකට c යැවීමෙන් ලැබෙන පිළිතුර add_five function එකට යවනු ලැබේ.එයින් ලැබෙන පිළිතුර print කරනු ලැබේ.මෙය run-> run module මගින් run කරන්න පුළුවන්.එවිට ලැබෙන පිළිතුර පහත දැක්වේ.
මම මේ ගෙන වැඩියේ විස්තර කරන්නේ නැහැ.මම හිතනවා ඔබට මෙය සරලව තේරුම් ගන්න පුළුවන් වෙයි කියල.පහත දක්වෙන්න්නේ method කීපයකින් හදපු සරල calculator එකක code එකක්.
 
අපි දැන් මේක රන් කරලා බලමු.