11
ශ්රේණිය -නිපුනතාවය 10 - ගැටඵ විසදීම සදහා පරිගණක ක්රමලේඛන ලිවීම
අපොස සාපෙළ විභායගයට පෙනී සිටින සිසුන් වැඩි ප්රමාණයක් පරිගණක ක්රමලේඛනයට අදාලව ප්රශ්න පත්රයේ
ලැබෙන ගැටඵ මග හරින බව පිළිතුරු පත් පරීක්ෂාවේදී පෙනී යන කරුණකි. එහෙත් තොරතුරු
සන්නිවේදන තාක්ෂණ විෂය හැදෑරූ
සිසුවෙක් පරිගණක ක්රමලේඛනය
සම්බන්ධ මූලික අවබෝධයක් ඇති අයෙකු වීම
අත්යාවශ්ය වේ. මේ සම්බන්ධව අමතර කියැවීමක් ලබා දීමට මෙම ලිපියෙන් උත්සාහ
කෙරේ.
පරිගණක
ඇසුරින් ගැටඵ විසදීමේදී අනුගමනය කරනු ලබන සාමාන්ය ක්රම වේදය තුළ පහත පියවර දැකිය
හැකිය
1. දෙනුලබන
ගැටඵව හොදින් අධ්යයනය කිරීම/විමර්ශනය
කිරීම, ගැටඵවේ දී ඇති තොරතුරු
අතුරින් ගැටඵව විසදීම සදහා අවශ්ය ආ අනවශ්ය තොරතුරු වෙන් කර ගැනීම , ගැටඵව තමන්
ගේ වචනයෙන් දැක්විය හැකිද , ගැටඵවේ ආදාන
.සැකැසුම් .ප්රතිදාන මොනවාද යන්න තීරණය
කිරීම යනාදී කරුණු සම්පූර්ණ කර ගත යුතුය (understand and Define
the problem)
2. ගැටඵව
සදහා තිබිය හැකි විසදුම් මොනවාද යන්න හදුනා ගැනීම හා ඒ අතුරින් වඩාත් සුදුසුම
විසදුම තීරණය කිරීම හා ඒ සදහා සැලසුම්
සකස් කිරීම. මෙහිදී ගැලීම්
සටහන් , ව්යාජ කේත වැනි ක්රම මගින් සැළසුම් ඉදිරිපත් කළ යුතුය (Design a solution)
3.
ඉහත සකස් කළ සැළසුම් අනුව පරිගණක භාෂාවක් ඇසුරින්
අතුරුමුහුණත් සැකසීම හා කේත ලිවීම.
4. සකස්
කළ පරිගණක ක්රමලේඛය නිවැරදි ප්රතිඵල ලබා දේ දැයි පරික්ෂා කිරීම හා කේතයේ දෝෂ
තිබේ නම් නිවැරදි කිරීම. (testing and debugging)
5. නිවැරදි
බව තහවුරු කර ගත් ක්රමලේඛය/පරිගණක වැඩසටහන භාවිතයේ යෙදවීම .
(Implementation)
6. කාලානුරූපීව
හා අවශ්යතාවයන් අනුව පරිගණක ක්රමලේඛයේ වෙනස්කම් සිදු කරමින් එය නඩත්තු කිරීම. (Maintenance)
විසදුම්
සැළසුම් කිරීම හා ඉදිරිපත් කිරීම
ගැටඵවක් විසදීම සදහා අනුගමනය කළයුතු උපදෙස්,
පියවර අනුක්රමයක් ලෙස දැක්වීම ඇල්ගොරිතමයක් ලෙස හැදින්වේ. ඇල්ගොරිතමයක් දැක්වීමට
ක්රම කිහිපයක් භාවිතා කළ හැකි අතර සා පෙළ විෂය නිර්දේශයට අනු ව ගැලීම් සටහන්
ඇදීම හා ව්යාජ කේත ලිවීම මගින් ඇල්ගොරිතම
ඉදිරිපත් කිරීම ප්රමාණවත් වේ.
(වඩාත්
සංකීර්ණ ගැටඵ විසදීම සදහා සැළසුම් සකස් කිරීමේදී භාවිතා කරන
Modularization, Top down design , Step Wise Refinement , Structured program
development වැනි ක්රම ගැන අන්තර්ජාලය
ඇසුරින් ස්වයං අධ්යයනයේ යෙදෙන්න )
ගැටඵවක් විසදීම සදහා ගැලීම් සටහන් ඇසුරින්
ඇල්ගොරිතමයක් නිර්මාණය කිරීමේදී යොදා ගන්නා පාලක ව්යුහයන්(Control
structures) (ගැටඵවේ ස්වරූපය අනුව පාලක ව්යුහය වෙනස් වේ)
1.විසදීමේ පියවර සරල අනුක්රමයක් සේ දැක්වීම (sequential Structure )
වාහනයකට ගමනාන්තය දක්වා යාමට ගතවූ කාලය සහ දුර
දන්නේ නම් වාහනයේ සමාන්ය වේගය සෙවීම සදහා ගැලීම් සටහන අදින්න
2 සරල තේරීම (ඒක මාර්ගික හා ද්වි මාර්ගික) (One-way
selection Structure/Two way selection structure)
පුද්ගලයෙකුගේ උපන් දිනය ලබාදුන් විට ඔහු
වැඩිහිටියෙක් පමණක් නම් සිනමා ශාලාව තුලට යාමට අවසර පතක් නිකුත් කරන්න.
3. පුනර්කරණය (Repetition Structure
Flowchart)
හුලං බැස ඇති ටයරයකට අවශ්ය ප්රමාණයට හුලං
ගැසීම සදහා රොබෝ යන්ත්රයට උපදෙස් දෙන්න
ව්යාජ කේත (Pseudo-Code) ඇසුරින් ඇල්ගොරිතම ඉදිරිපත් කිරීම
දෙනු
ලැබූ ගැටඵවක් සදහා ගැලීම් සටහන් මගින් ඉදිරිපත් කළ විසදුම පරිගණක භාෂාවක කේත බවට
හැරවීමට පෙර ව්යාජ කේත ලෙස ඉදිරිපත් කිරීම වඩාත් මගින් සැබෑ කේත කරණය වඩාත් පහසු
වේ. ව්යාජ කේතය කිසියම් හෝ පරිගණක භාෂාවක ව්යාකරණ (Language syntax)
සෘජුව අනුගමනය
නොකරයි.
• ඉහල
සිට පහලට අනුපිලිවෙලින් ක්රියාත්මක විය යුතු සරල ඉංග්රීසියෙන් ලියූ උපදෙස්
මාලාවකි.
• නිශ්චිත
පරිගණක භාෂාවක් භාවිතා නොවන අතර ගැටළුව
විසදීම සදහා අවශ්ය තර්කය (logic) මෙම උපදෙස් මාලාව තුළ අන්තර්ගත වේ.
• පරිගණක
භාෂාවක ඇති ව්යාකරණ නීති රීතින් ගැන නොසිතා ගැටළුව විසදීම සදහා පමණක් අවධානය යොමු
කරමින් උපදෙස් ලිවීමට මෙමගින් ඉඩ ලැබේ.
• උපදෙස්
ඉහල සිට පහලට ක්රියාත්මක වීම (Flow of the program) පාලනය කිරීම
සදහා පාලක ව්යුහයන් (control structure) ගනී.
ව්යාජ කේත සදහා උදාහරණ
Sequence
අනියම් සේවකයෙකු සදහා වැටුප් ගෙවනු ලබන්නේ ඹහු එම
මාසය තුළ සේවය කරන ලද පැය ගණන අනුවය. සෑම සේවකයෙක් සදහා ම පැයකට ගෙවිය යුතු මුදල
අනුව ඔහුගේ මුඵ වැටුප ගණනය කරයි. එසේම අඩුකිරීම් අනුපාතය අනුව මුඵ වැටුපෙන්
මුදලක් අඩු කරයි . එක් සේවකයෙකු නම ,ශේෂ
වැටුප මුඵ වැටුප, හා අඩු කිරීම් ප්රතිදානය කිරීමට අදාල ව්යාජ කේතය කුමක්ද?
START
INPUT name,
hourlyRate, hoursWorked, deductionRate
grossPay =
hourlyRate * hoursWorked
deduction =
grossPay * deductionRate
netPay =
grossPay – deduction
OUTPUT name,
grossPay, deduction, netPay
START
2.
සරල තේරීම (Selection/decision making)
සේවකයෙකුගේ මූලික වැටුප 100 ට
අඩුනම් ඔහුගේ වැටුපෙන් අඩු කිරීමක් නොකරයි එසේ නම් ඉහත අවස්ථාව සදහා ව්යාජ කේතය
ප්රතිනිර්මාණය කරන්න
START
INPUT name, hourlyRate, hoursWorked
grossPay = hourlyRate * hoursWorked
IF grossPay >= 100
deduction = grossPay * deductionRate
ELSE
deduction = 0
ENDIF
netPay = grossPay – deduction
OUTPUT name, grossPay, deduction,
netPay
STOP
3. පුනර්කරණය (Iteration /Looping)
a. repeat-until
b.
while-do
c.
For next
යනුවෙන් ආකෘති 3 කි
සේවකයින්
ගණන දන්නා විට ඉහත ව්යාජ කේතය අදාල
සේවකයින් සෑම අයෙක් සදහාම ක්රියාත්මක කරවන්න.
START
|
INPUT noOfWorkers
While counter <= noOfWorkers
counter=
counter + 1
INPUT name, hourlyRate, hoursWorked ,
grossPay = hourlyRate * hoursWorked
IF grossPay >= 100
deduction = grossPay * deductionRate
ELSE
deduction = 0
ENDIF
netPay = grossPay – deduction
OUTPUT name, grossPay, deduction,
netPay
End while
STOP