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


Problem

9 /12


متغیرهای محلی و جهانی

Theory Click to read/hide

اغلب لازم است از متغیرهای اضافی استفاده شود که فقط در زیربرنامه استفاده می شوند. چنین متغیرهایی local (یا محلی) نامیده می شوند و فقط می توانند در زیر برنامه ای که در آن ایجاد شده اند دستکاری شوند.
 

محدوده متغیر محلی تابع یا رویه‌ای است که در آن اعلام می‌شود
بنابراین، می توان دامنه (حوزه) یک متغیر را فقط به زیربرنامه ای که واقعاً مورد نیاز است محدود کرد. در برنامه نویسی به این تکنیکencapsulation  - پنهان کردن یک متغیر از تغییر از خارج.

اگر لازم است متغیری را تعریف کنید که در هر نقطه از برنامه قابل مشاهده باشد (در هر زیربرنامه)، آنگاه چنین متغیرهایی خارج از همه زیربرنامه ها اعلام می شوند (برنامه 3 را از جدول زیر ببینید)
چنین متغیرهایی جهانی نامیده می شوند.

تجزیه و تحلیل سه برنامه: <بدن> اعلان می شود نمایش داده می شود روی صفحه نمایش داده می شود.
1) در این برنامه متغیر i محلی است. یک متغیر محلی در یک زیربرنامه2) در اینجا، حتی اگر یک متغیر i در برنامه اصلی (با مقدار 7) وجود داشته باشد، یک متغیر محلی جدید i با مقدار 5 ایجاد می شود. 
وقتی این برنامه را اجرا می کنید، روی صفحه مقدار 75
3) این برنامه دارای یک متغیر جهانی i است. مقدار آن را می توان در یک زیر روال و در داخل برنامه اصلی تغییر داد
رویه با متغیر سراسری i کار می کند و مقدار جدیدی برابر با 2 به آن اختصاص داده می شود. مقدار 2
تست رویه();
var i: عدد صحیح؛
شروع
    i := 5;
    writeln(i);
پایان؛
var i: عدد صحیح؛

روش تست();
var i: عدد صحیح؛
شروع
    i := 5;
    writeln(i);
پایان؛

شروع
    i := 7;
    نوشتن (i)؛
    test();
پایان.
var i: عدد صحیح؛

روش تست();
شروع
    i := 2;
پایان؛

شروع
    test();
    writeln(i);
پایان.

Problem

رویه ای با پارامتر n بنویسید که درخت کریسمس را با تاجی به ارتفاع n نمایش می دهد
برنامه اصلی باید حاوی ورودی مقدار متغیر n و فراخوانی رویه
باشد
نمونه‌ها <سر> <بدن>
# ورودی خروجی
1 5 <پیش>     o    اوو   اوووو  اووووو oooooooo