علاقمندان به زبان های برنامه نویسی روزتون بخیر. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراهتون خواهیم بود. زیر برنامه ها شامل رویه ها و توابع هستند. در این بخش از آموزش به بررسی توابع در زبان پاسکال (Pascal) می پردازیم. با ادامه ی آموزش ها همراه ما باشید.
زیر برنامه یک واحد / ماژول برنامه است که یک کار خاص را انجام می دهد. این زیر برنامه ها برای تشکیل برنامه های بزرگ تر ترکیب می شوند. این اساساً “طراحی مدولار” نامیده می شود. یک زیر برنامه به وسیله ی یک زیر برنامه / برنامه ای که به آن برنامه فراخوانی گفته می شود ، می تواند فراخوانی شود.
پاسکال دو نوع زیر برنامه را ارائه می دهد.
در ادامه با مبحث توابع در زبان پاسکال (Pascal) همراه هستیم.
مفهوم تابع در Pascal، به مانند تعریف ریاضی تابع می باشد. به عبارتی تابع یک یا چندین ورودی را در یافت می کند و تنها یک خروجی دارد. روال ها نیز همانند توابع عمل می نمایند اما خروجی ندارند.
یک تابع ، گروهی از عبارات است که با هم یک کار را انجام می دهند. هر برنامه پاسکال حداقل یک تابع دارد.
یک اعلان تابع به کامپایلر در مورد نام تابع ، نوع بازگشت و پارامترها می گوید. تعریف تابع بدنه واقعی تابع را فراهم می کند.
کتابخانه استاندارد پاسکال توابع داخلی زیادی را ارائه می دهد که برنامه شما می تواند با آن ها تماس بگیرد. به عنوان مثال ، تابع ()AppendStr دو رشته را پیوست می کند ، تابع ()New به صورت پویا حافظه را به متغیرها و بسیاری از توابع دیگر اختصاص می دهد.
مبحث توابع در زبان پاسکال (Pascal) را با تعریف یک تابع دنبال خواهیم نمود.
در پاسکال – Pascal ، یک تابع با استفاده از کلید واژه تابع تعریف می شود. شکل کلی تعریف تابع به شرح زیر است. به کد ها توجه نمایید.
1 2 3 4 5 6 7 8 9 | function name(argument(s): type1; argument(s): type2; ...): function_type; local declarations; begin ... < statements > ... name:= expression; end; |
تعریف تابع در Pascal شامل یک هدر تابع ، اعلا های محلی و یک بدنه ی تابع است. هدر عنوان شامل keyword تابع و نامی است که به تابع داده می شود. در این جا تمام قسمت های یک تابع آورده شده و توضیحاتی راحع به هر یک داده شده است.
آرگومان ها – آرگومان ها ارتباط بین برنامه فراخوانی و شناسه های تابع را ایجاد می کنند و پارامترهای رسمی نیز نامیده می شوند. یک پارامتر مانند placeholder است. وقتی یک تابع فراخوانی می شود ، یک مقدار را به پارامتر منتقل می کنید. این مقدار به عنوان پارامتر یا آرگومان واقعی نامیده می شود. لیست پارامترها به نوع ، ترتیب و تعداد پارامترهای یک تابع اشاره دارد. استفاده از چنین پارامترهای فرمال اختیاری است. این پارامترها ممکن است از نوع داده استاندارد ، نوع داده تعریف شده توسط کاربر یا نوع داده های subrange برخوردار باشند.
لیست پارامترهای فرمال ظاهر شده در عبارت تابع می تواند متغیرهای ساده یا مشترک ، آرایه ها یا متغیرهای ساختار یافته یا زیر برنامه ها باشد.
Return Type یا نوع بازگشتی – همه توابع باید یک مقدار را برگردانند ، بنابراین به همه توابع باید یک نوع اختصاص داده شود. تابع نوع داده نوع از مقدار تابع بازگشتی است. این ممکن است استاندارد ، نوع مقیاس پذیر یا تعریف شده توسط کاربر باشد اما نمی تواند از نوع ساختاری باشد.
اعلان های محلی – اعلان های محلی به اعلان های مربوط به برچسب ها ، ثابت ها ، متغیرها ، تابع ها و رویه ها ، که فقط برای بدنه تابع است کاربرد دارد.
بدنه تابع: بدنه تابع شامل مجموعه ای از عبارات است که عملکرد تابع را تعریف می کند. همیشه بین کلمات رزرو شده begin و end باید قرار گیرد. این بخشی از تابعی است که تمام محاسبات در آن انجام می شود. آن جا باید یک عبارت تخصیص وجود داشته باشد از نوع – ;name := expression در بدنه تابع که مقدار را به نام تابع اختصاص می دهد. آخرین عبارت در بدنه باید یک عبارت end باشد.
در زیر مثالی وجود دارد که نشان می دهد چگونه یک تابع در pascal تعریف می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | (* function returning the max between two numbers *) function max(num1, num2: integer): integer; var (* local variable declaration *) result: integer; begin if (num1 > num2) then result := num1 else result := num2; max := result; end; |
یک بیانیه ی تابع در مورد نام تابع و نحوه ی فراخوانی تابع به کامپایلر می گوید. بدنه ی واقعی تابع را می توان به طور جداگانه تعریف کرد.
اعلان تابع شامل بخش هایی است که در زیر به آن اشاره شده است.
1 | function name(argument(s): type1; argument(s): type2; ...): function_type; |
برای تابع () max فوق تعریف شده ، به شکل زیر عمل می شود.
1 | function max(num1, num2: integer): integer; |
هنگامی که یک تابع را در یک فایل منبع تعریف می کنید و آن تابع را در فایل دیگر فراخوانی می کنید، اعلان تابع ضروری است. در چنین حالتی ، شما باید تابع را در بالای فایل فراخوانی تابع، فراخوانی کنید. بنابراین در ادامه ی آموزش با مبحث فراخوانی یک تابع همراه خواهیم بود.
در حین ایجاد یک تابع ، شما باید تعریف تابعی را طبق کاری که می خواهید، ارائه دهید. برای استفاده از یک تابع، برای انجام کار تعریف شده باید آن تابع را فراخوانی کنید. هنگامی که یک برنامه یک تابع را فراخوانی می کند ، برنامه کنترل به تابع فراخوانی منتقل می شود. یک تابع فراخوان وظیفه تعریف شده را انجام می دهد و هنگامی که بیانیه بازگشت آن اجرا شد یا هنگامی که آخرین عبارت end به پایان رسید ، کنترل برنامه را به برنامه اصلی برمی گرداند.
برای فراخوانی یک تابع ، شما فقط باید پارامتر های مورد نیاز را به همراه نام تابع منتقل کنید و اگر تابع یک مقدار را برگرداند ، می توانید مقدار برگشتی را ذخیره کنید. در زیر یک مثال ساده برای نشان دادن این موضوعات آورده شده است به این کد ها توجه نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | program exFunction; var a, b, ret : integer; (*function definition *) function max(num1, num2: integer): integer; var (* local variable declaration *) result: integer; begin if (num1 > num2) then result := num1 else result := num2; max := result; end; begin a := 100; b := 200; (* calling a function to get max value *) ret := max(a, b); writeln( 'Max value is : ', ret ); end. |
هنگامی که کد فوق کامپایل و اجرا می شود ، نتیجه ی زیر را ایجاد می کند.
1 | Max value is : 200 |
مبحث توابع در زبان پاسکال (Pascal) را در این جا به پایان می رسانیم.
در این بخش از آموزش با مبحث توابع در زبان پاسکال (Pascal) همراه بودیم. می دانیم که استفاده از توابع و روال ها، کد نویسی را آسان تر می کند و خوانایی برنامه را نیز بالا تر می برد. همچنین امکان رفع اشکالات سریع برنامه، استفاده بهینه از حافظه و قابلیت استفاده مجدد، از سایر مزایای استفاده از توابع و روال ها می باشد. در حلسه ی آینده به بررسی Procedures یا رویه ها می پردازیم. با ادامه ی آموزش زبان برنامه نویسی پاسکال (Pascal) و وب سایت آموزشی پی وی لرن همراه باشید.