زیرروال یا Subroutine چیست؟
در زبانهای برنامه نویسی، زیرروال (Subroutine) به دنبالهای از دستورات گفته میشود که در قالب یک قطعه کد واحد بستهبندی شده است و بنا به نیاز برنامه به آن می تواند از مکانهای مختلفی در برنامه فراخوانی (Call) و مورد استفاده قرار بگیرد. معمولا در برخی زبانها و یا در حالات خاصی از نامهای روال (Routine)، رویه (Procedure)، متد (Method) و تابع (Function) به عنوان معادلهایی برای Subroutine استفاده میشود.
اغلب اوقات دستوراتی که ممکن است در برنامه چندین بار و از مکانهای مختلف اجرا شود در داخل یک زیرروال قرار میگیرد. هر زیرروال دارای یک نام میباشد که از این نام برای فراخوانی آن استفاده میشود. هنگامی که یک سابروتین فراخوانی میشود دستورات موجود در آن اجرا شده و سپس اجرای مابقی دستورات از محلی که فراخوانی انجام شده بود ادامه مییابد.
زیرروالها میتوانند فقط عملیاتی را انجام دهند و یا حاصل اعمال خود را در قالب یک مقدار به برنامهی فراخوانی کننده برگردانند (Return) (در زبان بیسیک و مشتقات آن، از عنوان تابع برای رویه هایی استفاده میشود که مقداری را برمیگردانند). برای ایجاد پیوند میان زیرروال و بخشی که فراخوانی را انجام میدهد میتوان دادههایی را به Subroutine ارسال نمود که به آنها پارامتر (Parameter) گفته میشود. مقادیر پارامترها توسط برنامهی فراخوانی کننده مشخص میشود و زیرروال از این مقادیر در دستورات خود استفاده میکند.
فواید استفاده از زیرروالها
از جمله فواید استفاده از Subroutine ها میتوان به موارد مهم زیر اشاره نمود:
- کاهش میزان کدهای تکراری
- تقسیم یک برنامهی پیچیده به بخشهای کوتاهتر و سادهتر
- امکان استفادهی مجدد از کد
- سادهتر شدن فرایند نگهداری و عیب یابی
با این حال استفاده از زیرروالها منجربه ایجاد سربار محاسباتی در فرایند فراخوانی نیز میشود.
مثالی از یک زیرروال
در مثال زیر، تابعی به نام add به زبان C++ نوشته شده است که برای جمع دو عدد استفاده میشود. این تابع دارای دو پارامتر a و b از نوع int (عدد صحیح) و یک خروجی از نوع int میباشد. مجموع a و b در یک متغیر به نام r ذخیره میشود و مقدار آن به عنوان خروجی برگردانده میشود.
تابع دیگری که در این مثال دیده میشود main نام دارد. شروع هر برنامه در C++ با فراخوانی این تابع شروع میشود و در این تابع نیز با فراخوانی تابع add مجموع دو مقدار 15 و 13 (به عنوان مقادیر پارامترها) محاسبه و با دستور cout مقدار حاصل یعنی 28 نمایش داده میشود.
#include <iostream>
using namespace std;
int add (int a, int b)
{
int r;
r = a + b;
return r;
}
int main ()
{
int c;
c = add (15, 13);
cout << c;
}
پیوندهای پیشنهادی تک دیک
