11.1.12 උපක්‍රමලේඛ (Sub Programs) - කාර්‍යය පටිපාටි - 11-වසර තොරතුරු හා සන්නිවේදන තාක්ෂණය

11.1.12 උපක්‍රමලේඛ (Sub Programs) - කාර්‍යය පටිපාටි

උපක්‍රමලේඛ (Sub Programs)

උපක්‍රමලේඛනයක් යනු විශේෂිත කාර්‍යයක් සිදු කරන කරමලේඛන කොටසකි / ඒකකයකි.

ක්‍රමලේඛනයක සංකීර්ණත්වය මගහරවා ගැනීම සඳහාත් , ක්‍රමලේඛනය හැකිතාක් දුරට සරල කර දැක්වීම සඳහාත් ක්‍රමලේඛ උපක්‍රමලේඛ ලෙස ලියනු ලබයි.

 

උපක්‍රමලේඛ වර්ග 2 කි.

  1. ශ්‍රිත (Function)
  2. කාර්‍යය පටිපාටි (Procedure)

 

 කාර්‍යය පටිපාටි (Procedure)

ප්‍රධාන ක්‍රමලේඛය හා සම්බන්ධ උපක්‍රමලේඛ මගින් ප්‍රධාන ක්‍රමලේඛය වෙත ප්‍රතිදානයක් ලබාදිය නොහැකි උපක්‍රමලේඛ කාර්‍යය පටිපාටි (Procedure) ලෙස හඳුන්වනු ලබයි.

කාර්‍යය පටිපාටි (Procedure) මගින් ආදානයන් එකක් ලබාගෙන, ප්‍රතිදානයන් කිහිපයක් ලබාදිය හැකිය.

 

කාරක රීතිය (Syntax)

Procedure Name_of_Procedure (Name_of_variable:data type);

Local declarations;

begin
< procedure body >
end;

 

  • කාර්‍යය පටිපාටිය ආරම්භයේ දී කාර්‍යය පටිපාටියන්න අනිවර්ර්යෙන් සඳහන් කළ යුතුය. (කාර්‍යය පටිපාටියක් බව හදුන්වා දෙනු ලබන්නේ කාර්‍යය පටිපාටි යන ඇවිරුණු පදය (keyword / recerved word) මගිනි)
  • Name_of_Procedure වෙනුවට කාර්‍යය පටිපාටිය සඳහා අභිමත නමක් ලබාදිය හැකිය.
  • Name_of_variable මගින් කාර්‍යය පටිපාටියේ ආදාන ලෙස ලබාගන්නා විචල්‍යයන් (variables) හදුන්වාදෙනු ලබයි. data type මගින් ආදාන ලෙස ලබාගන්නා විචල්‍යයට අදාල දත්ත ප්‍රරූපය දක්වයි.
  • Local declarations; යටතේ දක්වනු ලබන්නේ කාර්‍යය පටිපාටියට පමණක් අදාළ විචල්‍යයන් වේ.
  • begin සහ end අතර කාර්‍යය පටිපාටියට අදාළ පියවරයන් දක්වනු ලබයි.

 

ප්‍රධාන කමලේඛය ආරම්භ කිරීමට පෙර කාර්‍යය පටිපාටි හදුන්වා දිය යුතුය.

ප්‍රධාන කමලේඛය අවසානයේ උපකරමලේක වලට ඇමතිය (Calling Procedure) යුතුය.

 

උදාහරණ 1  : පහත පරිදි සංඛ්‍යා දෙකක එකතුව ගණනය කිරීම සඳහා කාර්‍යය පටිපාටියක් ගොඩනැගිය හැකිය.

Procedure getAB(var A,B:integer);
begin
           writeln('Enter tha values of A and B');    
           read(A,B);
end;

Procedure Add(var A,B:integer);
var Add:integer;
begin
       Add:=A+B;
       writeln('Sum = ',Add);    
end;

  • getAB යනු A සහ B වලට අදාළ අගයන් ලබා ගැනීම සඳහා ගොඩනගන ලද කාර්‍යය පටිපාටිය වේ.
  • Add යනු A සහ B වල එකතුව ලබා ගැනීම සඳහා ගොඩනගන ලද කාර්‍යය පටිපාටිය වේ.

 

 උදාහරණ2 : පහතින් දැක්වෙන්නේ එය ප්‍රධාන පැස්කල් වැඩසටහන් මගින් අමතන (Calling Procedure) ආකාරයයි.

getAB(A,B);
Add(A,B);

 

උදාහරණ 3 : කාර්‍යය පටිපාටි උපයෝගී කරගෙන ලියන ලද සම්පූර්ණ කරමලේඛය පහතින් දැක්වේ.

program checkProcedure(input,output);
var         A,B:integer;

Procedure getAB(var A,B:integer);
begin
           writeln('Enter tha values of A and B');    
           read(A,B);
end;

Procedure Add(var A,B:integer);
var Add:integer;
begin
       Add:=A+B;
       writeln('Sum = ',Add);    
end;

begin
    getAB(A,B);
    Add(A,B);
end.

  • writeln('Sum = ',Add); යන්න උපයෝගී කර ගනිමින් Add යන්නට අදාළ අගය ප්‍රතිදානය කරයි. එය ප්‍රතිදානය කරන්නේ කාර්‍යය පටිපාටිය තුළ බැවින් ප්‍රධාන ක්‍රමලේඛය වෙත අගයක් ප්‍රතිදානය නොවේ.
  • Add(A,B); මගින් ප්‍රධාන ක්‍රමලේඛය තුළ කාර්‍යය පටිපාටිය ඇමතීමක් පමණක් (Calling Procedure) සිදුවේ.

 

චතුරස්‍රයක දිග හා පළල  ආදානයන් ලෙස ගෙන චතුරස්‍රයේ වර්ගඵලය හා පරිමිතිය කාර්‍යය පටිපාටි භාවිතයෙන් ගණනය කරන්න.

program     Area_pro(input,output);
var            length,width:integer;

Procedure getdata(var length,width:integer);
begin    
    writeln('Enter tha values of length and width of squre');    
          read(length,width);
end;

Procedure Area_squre(var length,width:integer);
var Area:integer;
begin
        Area:=length*width;
    writeln('Ara of squre is : ',Area);
end;

Procedure Perimeter_squre(var length,width:integer);
var Perimeter:integer;
begin
        Perimeter:=((length*2)+(width*2));
     writeln('Perimeter of squre is : ',Perimeter);
end;

begin
    getdata(length,width);
         Area_squre(length,width);
    Perimeter_squre(length,width);
      
end.

 

ශ්‍රිත (Function) හා කාර්‍යය පටිපාටි (Procedure) අතර වෙනස.

  

 ශ්‍රිත (Function)  කාර්‍යය පටිපාටි (Procedure)

 ප්‍රධාන ක්‍රමලේඛය හා සම්බන්ධ උපක්‍රමලේඛ මගින් ප්‍රධාන ක්‍රමලේඛය වෙත ප්‍රතිදානයක් ලබාදිය හැකිය.

 ප්‍රධාන ක්‍රමලේඛය හා සම්බන්ධ උපක්‍රමලේඛ මගින් ප්‍රධාන ක්‍රමලේඛය වෙත ප්‍රතිදානයක් ලබාදිය නොහැකි

ශ්‍රිත මගින් ආදාන කිහිපයක් ලබා ගත්ත ද, ප්‍රතිදානය කරන්නේ එක් අගයක් පමණි.

කාර්‍යය පටිපාටි (Procedure) මගින් ආදානයන් එකක් ලබාගෙන, ප්‍රතිදානයන් කිහිපයක් ලබාදිය හැකිය.