Option Base
Dim MArray(9) As Integer

كد بالا يه آرايه مي سازه با 10 خانه. يعني از خونه شماره صفرم شروع مي شه تا خونه شماره 9 كه ميشه 10 تا خونه.
اگر دقت كرده باشي من كلمه صفرم رو متمايزش كردم. چرا ميشه 10 تا خونه؟ چون خونه صفرم هم محاسبه ميشه. آخرين خونه آرايه خونه شماره 9 هستش ولي در مجموع آرايه 10 تا خونه داره. خوب اينجوري يه خورده آدم اگر به آرايه ها مسلط نباشه دچار سردرگمي ميشه. براي همين ميان يه دستوري مي نويسن كه اين دستور خونه هاي آرايه رو از خونه شماره ي اول شروع مي كنه شمردن. براي همين از دستور Option Base 1 استفاده مي كنن. به دستور Option Base 1 دقت كن ببين چي مفهمي.
Option Base 1
Dim MArray (9) As Integer

كد بالا مياد مي گه اولين خونه اي كه براي آرايمون از حافظه اصلي بايد اشغال بكني خونه شماره 1 هستش. پس اگه همينجوري سرانگشتي خونه هاي آرايه رو بشماري ميشه 9 تا خونه. يعني از 1 تا 9.
-------------------------------------------------------------------------
Redim
بعضي وقتها شما مي خواي تو آرايتون ابعادش رو عوض كني يا تعداد خونه هاش رو از قبل نمي دوني و مي خواي در طول برنامه تغيير كنه. از دستور Redim استفاده مي كني.
مثلاً آرايه MArray شما نمي دوني چند تا خونه داره مياي به اين صورت تعريفش مي كني:
Dim MArray () As Integer

*نكته: اگر بخواي از دستور Redim استفاده كني حتماً بايد آرايت رو از اول اينجوري تعريف كني. اينو يادت باشه.
حالا در طول برنامه ممكنه به آرايه بگي كه چند تا خونه داشته باشه:
Redim MArray (5) As Integer

*دوباره نكته: وقتي كه از دستور بالا استفاده مي كني تمامي مقاديري كه تويه آرايت داشتي از بين ميره يعني اگر خانه 3 آرايت مقدار 120 رو در خودش ذخيره كرده بود مقدارش صفر ميشه.
اگر مي خواي مقادير آرايت حفظ بشه بايد از كلمه كليدي Preserve استفاده كني. اون موقع هم آرايت رو تغيير بعد دادي هم مقاديرش رو حففظ كردي.
Redim Preserve MArray (10) As Integer

سوال كنكور كارداني كامپيوتر سال 86:
خروجي برنامه زير چيست؟
Dim A() As Integer
Redim A(10) As Integer
A(2) = 3
A(4) = 5
Redim Preserve A(3)
Redim Preserve A(10)
Print A(2) , A (4)

جواب: 0 3