උපක්රමලේඛ (Sub Programs)
උපක්රමලේඛනයක් යනු විශේෂිත කාර්යයක් සිදු කරන කරමලේඛන කොටසකි / ඒකකයකි.
ක්රමලේඛනයක සංකීර්ණත්වය මගහරවා ගැනීම සඳහාත් , ක්රමලේඛනය හැකිතාක් දුරට සරල කර දැක්වීම සඳහාත් ක්රමලේඛ උපක්රමලේඛ ලෙස ලියනු ලබයි.
උපක්රමලේඛනයේ වාසි (Advantages)
උපක්රමලේඛ වර්ග 2 කි.
ශ්රිත (Function)
ප්රධාන ක්රමලේඛය හා සම්බන්ධ උපක්රමලේඛ මගින් ප්රධාන ක්රමලේඛය වෙත ප්රතිදානයක් ලබාදිය හැකි උපක්රමලේඛ ශ්රිත (Function) ලෙස හඳුන්වනු ලබයි.
ශ්රිත මගින් ආදාන කිහිපයක් ලබා ගත්ත ද, ප්රතිදානය කරන්නේ එක් අගයක් පමණි.
කාරක රීතිය (Syntax)
Function Name_of_function (Name_of_variable:data type):data type;
Local declarations;
begin
...
< statements >
...
Name_of_function:= expression;
end;
ප්රධාන කමලේඛය ආරම්භ කිරීමට පෙර ශ්රිත හදුන්වා දිය යුතුය.
ප්රධාන කමලේඛය අවසානයේ උපකරමලේක වලට ඇමතිය (Calling Function) යුතුය.
උදාහරණ 1 : පහත පරිදි සංඛ්යා දෙකක එකතුව ගණනය කිරීම සඳහා ශ්රිතයක් ගොඩනැගිය හැකිය.
Function Add(var A,B:integer):integer;
begin
Add:=A+B;
end;
උදාහරණ2 : පහතින් දැක්වෙන්නේ එය ප්රධාන පැස්කල් වැඩසටහන් මගින් අමතන (Calling Function) ආකාරයයි.
writeln('Enter tha values of A and B');
read(A,B);
writeln('Add = ',Add(A,B));
උදාහරණ 3 : ශ්රිත උපයෝගී කරගෙන ලියන ලද සම්පූර්ණ කරමලේඛය පහතින් දැක්වේ.
program checkFunction(input,output);
var A,B:integer;
Function Add(var A,B:integer):integer;
begin
Add:=A+B;
end;
begin
writeln('Enter tha values of A and B');
read(A,B);
writeln('Add = ',Add(A,B));
end.
සමචතුරස්රයක දිග , පළල හා වෘත්තයක අරය ආදානයන් ලෙස ගෙන සමචතුරස්රයක හා වෘත්තයක වර්ගඵලය ශ්රිත භාවිතයෙන් ගණනය කරන්න.
program Area(input,output);
var length,width:integer;
radius:real;
const pi=22/7;
Function Area_squre(var length,width:integer):integer;
begin
Area_squre:=length*width;
end;
Function Area_circle(var radius:real):real;
begin
Area_circle:=pi*radius*radius;
end;
begin
writeln('Enter tha values of length and width of squre');
read(length,width);
writeln('Area of squre is : ',Area_squre(length,width));
writeln('Enter Radius');
read(radius);
writeln('Area of circle is : ',Area_circle(radius):0:2);
end.
කාර්යය පටිපාටි (Procedure) පිලිබඳව මීලඟ ලිපියෙන් සාකච්චා කෙරේ.