علاقمندان به زبان های برنامه نویسی روزتون بخیر. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراهتون خواهیم بود. در این بخش با آرایه ها در زبان پاسکال (Pascal) اشنا خواهیم شد.
زبان برنامه نویسی پاسکال ساختار داده ای به نام آرایه را ارائه می دهد ، که می تواند مجموعه ای متوالی از عناصر از همان نوع ثابت را ذخیره کند. از یک آرایه برای ذخیره مجموعه ای از داده ها استفاده می شود ، اما فکر کردن در مورد یک آرایه به صورت مجموعه ای از متغیرهای نوع یکسان بسیار مفید است.
شما به جای اعلام متغیرهای فردی ، مانند شماره ۱ ، شماره ۲ ، … و شماره ۱۰۰ ، شما یک متغیر آرایه مانند numbers را اعلام می کنید و استفاده می کنید از numbers[1], numbers[2], and …, numbers[100] برای نشان دادن متغیرهای فردی. یک عنصر خاص در یک آرایه توسط یک index قابل دسترسی است.
همه آرایه ها شامل مکان های حافظه همجوار هستند. کم ترین آدرس مربوط به عنصر اول و بالاترین آدرس مربوط به عنصر آخر است.
لطفاً توجه داشته باشید که اگر می خواهید یک آرایه استایل C از index 0 شروع شود ، فقط به جای ۱ باید ایندکس را از ۰ شروع کنید.
برای اعلان آرایه در Pascal ، یک برنامه نویس می تواند type را اعلام کند و سپس متغیرهایی را برای آن ایجاد کند یا متغیر آرایه را مستقیماً اعلام کند.
فرم کلی اعلام type از آرایه یک بعدی به شکل زیر است.
1 2 | type array-identifier = array[index-type] of element-type; |
که،
array-identifier – نام آرایه type را نشان می دهد.
index-type – زیرنویس یا subscript آرایه را مشخص می کند. این می تواند هر نوع داده اسکالر type به جز واقعی (real) باشد.
element-type – انواع مقادیر ذخیره شده را مشخص می کند.
مثلا،
1 2 3 4 | type vector = array [ 1..25] of real; var velocity: vector; |
اکنون velocity یک آرایه متغیر از نوع vector است که برای نگه داشتن ۲۵ عدد واقعی کافی است.
برای شروع آرایه از ایندکس ۰ ، اعلان به شکل زیر می باشد.
1 2 3 4 | type vector = array [ 0..24] of real; var velocity: vector; |
در پاسکال ، یک array subscript می تواند از هر نوع scalar مانند ، integer ، بولین ، شمارشی یا subrange باشد ، بجز real. این Array subscript می توانند مقادیر منفی نیز داشته باشند.
مثلا،
1 2 3 4 | type temperature = array [-10 .. 50] of real; var day_temp, night_temp: temperature; |
بگذارید مثال دیگری را بنویسیم که subscript از نوع کاراکتر است.
1 2 3 4 | type ch_array = array[char] of 1..26; var alphabet: ch_array; |
subscript می تواند از نوع شمارشی باشد.
1 2 3 4 5 | type color = ( red, black, blue, silver, beige); car_color = array of [color] of boolean; var car_body: car_color; |
در Pascal ، آرایه ها از طریق اختصاص مقدار دهی می شوند یا با تعیین یک subscript خاص یا استفاده از یک حلقه for-do.
به عنوان مثال:
1 2 3 4 5 6 7 8 9 10 11 | type ch_array = array[char] of 1..26; var alphabet: ch_array; c: char; begin ... for c:= 'A' to 'Z' do alphabet[c] := ord[m]; (* the ord() function returns the ordinal values *) |
با فهرست کردن نام آرایه به یک عنصر دسترسی پیدا می کنید. این کار با قرار دادن ایندکس عنصر در داخل براکت ها بعد از نام آرایه انجام می شود. به عنوان مثال:
1 2 | a: integer; a: = alphabet['A']; |
عبارت بالا اولین عنصر را از آرایه به نام alphabet گرفته و مقدار را به متغیر a اختصاص می دهد.
در زیر مثالی وجود دارد که از تمام سه مفهوم فوق استفاده خواهد شد. اعلان ها ، اختصاص دادن و دسترسی به آرایه ها
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | program exArrays; var n: array [1..10] of integer; (* n is an array of 10 integers *) i, j: integer; begin (* initialize elements of array n to 0 *) for i := 1 to 10 do n[ i ] := i + 100; (* set element at location i to i + 100 *) (* output each array element's value *) for j:= 1 to 10 do writeln('Element[', j, '] = ', n[j] ); end. |
هنگامی که کد فوق کامپایل و اجرا شد ، نتیجه زیر را ایجاد می کند.
1 2 3 4 5 6 7 8 9 10 | Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109 Element[10] = 110 |
آرایه ها برای پاسکال مهم هستند و به جزئیات بیش تری نیاز دارند. چند مفهوم مهم در رابطه با آرایه ها وجود دارد که باید برای یک برنامه نویس پاسکال واضح باشد.
ردیف | مفهوم و توضیحات |
---|---|
۱ | Multi-dimensional arrays (آرایه های چند بعدی) پاسکال از آرایه های چند بعدی پشتیبانی می کند. ساده ترین شکل آرایه چند بعدی آرایه دو بعدی است. |
۲ | Dynamic array (آرایه داینامیک) در این نوع آرایه ها ، طول اولیه صفر است. طول واقعی آرایه باید با تابع استاندارد SetL طول تنظیم شود.
|
۳ | Packed array این آرایه ها bit-packed هستند ، یعنی هر مقدار کاراکتر یا حقیقی به جای استفاده از یک واحد ذخیره سازی ، در بایت های متوالی، معمولاً یک کلمه (۴ بایت یا بیش تر) ذخیره می شوند. |
۴ | Passing arrays to subprograms با مشخص کردن نام آرایه بدون ایندکس، می توانید به یک زیر برنامه اشاره گر برای آرایه منتقل کنید. |
در این بخش از آموزش، با آرایه ها در زبان پاسکال (Pascal) آشنا شدیم. در بخش بعد به بررسی Pointers یا اشاره گرها می پردازیم. با آموزش زبان برنامه نویسی پاسکال (Pascal) همراه باشید.