Saturday, March 20, 2010

ප්'සුඩෝ කේත ක්‍රමය (Pseudo Codes)

ප්'සුඩෝ කේත ක්‍රමය ගැන තියෙන මා හට හමු වූ වඩාත් සාර්ථක ම අර්ථ දැක්වීම මෙයයි...,
"Pseudo code is a kind of structured English for describing algorithms. It allows the designer to focus on the logic of the algorithm without being distracted by details of language syntax. At the same time, the pseudo code needs to be complete. It describe the entire logic of the algorithm so that implementation becomes a rote mechanical task of translating line by line into source code."
- wikiAnswers.com

මෙහි තේරුම නම්...,
"ප්'සුඩො කේත ක්‍රමය යනු, ඇල්ගොරිතම පැහැදිලි ලෙස ( ලියා ) දැක්වීම සඳහා යොදා ගනු ලබන, ව්‍යුහගත ඉංග්‍රීසි භාෂා ක්‍රමයකි. මෙමගින්, කේතය ( ප්'සුඩෝ කේතය ) සම්පූර්ණ කිරීමේ අවස්ථාවේදී ම, පරිගණක භාෂාවලට ආවේනික කේත කොටස් වලින් බාධා ඇතිවීම වලකමින්, ඇල්ගොරිතමයේ තර්කය පිළිබඳව පමණක් අවධානය යොමුකිරීමට සැලසුම්කරුවා හට ඉඩ සලසාදෙයි. එය කොතෙක් දුරට ඇල්ගොරිතමයේ ඇති සම්පූර්ණ තර්කය පැහැදිළි කරයි ද කියතොත්, ඇල්ගොරිතමය ස්ථාපනය කිරීම, යාන්ත්‍රික ව ( පුරුද්දෙන් ) සිදු කරනු ලබන, ප්'සුඩෝ කේතය පේලියෙන් පේලිය පරිගණක කේතය බවට පරිවර්තනය කිරීමේ කාර්‍ය්යක් බවට පත් වේ."

මෙම කේත ක්‍රමයේ අරමුණ නම් ඕනෑම පරිගණක භාෂාවකට පොදු වන ලෙස සරලව යම් ඇල්ගොරිතමයක් (හෝ පරිගණක කේත කොටසක් ) ලියා දැක්වීමයි. මෙය ඕනෑම පරිගණක භාෂාවක් ( C++, Java, Phython,..etc. ) දන්නා හෝ භාවිත කරන අයකුට කියවා තේරුම් ගත හැකි පොදු කේත ක්‍රමයක් ( පරිගණක භාෂාවලින් ස්වායක්ත ) වන අතර මෙහිදී මෙම කේත වලින් ලියනු ලබන්නේ "තාර්කික කොටස" ( ඇල්ගොරිතමය ) පමණි.

යම් පරිගණක භාෂාවක් භාවිත කරන අයකු මෙම ප්'සුඩෝ කේත වලින් ලියන ලද කේත කොටස එම අදාල භාෂාවකින් ලිවීමේදී එම භාෂාවට ම ආවේනික වූ යම් යම් වෙනත් ( ඇල්ගොරිතමයට අදාල නොවන ) කේත කොටස් ද භාවිත කිරීමට, ඔහුට සිදුවනු ඇත.

උදා :-
Pseudo Code
---------------------------------------------------------------------
a ← 7
b ← 5
IF a > b THEN
PRINT “A is Greater”
­---------------------------------------------------------------------

Implementation on Java
---------------------------------------------------------------------
class test {

public static void main (String args[]){
int a = 7, b = 5;

if (a > b)
System.out.println(“A is Greater”);

}

}
---------------------------------------------------------------------

Implementation on C++
---------------------------------------------------------------------
#include <iostream>
using namespace std;

int main (){
int a = 7 , b = 5;

if (a > b)
cout << “A is Greater”;
return 0;
}
---------------------------------------------------------------------

ඉහත උදාහරණ වලදී "class, public static void main (String args[]), #include <iostream> , using namespace std; ...etc." ආදී කේත කොටස් එම Java සහ C++ යන පරිගණක භාෂා වලටම ආවේනික කේත කොටස් ව ඇති බව වැටහෙනු ඇත.
තර්කය / ඇල්ගොරිතමය, පරිගණකයක් තුළ ස්ථාපනය (implementation) කිරීමේදී මෙසේ, ප්'සුඩෝ කේතය පරිගණක භාෂාවකට පරිවර්තනය කරනු ලැබේ.
සාමාන්‍යයෙන් සලකනු ලබන්නේ ප්'සුඩෝ කේත ලිවීමට නිශ්චිතම වශයෙන් ක්‍රමයක් නැති බවයි.එය ලිවිය යුත්තේ තමාට හැකි තරම් සරල ( පහසු ) ලෙසයි. මෙහිදී තමා කැමති ක්‍රමයක් ( සම්පූර්ණ වාක්‍ය ලිවීම , තමාට පහසු අංකන ක්‍රමයක් යොදාගැනීම් , කරුණු වශයෙන් ලිවීම්... ) භාවිත කළ හැක.නමුත් ප්'සුඩෝ කේත සම්බන්දයෙන් හඳුනාගත් සම්මත ලක්ෂණ කීපයක් ඇත. මෙම සම්මත ලක්ෂණ 6 : SEQUENCE , WHILE , IF-THEN-ELSE , REPEAT-UNTIL , FOR හා CASE ලෙස නම් කළ හැක. මෙම සම්මත ලක්ෂණ පිලිබදව වැඩිදුර කරුණු Pseudocode Standard : වෙබ් පිටුවෙන් ලබාගත හැක.

"No standard for pseudo code syntax exists, as a program in pseudo code is not an executable program. Flowcharts can be thought of as a graphical alternative to pseudo code."
- en.Wikipedia.org

මෙහි අදහස...,
"ප්'සුඩෝ කේත ක්‍රමය මගින් ලියූ ඇල්ගොරිතම යනු ක්‍රියා කරන පරිගණක වැඩසටහන් නොවන නිසා, ප්'සුඩෝ කේත සඳහා සම්මත අංකනයක් නොමැත. "ගැලීම් සටහන්" (Flowcharts) යනු මෙම ප්'සුඩෝ කේත සඳහා හොඳ රූපමය ආදේශකයක් ලෙස හැඳින්විය හැක."

2 comments:

  1. මචන්.... සිරාවටම මේක තේරුම් ගන්න නම් පට්ට ලේසි.. එල කිරි...
    ඔහොම කරගෙන යමන්...
    උඹට ගොඩක් පිං ...

    ReplyDelete