دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • اردیبهشت

جلسه ۱۲ : رویه ها در زبان پاسکال (Pascal)

  • دسته‌بندی‌ها :
جلسه ۱۲ : رویه ها در زبان پاسکال (Pascal)
    • جزئیات
    • نوع محتواآموزشی

      علاقمندان به زبان های برنامه نویسی روزتون بخیر. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراهتون خواهیم بود. در این بخش از آموزش پاسکال با رویه ها در زبان پاسکال (Pascal) آشنا خواهیم شد. با ادامه ی آموزش ها همراه باشید.

      رویه ها در زبان پاسکال (Pascal)

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

      تعریف رویه و یا روال

      در پاسکال – Pascal ، یک رویه با استفاده از keyword رویه تعریف می شود. شکل کلی تعریف رویه به شرح زیر است.

      مثال : 

      تعریف رویه ها در پاسکال شامل یک هدر، اعلان های محلی و یک بدنه از رویه است. هدر رویه شامل keyword رویه و نامی است که به این رویه داده می شود. در ادامه تمام قسمت های یک رویه را بررسی می کنیم.

      آرگومان ها – آرگومان ها ارتباط بین برنامه فراخوانی و شناسه رویه ها را ایجاد می کنند. قوانین برای آرگومان در رویه ها همانند توابع است.

      اعلان های محلی – اعلان های محلی به اعلان های مربوط به برچسب ها ، ثابت ها ، متغیرها ، کارکردها و رویه ها ، که فقط در مورد بدنه رویه اعمال می شود ، اشاره دارند.

      بدنه رویه – بدنه رویه شامل مجموعه ای از اظهارات است که تعریف می کند که رویه چه کاری انجام می دهد. همیشه بین کلمات رزرو شده begin و end قرار می گیرد. این بخشی از رویه ای است که تمام محاسبات انجام می شود.

      در زیر کد منبع برای رویه ای به نام ()findMin آورده شده است. این رویه ۴ پارامتر x ، y ، z و m را در بر می گیرد و در بین سه متغیر اول در متغیر به نام m کوچکترین را ذخیره می کند. متغیر m توسط مرجع منتقل می شود.

      مثال : 

      اعلان رویه ها

      یک بیانیه رویه در مورد نام کامپایلر و نحوه فراخوانی رویه توضیح می دهد. بدنه واقعی رویه را می توان به طور جداگانه تعریف کرد.

      اعلان رویه دارای سینتکس زیر است.

      مثال : 

      لطفا توجه داشته باشید که نام رویه با نوع همراه نیست. برای رویه تعریف شده فوق ()findMin ، اعلان زیر را دنبال کنید.

      مثال : 

      فراخوانی رویه ها

      در حین ایجاد روال ، شما تعریفی از آن چه رویه باید انجام دهد را ارائه می دهید. برای استفاده از رویه ، برای انجام کار تعریف شده باید آن رویه را فراخوانی کنید. هنگامی که یک برنامه با یک رویه فراخوانی می شود، کنترل برنامه به رویه فراخوانی منتقل می شود. هنگامی که آخرین جمله end آن برسد، کنترل را به برنامه فراخوانی باز می گرداند.

      برای فراخوانی یک رویه ، شما فقط باید پارامترهای مورد نیاز را به همراه نام رویه مطابق شکل زیر ارسال کنید.

       

      مثال : 

      هنگامی که کد فوق کامپایل و اجرا می شود، نتیجه ی زیر را ایجاد می کند.

      مثال : 

      زیر برنامه های بازگشتی

      ممکن است یک برنامه یا زیر برنامه ممکن است زیر برنامه دیگری را فراخوانی کند. هنگامی که یک زیر برنامه خودش را صدا می کند ، به آن یک فراخوانی بازگشتی گفته می شود و فرایند به عنوان بازگشت شناخته می شود.

      برای نشان دادن مفهوم ، بگذارید فاکتوریل یک عدد را محاسبه کنیم. فاکتوریل عدد n به صورت زیر تعریف می شود.

      مثال : 

      برنامه زیر با فراخوانی خودش به صورت بازگشتی ، فاکتوریل یک عدد مشخص را محاسبه می کند.

      مثال : 

      هنگامی که کد فوق کامپایل و اجرا می شود، نتیجه ی زیر را ایجاد می کند.

      مثال : 

      مبحث رویه ها در زبان پاسکال (Pascal) را با مثال دیگری ادامه می دهیم.

      در زیر نمونه ی دیگری ، که با استفاده از یک تابع بازگشتی ، سری فیبوناچی را برای تعداد معینی تولید می کند آورده شده است.

      مثال : 

      هنگامی که کد فوق کامپایل و اجرا شد ، نتیجه زیر را ایجاد می کند.

      مثال : 

      آرگومان های یک زیر برنامه

      اگر قرار است زیر برنامه (تابع یا روال) از آرگومان استفاده کند ، باید متغیرهایی را تعریف کند که مقادیر آرگومان ها را بپذیرد. به این متغیرها پارامترهای فرمال زیر برنامه گفته می شود.

      پارامترهای فرمال مانند سایر متغیرهای محلی درون زیر برنامه رفتار می کنند و با ورود به زیر برنامه ایجاد می شوند و هنگام خروج از بین می روند.

      هنگام فراخوانی زیر برنامه ، دو راه وجود دارد که می توان آرگومان ها را به زیر برنامه منتقل کرد.

      ردیفنوع فراخوانی و توضیحات
      ۱فراخوانی با مقدار (Call by value)

      این روش مقدار واقعی یک آرگومان را در پارامتر فرمال از زیر برنامه کپی می کند. در این حالت ، تغییرات ایجاد شده در پارامتر داخل زیر برنامه هیچ تاثیری در آرگومان نمی گذارد.

      ۲فراخوانی با مرجع (Call by reference)

      این روش آدرس یک آرگومان را در پارامتر فرمال کپی می کند. در داخل زیر برنامه ، از آدرس برای دسترسی به آرگومان واقعی مورد استفاده در فراخوانی استفاده می شود. این بدان معنی است که تغییرات ایجاد شده در پارامتر بر آرگومان تأثیر می گذارد.

      به طور پیش فرض ، پاسکال برای انتقال آرگومان از فراخوانی با مقدار (Call by value) استفاده می کند. به طور کلی ، این بدان معنی است که کد درون یک زیر برنامه نمی تواند آرگومان های استفاده شده برای فراخوانی زیر برنامه را تغییر دهد. برنامه ای که ما در فصل ‘توابع در زبان پاسکال’ استفاده کردیم ، تابعی به نام ()max را با استفاده از فراخوانی با مقدار (Call by value) فراخوانی می کند.

      در حالی که ، برنامه ی مثال ارائه شده در این جا (exProcedure) با استفاده از فراخوانی با مرجع (Call by reference) ، رویه ()findMin را فراخوانی می کند.

      کلام پایانی

      در این بخش از آموزش با رویه ها در زبان پاسکال (Pascal) آشنا شدیم. همان طور که دیدیم رویه ها مانند توابع عمل می کنند با این تفاوت که رویه ها بدون نوع هستند و خروجی آن ها از طریق پارامتر برگردانده می شود. در جلسه ی آینده مبحث دامنه و محدوده متغیرها را خواهیم داشت. با ادامه ی آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراه باشید.

      QR:  جلسه ۱۲ : رویه ها در زبان پاسکال (Pascal)
      به اشتراک بگذارید