View Full Version : سوال: دستور option base و redim
Pokahantes
دوشنبه 06 خرداد 1387, 11:04 صبح
سلام
دستور option base و redim مرتب سازي تعويضي و انتخابي هر كدومو اگه
ممكنه با توضيح كامل لطف كنيد بگيد با چند تا مثال سورس كه اين برنامه ها توش باشن
اوبالیت به بو
دوشنبه 06 خرداد 1387, 14:00 عصر
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
اوبالیت به بو
دوشنبه 06 خرداد 1387, 15:40 عصر
مرتب سازي يعني جابه جايي عناصر آرايه به طوريكه در انتهاي آرايه عناصر به صورت صعودي يا نزولي مرتب شده باشن.
چندين روش مرتب سازي در آرايه وجود داره كه شما دوتاشو پرسيدين.
مرتب سازي تعويضي يا Bobble Sort
مرتب سازي انتخابي Selection
مرتب سازي تعويضي يا حبابي Bobble Sort:
در Bobble Sort تمامي عناصر آرايه باهم مقايسه ميشن و در صورت نياز باهم جابه جا ميشن و اين عمليات اينقدر تكرار ميشه تا آرايه به صورت صعودي يا نزولي مرتب بشه.
مرتب سازي انتخابي Selection:
تو اين مرتب سازي تويه هر مرحله(گذرها) يكي از عناصر آرايه انتخاب ميشه و بعد مقايسه ميشه و بعد در جايه اصلي خودش قرار ميگيره.
نكته مشترك در كد اين دو روش مرتب سازي اين هستش كه بايد از حلقه هاي تودرتو و شرط استفاده بشه. من اينطوري ياد گرفتم و تجربه كم من اين رو مي گه كه اگر:
اگر دو حلقه پشت سر هم بلافاصله بعد از يكديگه قرار گرفته باشن و بعدش شرط حلقه باشه مرتب سازي حبابي هست.
اگر مابين دو حلقه دستوري جهت يافتن محل شروع مقايسه باشه مرتب سازي انتخابي هستش.
يعني براي حبابي:
For i = .....
For j = .....
If .......
و براي انتخابي:
For i = ....
دستور
For j = ......
If .....
اوبالیت به بو
سه شنبه 07 خرداد 1387, 13:32 عصر
http://barnamenevis.org/forum/showthread.php?t=87792
در اين تايپيك روش مرتب سازي Bobble Sort توضيح داده شده
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.