ගැටළු විසඳීමට ඇල්ගොරිතම සංවර්ධනය කර ඒවා ආකේතනය කිරීම සඳහා පයිතන් ක්රමලේඛන භාෂාව භාවිතා කිරීම
Computer Programming with python
9.1 , 9.2 , 9.3 ගැටළු විසඳීමේ ක්රියාවලිය
ගැටළු විසඳීම සඳහා පරිගණකය යොදා ගන්නා ආකාරය මෙහිදී ගවේෂණය කෙරේ. තොරතුරු ඉක්මනින් ජනනය කර ගැනීමේදී පරිගණකය අත්යාවශ්ය වේ. යම් අවස්ථාවක හෝ ආයතනයක පවත්නා ගැටළු මොනවද හඳුනාගෙන ඒවා සඳහා විසඳුමක් සැලසුම්කර එම විසඳුම ක්රියාත්මක කිරීමට python ක්රමලේඛ භාෂාව යොදා ගන්නා ආකාරය මෙහිදී අධ්යයනය කරනු ලැබේ. පරිගණකය යනු යන්ත්රයක් බැවින් ඒ මගින් ගැටළුවක් විසඳා ගැනීමට අවශ්ය නම් ගැටළුව විසඳන ආකාරය පියවරෙන් පියවර ඉතාම නිවැරදිව පරිගණකයට ලබා දිය යුතුය . මේ සඳහා පරිගණක භාෂාවක්(computer programming Language) භාවිතා කරනු ලැබේ. මෙසේ පරිගණක ක්රමලේඛ භාෂාවකින් උපදෙස් ලිවීම පරිගණක ක්රමලේඛණය ලෙස හඳුන්වයි.
එම කාර්යයේදී අනුගමනය කළ යුතු පියවර පහත පරිදි දැක්විය හැක.
1. ගැටළුව හඳුනා ගැනීම
එක් ගැටලුවකට විවිධ විසඳුම් තිබිය හැකිය.පළමු පියවර වන්නේ විසඳුම ලෙස සුදුසුකම් ලබන්නේ කුමක්ද යන්න හඳුනා ගැනීමට උත්සාහ කිරීමයි. මේ සඳහා ගැටලුව හොඳින් පරීක්ෂා කිරීම හා අවබෝධ කර ගැනීම අත්යාවශ්යවේ.
2. ගැටලුව හා එහි සීමා අර්ථ දැක්වීම
ගැටළුවට අදාල හා අදාල නොවන දෑ හඳුනා ගැනීමෙන් පසු එහි
· ආදාන (Inputs)
· සැකසුම්(Processing)
· ප්රතිදාන (output) මොනවාද යන්න හඳුනා ගැනීම ගැටළුවක් අර්ථ දැක්වීමේ ප්රධාන අරමුණ වේ.
ආයතනයක සේවකයින් 100 දෙනෙකු සිටී. එක් එක් පුද්ගලයා හට මූලික වැටුප ක් හිමිවේ. ඔවුන් මාසය තුළ සේවය කළ අමතර සේවා කාලය ඇඟිලි සළකුණු යන්ත්රය මගින් ලබා ගනී. අමතර පැයක් සඳහා ගෙවිය යුතු මුදල සේවකයාගේ තත්වය අනුව වෙනස් වේ. එක් මසක් තුල සේවකයින් සියළු දෙනාට වැටුප් ගෙවීම සඳහා වැය වන මුදල සෙවීමට අවශ්යව ඇත. මෙම ගැටළුව විසඳීමේ දී යොදා ගත යුතු ආදානය ,සැකසීම හා ප්රතිදානය සඳහන් කරන්න.
3. විසඳුම සැලසුම් කිරීම
ගැටළුවක් විසදීමේ දී අනුගමනය කළ යුතු පියවර අනුක්රමය ඇල්ගොරිතමයක් ලෙස හැඳින්වේ. ගැටළුව විසඳීම සදහා ක්රම කිහිපයක් තිබෙන්නට පුළුවන. මේවායින් වඩාත් වේගවත්ව සහ කාර්යක්ෂමව විසඳුම සෙවිය හැකි පියවර සමූහය ,ගැටළුව විසඳීම සඳහා සුදුසු ඇල්ගොරිතමය ලෙස තෝරා ගැනේ.මේ නිසා ගැටළුව විසඳීම සඳහා අනුගමනය කළ යුතු පියවර අනුක්රමය තීරණය කිරීම විසඳුම සැළසුම් කිරීම ලෙස හැඳින්වේ.
4. කේතනය කිරීම හා දෝෂ පරීක්ෂාව
තෝරා ගත් පරිගණක භාෂාව අනුව සැබෑ විසඳුම ලිවීම මෙහිදී අපේක්ෂා කෙරේ. ගැටළුව විසඳීමේ ක්රමවේදය ව්යාජ කේත මගින් ලියා ඇති බැවින් ඒ අනුව සැබෑ කේතය ලිවිය යුතුය. Visual Basic , python ,java , c# , vb.net වැනි පරිගණක භාෂා ප්රගුණ කල ක්රමලේඛණ ශිල්පීන්(Computer programmers) විසින් මෙම කාර්යය ඉටු කරනු ලබයි. විසඳුම ක්රියාත්මක කිරීමට පෙර
ලියූ කේත වල දෝෂ පරීක්ෂාව හා නිවැරදි කිරීම (Testing and Debugging) අත්යවශ්යයෙන්ම සිදු කළ යුතුය.
විසඳුම නිවැරදිදැයි පරීක්ෂා කිරීම සඳහා එය ක්රියාත්මක(run) කළ යුතුය. මෙහිදී විවිධ වර්ගයේ ආදර්ශ දත්ත(sample data) ආදානය කරමින් ප්රතිදානය නිවැරදිව ලැබේ දැයි පරීක්ෂා කිරීම මෙහිදී සිදු කරනු ලැබේ .
ක්රමලේඛයක් තුළ තිබිය හැකි දෝෂ ආකාර 2 කින් යුතුවේ.
ක්රමලේඛයේ කේත වල දෝෂ(syntax errors) සහ තාර්කික දෝෂ (logical errors) යනු එම ආකාර 2ය.
ක්රමලේඛයේ කේත වල දෝෂ(syntax errors)
ක්රම ලේඛය ලිවීමේදී පරිගණක භාෂාවේ ව්යාකරණ දෝෂ සහිතව ලියා ඇත්නම් එය ක්රියාත්මක කිරීමේදී එම දෝෂ උද්ගත වේ. ඒවා නිවැරදි කර නැවත නැවත ක්රියාත්මක කිරීම මගින් ව්යාකරණ දෝෂ පිටුදැකිය යුතුය.
තාර්කික දෝෂ
ක්රම ලේඛය කේත වල දෝෂ රහිතව පරිගණකය තුළ ධාවනය වන නමුත් දෙනු ලබන ආදානයන් හමුවේ දෝෂ සහිත ප්රතිදාන ලබා දීමට හේතුව වන්නේ යොදා ගන්නා සූත්ර ආදිය සදොස් වීමය. උදා ලෙස පොළිය සෙවීම සදහා වැරදි සූත්රයක් යොදා ගත් ක්රම ලේඛයක් මගින් වැරදි ප්රතිදාන ලබා දීම දැක්විය හැකිය.
ගැටළු විසඳීම සඳහා මුදුන් බිමි ක්රමය(TOP DOWN) / පියවරාකාර ප්රතිපහදු ක්රමවේදය(step wise refinement) භාවිතා කිරීම
මොඩියුලකරණය (modularization)
ඉතා සංකීර්ණ ගැටළු(උදා බදු ගණනය කිරීමේ පරිගණක ක්රමලේඛයක් , ATM යන්ත්රය සඳහා ක්රමලේඛයක් , වදන් සැකසීමේ වැඩසටහනක් ආදිය) විසඳීම සඳහා පරිගණක ක්රමලේඛ නිර්මාණය කිරීම අතිශයින් සංකීර්ණ කටයුත්තකි. එබැවින් එම සංකීර්ණ ගැටළුව පහසුවෙන් තේරුම් ගැනීමට හැකි කුඩා කොටස් වලට බෙදා ගනු ලැබේ. මේවා මොඩියුල modules, procedures, sub tasks ලෙස හැඳින්වේ. මේ සඳහා මුදුන් බිම් ක්රමය හෝ පියවරාකාර ප්රතිපහදු ක්රමවේදය(step wise refinement) භාවිතා කරනු ලැබේ.
මුදුන් බිම් ක්රමයේදී, ප්රධාන ගැටළුව , පහසුවෙන් තේරුම් ගත හැකි උප මොඩියුල රැසකට බෙදනු ලැබේ. එක් එක් උප මොඩියුලද තව තවත් අනු කාර්යයන් වලට කැඩීම මගින් ඒවා පහසුවෙන් පරිගණක උපදෙස් බවට පත් කල හැකි වනු ඇත. මෙම විසඳුම සැළසුම් කිරීම ක්රමයේදී ඉහල සිට පහලට සිදු කරන බැවින් ඉහල මට්ටමේ ක්රියාවලීන් (functions)මුලින් සැළසුම් කරන අතර පහල මට්ටමේ ක්රියාදාමයන් සිදු කරන්නේ කෙසේද යන්න ගැන අවධානය යොමු කරන්නේ එම මට්ටමට ලඟා වූ පසුවය.
පියවරාකාර ප්රතිපහදු ක්රමවේදය(step wise refinement)
මෙය පහත දැක්වෙන පරිදි පියවර වලින් දැක්විය හැකිය.
· සංකීර්ණ ගැටළුව වඩාත් සරල ගැටළු හෝ පියවර වලට වෙන් කිරීම
· එම සරල පියවර සමූහය විසඳීම සඳහා ඇල්ගොරිතම නිර්මාණය කිරීම
· එම ඇල්ගොරිතම වෙනුවට තවත් විස්තරාත්මක උපදෙස් අන්තර්ගත කිරීම / මෙය පිරිපහදුව (refinement) ලෙස හැඳින්වේ. මෙම ක්රමය පොදු ගැටළුවේ සිට සුවිශේෂී අවස්ථාවන් general to the specific දක්වා සිදු කරනු ලබන මුදුන් බිම් විසදුම් ක්රමයකි.
පියවරාකාර ප්රතිපහදු ක්රමවේදය සඳහා උදාහරණ
ගෙදර දොර කටයුතු සඳහා උදව් කර ගත හැකි රොබෝ වරයෙක් සෑදීමේදී ඔහුට තේ කෝප්පයක් පිළියෙළ කරන ආකාරය පිළිබඳ උපදෙස් ලබා දිය යුතුව ඇතැයි සිතමු. මේ සඳහා මූලික ඇල්ගොරිතමය ලියා එහි සෑම පියවරක්ම ප්රතිපහදු (refine) කරන්න.
මූලික ඇල්ගොරිතමය
1.තේ කොළ පෝච්චියට දමන්න .
2. වතුර උනු කරන්න.
3 උනු කරන ලද වතුර පෝච්චියට දමන්න
4විනාඩි 05 ක් සිටින්න.
5 කෝප්ප වලට තේ වත් කරන්න.
මෙම මූලික ඇල්ගොරිතමයේ 1.තේ කොළ පෝච්චියට දමන්න . යන වගන්තිය පහත පරිදි refine කල හැක
1.1 තේ කොළ භාජනය විවෘත කරන්න
1.2 තේ කොළ හැන්දක් ගන්න
1.3 එය පෝච්චියට දමන්න
1.4 තේ කොළ භාජනය වසන්න
|
1.1.2 භාජනය විවෘත වන තුරු එහි පියන කරකවන්න
1.1.3 පියන ඉවත් කරන්න
මේ ආකාරයට මූලික ඇල්ගොරිතමයේ සෑම පියවරක්ම නැවත නැවතත් ප්රතිපහදු කිරීම මගින් ප්රායෝගිකව නිර්මාණය කළ හැකි පියවර සමූහයක් ලැබේ.
ආකෘති සටහන් (structure charts)
ප්රධාන ගැටළුව වඩාත් පහසුවෙන් කළමණාකරණය කළ හැකි කුඩා කොටස් වලට බෙදිය යුතුය. ඉන් පසු ඒවා එක එකක ක්රියාකාරිත්වය වෙන වෙනම මොඩියුල වශයෙන් දක්වනු ලැබේ. සෑම මොඩියුලය ක්ම එයට ආවේනික ක්රියාදාමයක් (function ) පෙන්නුම් කරයි. එම මොඩියුල් වල ක්රියාදාමයන් (functions) හා මොඩියුල අතර සම්බන්ධය පෙන්වීමට යොදා ගන්නා සටහන, ආකෘති සටහන (structure charts) ලෙස හැඳින්වේ.
ආකෘති සටහනේ සෘජු කෝණාශ්ර හැඩයකින් මොඩියුලයක් පෙන්නුම් කරයි. මේ අතර නැවත නැවත යොදා ගත හැකි මොඩියුල ද දැක්විය හැකිය. මෙය ගැලීම් සටහනක් නොවන අතර ප්රධාන ගැටළුව කොටස් වලට බෙදෙන්නේ කෙසේද යන්න පෙන්නුම් කරන සටහනකි.
මොඩියුල (modules)
• මොඩියුලයක් සෘජුකෝණාශ්රයකින් දක්වනු ලැබේ. (program or subroutine)
• පාලක මොඩියුලය උප මොඩියුල වලින් සමන්විත වේ.
• Library මොඩියුල යනු නැවත නැවතත් භාවිතයට ගත හැකි මොඩියුලයන්වේ. එනම් පාලක මොඩියුල කිහිපයක් විසින් භාවිතා කරනු ලබන මොඩියුල library මොඩියුල ලෙස හැඳින්වේ.
දුන් මුදල ,කාලය සහ පොළී අනුපාතිකය ලබා ගැනීම
|
පොළිය ගණනය කිරීම
|
පොළිය කොපමණදැයි ප්රතිදානය කිරීම
|
ණයට දුන් මුදලකට පොළිය සැකසීම
|
ගැටළු විසඳීම සඳහා ඇල්ගොරිතමික ප්රවේශය යොදා ගැනීම
ඇල්ගොරිතම (Algorithms )හැඳින්වීම
ගැටළුවක් විසදීමේ දී අනුගමනය කළ යුතු පියවර අනුක්රමය ඇල්ගොරිතමයක් ලෙස හැදින්වේ.
ඇල්ගොරිතමයක පහත ගුණාංග තිබිය යුතුය
1. Finiteness: ඇල්ගොරිතමයක් සීමිත පියවර ගණනකින් අවසන් විය යුතුය.
2. Definiteness: නිශ්චිතභාවය: ඇල්ගොරිතමයේ සෑම පියවරක්ම නිවැරදිවිය යුතු අතර
නිසැකවම ද්විත්වාර්ථ රහිතව ප්රකාශ කර තිබිය යුතුය.
3. Effectiveness පලදායීතාවය: සෑම පියවරක්ම ඵලදායි විය යුතුය . පහසුවෙන් වැඩසටහන් ප්රකාශයන් බවට පරිවර්තනය කළ හැකි විය යුතු අතර සීමිත කාලයක් තුළ එසේ හැරවිය හැකිවිය යුතුය.
4. ඇල්ගොරිතම සම්පූර්ණ විය යුතුය. ඕනෑම ආදාන දත්ත සඳහා ගැටළු විසඳීමට එය භාවිතා කළ හැකි බව..
ගැටළුව විසදීම සදහා ක්රම කිහිපයක් තිබෙන්නට පුළුවන.
• මේවායින්
– වඩාත් වේගවත්ව විසඳුම සෙවිය හැකි
– වඩාත් කෙටියෙන් ඉදිරිපත් කළ හැකි විසඳුම
ගැටළුව විසඳීම සඳහා සුදුසු ඇල්ගොරිතමය ලෙස තෝරා ගැනේ.
මේ අනුව ගැටළුව විසඳීම සඳහා භාවිතා කරන හොඳින් අර්ථ දක්වන ලද ක්රමවේදයක නිශ්චිත පියවර අනුක්රමය ඇල්ගොරිතමයක් ලෙස හැඳින්වේ. පරිගණකය මගින් කුමන හෝ කාර්යයක් සිදු කිරීමට අවශ්ය නම් එය සිදු කරන ක්රමවේදය පියවර වශයෙන් පරිගණකයට ලබා දිය යුතුය.
අපට සංඛ්යා තුනක සාමාන්යය සොයා ගැනීමට අවශ්ය යැයි සිතමු, වේ
පහත පරිදි ඇල්ගොරිතමය දැක්විය හැකිය.
පියවර 1 a, b, c අංක කියවන්න
පියවර 2 a, b සහ c හි එකතුව ගණනය කරන්න
පියවර 3 එකතුව 3 න් බෙදන්න
පියවර 4 ප්රතිලය d විචල්යයෙන් ගබඩා කරන්න
පියවර 5 d හි අගය මුද්රණය කරන්න
පියවර 6 වැඩසටහනේ අවසානය
සුළු පොලිය = P * N * R / 100. යන සූත්රය භාවිතා කර පොළිය ගණනය කිරීම සඳහා ඇල්ගොරිතමයක් ලියන්න.
P යනු මුල් මුදල හා N යනු අවුරුදු ගණන වන අතර R යනු පොලී අනුපාතය වේ
පියවර 1: ආදානයන් කියවන්න (පී, එන් සහ ආර්.)
පියවර 2: සුළු පොලිය = P * N * R / 100 ලෙස සුළු පොළිය ලෙස ගණනය කරන්න.
පියවර 3: සුළු පොළිය මුද්රණය කරන්න.
පියවර 4: නවත්වන්න.
X, Y, Z යන අංක තුනෙන් විශාලතම අංකය සොයා ගැනීමට ඇල්ගොරිතමයක් ලියන්න.
Step 1: Read the numbers X,Y,Z.
Step 2: if (X > Y)
Max = X
else Max = Y
Step 3 : if (Max < Z)
Step 4: Max = Z
Step 5: Print the largest number i.e. Max
Step 6: Stop.
උදා සිලින්ඩරයක පෘෂ්ඨීය වර්ගඵලය සෙවීම සඳහා ඇල්ගොරිතමයක් ඉදිරිපත් කරන්න.
අරය r මනින්න
– උස h මනින්න
– පෘෂ්ඨීය වර්ගපලය = 22/7*r*r + 2* 22/7 *r * h මගින් ගණනය කරන්න
ආයතනයක වැටුප් සැකසීම , ATM යන්ත්රයකින් මුදල් ලබා දීම වැනි සෑම කාර්යයක් ම සිදු කරන ක්රියාපටිපාටිය පරිගණක ගත කළ යුතුවේ. එනම් යම් ගැටළුවක් පරිගණකය මගින් විසඳීමට ප්රථම එය විසඳන ක්රමවේදය හෙවත් ඇල්ගොරිතමය අනාවරණය කර ගත යුතුය.
පහත ගැටළු විසඳීමේ ඇල්ගොරිතමයන් වාක්යානු සාරයෙන් ලියා දක්වන්න
1. නිවසක තීන්ත ගෑමට යන වියදම සෙවීම
2. ඉන්ධන ලීටරයට කි මී 12 ක් ගමන් කරන වාහනයක් දිනක් තුළ දහනය කර ඇති ඉන්ධන ප්රමාණය ගණනය කිරීම
3. බැංකු නිළධාරියෙක් තමන්ට ලැබෙන මුදල් නෝට්ටු 5000, 2000, 1000 සහ වෙනත් නෝට්ටු යන ආකාරයට වෙන් කිරීම
4. සංඛ්යා 3 ක් අතුරින් වඩා විශාල සංඛ්යාව සෙවීම
5. ඡේදයක් කියවා එහි ඇති වචන සංඛ්යාව ගණන් කර ගැනීම
6. 1 සිට 100 දක්වා ඇති ඉරට්ටේ සංඛ්යා වල එකතුව සෙවීම
7. පන්තියක ළමුන් ගේ බර කිරා ඔවුන් අතුරින් කිලෝ 50 ට වැඩි බර ඇති සිසුන් සහ එයට අඩු බර ඇති සිසුන් ගේ ලේඛන 2 ක් පිළියෙල කිරීම
ඇල් ගොරිතමයක් දැක්විය හැකි ක්රම
1) ගැලීම් සටහන් (Flow charts)
පිළිගත් ක්රමවේදයක් අනුව ගැටඵව විසඳන අයුරු (ඇල්ගොරිතමය)චිත්රක ස්වරෑපයෙන් දැක්වීම
2) ව්යාජකේත (pseudo code)
පිළිගත් ක්රමවේදයක් අනුව ගැටඵව විසඳන අයුරු (ඇල්ගොරිතමය)වගන්ති වලින් ලියා දැක්වීම
ගැලීම් සටහන් ඇඳීමේදී යොදා ගන්නා සංකේත
සංකේතය
|
කාර්යය
|
ආරම්භය හෝ අවසානය (start /end)
| |
ආදානය හෝ ප්රතිදානය (input or output)
| |
තේරීම (selection / decision)
| |
සැකසීම (process)
| |
ගැලීම් දිශාව දක්වන රේඛාව (flow line)
| |
සම්බන්ධකය (connector)
|
ව්යාජකේත/කල්පිත කේත (Pseudo-Code)
ඉහල සිට පහලට අනුපිලිවෙලින් ක්රියාත්මක විය යුතු සරල ඉංග්රීසියෙන් ලියූ උපදෙස් මාලාවකි.නිශ්චිත පරිගණක භාෂාවක් භාවිතා නොවන අතර ගැටළුව විසදීම සදහා අවශ්ය තර්කය (logic) මෙම උපදෙස් මාලාව තුළ අන්තර්ගත වේ.පරිගණක භාෂාවක ඇති ව්යාකරණ නීති රීතින් ගැන නොසිතා ගැටළුව විසදීම සදහා පමණක් අවධානය යොමු කරමින් උපදෙස් ලිවීමට මෙමගින් ඉඩ ලැබේ.
ව්යාජ කේත ලිවීමේදී යොදා ගන්නා නිශ්චිත පද
BEGIN -ආරම්භය,END-අවසානය,
INPUT ,READ, OBTAIN, GET -ආදානය කරන්න
OUTPUT, PRINT, DISPLAY, SHOW -ප්රතිදානය
WHILE- පුනර්කරණ ව්යුහයකි.
IF-THEN-ELSE -කරනු ලබන පරීක්ෂාවකට අනුව සිදුකළ යුතු ක්රියාවන් දෙකින් එකක් තෝරා ගැනීම
REPEAT-UNTIL - පුනර්කරණ ව්යුහය අවසානයේ දී කොන්දේසිගත පරීක්ෂාවක් යොදා ගන්නා පුනර්කරණ ක්රමවේදයයි.
CASE -පරීක්ෂා කිහිපයක් හමුවේ සිදු කළ යුතු ක්රියාවන් දැක්වීම සඳහා
FOR - පුනර්කරණ වාර ගණන දන්නා විට යොදා ගත හැකි පුනර්කරණ ව්යුහයකි.
Initialize: SET, INIT
ව්යාජ කේත නිර්මාණය හා විචල්ය
පරිගණක ක්රමලේඛයක් ධාවනය වන අතරතුර දත්ත සහ සකස් කරන තොරතුරු තාවකාලිකව රඳවා තබා ගැනීමට විවිධ මතක අවකාශ අවශ්ය වේ. සෑම මතක අවකාශයක්ම ක්රමලේඛය අතරතුර දී යාවත්කාලීන කළ හැකි වේ. මේ නිසා මේ මතක අවකාශ විචල්ය (variable) ලෙස හඳුන්වයි. සෑම විචල්යයක්ම අනන්ය ලෙස හඳුනා ගැනීම සඳහා එයට නාමයක් සහ දත්ත ප්රරෑපයක් (data type) තිබිය යුතුය.
python භාෂාව අනුසාරයෙන් විචල්ය හා දත්ත ප්රරූප ඉදිරියේදී ඉදිරිපත් කෙරේ.
විචල්යයන් නිර්මාණය සහ අගය පැවරීම
උදා
• Total = 0
• L = 200
• Grade= “”
• StName=” sandun”
• Salary = 30000
විචල්ය භාවිතය පැහැදිලි කිරීමට සරල කේත යොදා ගැනීම
මෙම කේත වල ප්රතිදාන ලියන්න.
Begin
A =14
A = 23
display A
end
|
Start
A= 12
B= 2
C = A + B
Print C
End
|
Begin
A= 12
B= 2
B = A + B
Display B
End
|
Begin
total= 0
B= 2
total = total + B
display total
display B
End
|
Begin
X=4
Y=23
Y =x-y
Display y
Y= x + y
Display y
end
|
Begin
X=3
Y=5
Y= y+10
X= x+y
Display (x*y)
Display x
end
|
දත්තයන් මත විවිධ ගණිත කර්ම සිදු කිරීම හා එකිනෙක සංසන්දනය ආදී ක්රියාවන්හිදී පරිගනක භාෂාව විසින් යොදා ගන්නා මෙහෙයවන , වර්ග කිහිපයකට වෙන් කළ හැක.
• අංක ගණිතමය මෙහෙයවන (Arithmetic. Operators)
• සැසදුම් කාරක /මෙහෙයවන (Comparison Operators)
• තාර්කික මෙහෙයවන(Logical Operators)
python භාෂාව අනුසාරයෙන් මෙහෙයවන භාවිතා කරන අයුරු ඉදිරියේදී ඉදිරිපත් කෙරේ.
අංක ගණිතමය මෙහෙයවන
+ එකතු කිරීම , - අඩු කිරීම, * ගුණ කිරීම, / බෙදීම, ^ බලය, \ නිඛිල බෙදීම , MOD ශේෂය
Start
C=10
C= C/2
C= C\2
Print C
End
|
• Result = 8 mod 6 නම් result හි අගය කීයද?
• Result = 8 \6 නම් result හි අගය කීයද?
• Result = 8 \(8 mod 7) නම් result හි අගය කීයද?
• MyValue = 67 \ -3 නම් MyValue හි අගය කීයද ?
|
• 34/6
• 34\6
• 34 mod 6
• 999 mod 1000
• 1000 mod 999
• 1000\ 999
සැසදුම් කාරක /මෙහෙයවන (Comparison Operators)
අගයන් දෙකක් සංසන්දනය කළ විට රතිඵලය ලෙස සත්ය හෝ අසත්ය යන දෙකින් එකක් ලැබේ
A=23
B =45
A>=B ---> False
B>A --> True
කර්ම ප්රමුඛතා අනුපිළිවෙල
සැසදුම් කර්ම හා තාර්කික කර්ම python ක්රමලේඛන භාෂාව ඇසුරින් පසුව සඳහන් කර ඇත.\
සැළසුම ඉදිරිපත් කිරීමේදී යොදා ගන්නා පාලක ව්යුහයන් (Control Structures)
ඇල්ගොරිතමයක් මගින් විසඳුම් ඉදිරිපත් කිරීමේ දී එම උපදෙස් එකින් එක ක්රියාත්මක වීමේ අනුපිළිවෙල උපදෙස් වල ගැලීම(flow) ලෙස හැඳින්වේ. එම උපදෙස් ක්රියාත්මක වන අනුපිළිවෙල පාලනය කිරීම සඳහා මෙම ව්යුහයන් යොදා ගනී.
1. සරල අනුක්රමය (Sequence )
2. තේරීම (Selection )
3. පුනර්කරණය (Repetition )
ඇල්ගොරිතමය සඳහා සරල අනුක්රමය භාවිතා කිරීම
පහත ගැටළු සඳහා ඇල්ගොරිතමය ගැලීම් සටහන් හා ව්යාජ කේත වලින් ඉදිරිපත් කරන්න
1. A සහ B නැමැති සංඛ්යා සඳහා පරිශීලකයා විසින් අාදානය කල සංඛ්යා 2 ක් පවරා දිය යුතු අතර C නැමැති සංඛ්යාවට A හා B වල වෙනසින් සියයට 64 ක් පවරා දිය යුතුය. අවසානයේ A,B හා C යන සංඛ්යා 3 ම ප්රතිදානය කළ යුතුය.
Begin
Input A
Input B
C= (A-B) *64%
display A
display B
display C
End
|
2. පරිශීලකයාගෙන් ආදානය කර ගන්නා සංඛ්යා 2 ක ඓක්යය හා ගුණිතය සොයා ප්රතිදානය කර ගැනීමට අදාල ඇල්ගොරිතමය ඉදිරිපත් කරන්න
|
වරණය (simple selection)
අගයයන් 2 ක් සැසඳීමෙන් ලැබෙන ප්රතිඵලය බූලියානු අගයකි. ප්රතිපලය සත්ය(true) නම් එක් ක්රියාවක් සිදු කිරීමත් ප්රතිපලය අසත්ය( False) නම් වෙනත් ක්රියාවක් සිදු කිරීමත් මෙහිදී සිදු කෙරේ. සත්ය නම් සිදු කල යුතු ක්රියාව පමණක් දැක්වීම සරල වරණය ලෙස හැඳින්වේ.
උදාහරණයක් ලෙස, පහත දැක්වෙන ඇල්ගොරිතම ඔබගේ වයස අනුව පණිවිඩයක් පෙන්වයි:
1. ඔබේ වයස විමසන්න
2. ඔබේ වයස අවුරුදු 60 හෝ ඊට වැඩි නම්, “ඔබ ජ්යෙෂ්ඨ පුරවැසියෙක්!” යන පණිවුඩය පෙන්වන්න.
BEGIN
IF (Condition) THEN
If code
ELSE
Else code
END IF
END
|
• සිසුවෙක් පරීක්ෂණයකදී ලබා ගෙන ඇති ලකුණු ආදානය කළ පසු එම ලකුණු 40 ට වැඩි හෝ සමාන නම් “pass” යනුවෙන් ද 40 ට අඩුනම් “fail” යනුවෙන්ද ප්රදර්ශනය කරන්න.
BEGIN
Grade= “”
INPUT Marks
IF Marks >= 40 THEN
Grade= “pass”
ELSE
Grade = “Fail”
END IF
OUTPUT Grade
END
|
සංඛ්යාවක් ආදානය කළ පසු එය ඔත්තේද ඉරට්ටේ ද යන්න පරීක්ෂාකිරීමටත් ඒ බව ප්රදර්ශනය කිරීමටත් අවශ්ය වේ
බහුවිධ වරණය (multiple selection)
පරිගණකයට අදානය කරනු ලබන සංඛ්යා 3 ක් සන්සන්දනය කල විට ලැබෙන ප්රතිඵලය ප්රතිදානය කිරීමට අදාල ඇල්ගොරිතමය ගැලීමකින් හා ව්යාජ කේත වලින් දක්වන්න
Begin
INPUT no1,no2,no3
Max = 0
IF (no1>no2) AND (no1 > no3) THEN
Max = no1
ELSEIF (no2>no3) and (no2 > no1) THEN
Max = no2
ELSE
Max = no3
END IF
OUTPUT Max
END
|
පහත ගැටළු සඳහා ඇල්ගොරිතම නිර්මාණය කරන්න.
1. ආදානය කරන ලද සංඛ්යා 2ක වෙනස ප්රතිදානය කිරීමට අවශ්යව ඇත. එම වෙනස ධන හෝ සෘණ බව නොපෙන්විය යුතුය.( මාපාංක අගය)
2. සිසුවෙක් එක් විෂයයක් සඳහා ලබා ඇති ලකුණු ලබා දුන් විට එම ලකුණට අදාල ශ්රේණිය ගණනය කරන්න
3. විකිණුම් මිල සහ විකුණන ලද කොටස් ගණන කියවීමෙන් පසු විකුණනු ලැබූ කොටස් ගණන 0 ට වැඩි නම් විකිණීමෙන් ලැබූ ආදායම ගණනය කිරීමටත් නොඒසේ නම් අදායමක් නැත යන්න මුද්රණය කිරීමටත් අවශ්ය වේ.
4. පහත ව්යාජ කේතයේ ප්රතිදානය ලියන්න එයට අනුරූප ගැලීම් සටහන දක්වන්න.
BEGIN
A=10 ,B=20 ,C = 2
IF A > 10 THEN
A = A + 1
B = B + A
ELSE
C = C + B
END IF
OUTPUT A,C,B
END
No comments:
Post a Comment