Module: زیر برنامه ها: رویه ها و عملکردها - 1


Problem

1/12

زیر برنامه ها: مقدمه

Theory Click to read/hide

یک زیربرنامه قسمت جداگانه ای از برنامه است که نام دارد و وظیفه جداگانه خود را حل می کند. زیربرنامه در ابتدای برنامه اصلی قرار دارد و می توان آن را از برنامه اصلی با مشخص کردن نام راه اندازی کرد ( فراخوانی کرد)

استفاده از زیر روال ها به شما این امکان را می دهد که در صورت نیاز به نوشتن کد مشابه در مکان های مختلف برنامه، از تکرار کد جلوگیری کنید. 
کتابخانه‌هایی که به یک برنامه وارد می‌شوند (مثلاً ریاضی کتابخانه ریاضی) از زیر روال‌هایی تشکیل شده‌اند که قبلاً توسط شخصی کامپایل شده‌اند. برنامه نویسان نیازی ندارند به الگوریتم هایی که پیاده سازی می کنند فکر کنند، بلکه به سادگی آنها را اعمال می کنند و فقط به این فکر می کنند که دقیقاً چه کاری انجام می دهند. این یک صرفه جویی بزرگ در زمان است. نیازی به نوشتن الگوریتمی نیست که قبلا توسط شخص دیگری نوشته شده باشد.

هر روتین فقط باید یک کار انجام دهد:  یا فقط چیزی را محاسبه کنید، یا مقداری داده را خروجی بگیرید، یا کار دیگری انجام دهید. 

دو نوع زیر روال وجود دارد - روش هاو عملکرد

زیربرنامه‌ها برخی از اقدامات را انجام می‌دهند، مانند چاپ نتیجه روی صفحه به شکلی خاص (یک مثال ساده، عبارت writeln() یک زیربرنامه استاندارد است که به اطلاعات صفحه نمایش)

زیرروال های تابع نتیجه ای را برمی گرداند (عدد، رشته کاراکتر و غیره) که می توانیم در برنامه اصلی استفاده کنیم.

بیایید سعی کنیم یک روش ساده بنویسیم:
فرض کنید باید رشته "Error" را روی صفحه نمایش دهیم هر بار که ممکن است به دلیل خطای کاربر خطایی در کد رخ دهد (مثلاً وقتی داده های نادرست وارد می کند)
این را می توان با نوشتن بیانیه انجام داد <پیش> writeln('Error'); و حالا تصور کنید که چنین خطی باید در بسیاری از جاهای برنامه درج شود. البته، شما فقط می توانید آن را در همه جا بنویسید. اما این راه حل دو اشکال دارد.
1) این رشته بارها در حافظه ذخیره می شود
2) اگر بخواهیم خروجی خطا را تغییر دهیم، باید این خط را در طول برنامه تغییر دهیم، که نسبتاً ناخوشایند است

برای چنین مواردی، مراحل لازم است.
یک برنامه با رویه ممکن است به شکل زیر باشد: <پیش> ... با استفاده از namespace std. رویه printError(); // شرح روش شروع writeln('خطا'); // body body - دستوراتی که رویه اجرا خواهد کرد پایان؛ // برنامه اصلی شروع؛ ... چاپگر(); // روند اجرا را شروع کنید. ما فقط نام رویه ای را که می خواهیم اجرا کنیم را مشخص می کنیم. ... چاپگر(); ... پایان. رویه با کلمه procedure شروع می شود. بعد از نام رویه، پرانتزهایی نوشته می شود که نشان دهنده متغیرها و انواع آنهاست که اجرای رویه به آنها بستگی دارد. به عنوان مثال:

var a, b, answer: integer;
روش Sum(a, b: integer);
شروع
    پاسخ := a + b;
پایان؛

تمام دستوراتی که در یک رویه اجرا می شوند تورفتگی دارند. 

رویه ها قبل از برنامه اصلی نوشته می شوند

برای اجرای یک رویه، در برنامه اصلی باید آن را با نام صدا بزنید و به یاد داشته باشید که پرانتز بنویسید!
شما می توانید یک رویه را در یک برنامه هر چند بار فراخوانی کنید.

Problem

رویه ای بنویسید که عبارت "خطا" را نمایش دهد. تقسیم بر صفر! نام صحیح رویه را بدهید.