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



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

جلسه ۱۷ : اشاره گرها یا Pointers در زبان پاسکال (Pascal)

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

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

      اشاره گرها یا Pointers در زبان پاسکال (Pascal)

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

      همان طور که می دانید ، هر متغیر یک مکان حافظه است و هر مکان حافظه آدرس خود را تعریف کرده است که با استفاده از نام متغیر اشاره گرها، که نشان دهنده یک آدرس در حافظه است ،  قابل دسترسی می باشد.

      اشاره گرها چیست؟

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

      مثال : 

      نوع اشاره گر با پیشوند نماد (^) با نوع پایه (base-type) تعریف می شود. نوع پایه (base-type) انواع آیتم های داده را مشخص می کند. هنگامی که یک متغیر اشاره گر از نوع خاصی تعریف می شود ، می تواند موارد داده فقط از آن نوع را نشان دهد. هنگامی که یک نوع اشاره گر تعریف شد ، می توانیم از اعلان var برای اعلان متغیرهای نشانگر استفاده کنیم.

      مثال : 

      در زیر چندین اعلام اشاره گر معتبر وجود دارد.

      مثال : 

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

      مثال : 

      مثال زیر این مفهوم را نشان می دهد.

      مثال : 

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

      مثال : 

      پرینت آدرس حافظه در پاسکال

      در Pascal می توانیم آدرس متغیر را با استفاده از عملگر آدرس (@) به متغیر اشاره گر اختصاص دهیم. ما از این نشانگر برای دستکاری و دسترسی به آیتم داده استفاده می کنیم. اما اگر به دلایلی نیاز به کار با خود آدرس حافظه داشته باشیم ، باید آن را در متغیر نوع word ذخیره کنیم.

      بگذارید مثال بالا را برای پرینت آدرس حافظه ذخیره شده در اشاره گر iptr توسعه دهیم.

      مثال : 

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

      مثال : 

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

      اشاره گرهای NIL

      همیشه عمل خوبی است است که مقدار NIL را به متغیر اشاره گر اختصاص دهید در صورتی که آدرس دقیقی برای اختصاص دادن ندارید. این کار در زمان اعلام متغیر انجام می شود. یک اشاره گر که به NIL اختصاص داده می شود به هیچ کجا اشاره نمی کند. برنامه زیر را در نظر بگیرید.

      مثال : 

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

      مثال : 

      برای چک کردن اشاره گر nil می توانید از عبارت if به شرح زیر استفاده کنید.

      مثال : 

      جزئیات اشاره گر پاسکال

      اشاره گرها دارای مفاهیم بسیار ساده اما آسانی هستند و برای برنامه نویسی پاسکال بسیار مهم هستند. چند مفهوم برای اشاره گر مهم است که باید برای یک برنامه نویس پاسکال واضح باشد.

      ردیفمفهوم و توضیحات
      ۱اشاره گر حسابی – Pointer arithmetic

      چهار عملگر حسابی یا محاسباتی وجود دارد که می توان از آن ها در اشاره گرها استفاده کرد: افزایش ، کاهش ، + ، –

       

      ۲آرایه اشاره گرها – Array of pointers

      برای نگه داشتن تعدادی اشاره گر می توانید آرایه ها را تعیین کنید.

       

      ۳اشاره گر به اشاره گر – Pointer to pointer

      پاسکال به شما امکان می دهد تا یک اشاره گر روی یک اشاره گر و غیره داشته باشید.

       

      ۴انتقال نشانگرها به زیر برنامه ها در پاسکال

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

       

      ۵بازگشت اشاره گر از زیر برنامه ها در پاسکال

      پاسکال به یک زیر برنامه اجازه می دهد تا یک اشاره گر را برگرداند.

      کلام پایانی

      با مبحث اشاره گرها یا Pointers در زبان پاسکال (Pascal) همرااه بودیم. در بخش بعد به بررسی Records یا رکوردها می پردازیم. با آموزش زبان برنامه نویسی پاسکال (Pascal) همراه باشید.

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