سلام
دستور option base و redim مرتب سازي تعويضي و انتخابي هر كدومو اگه
ممكنه با توضيح كامل لطف كنيد بگيد با چند تا مثال سورس كه اين برنامه ها توش باشن
سلام
دستور option base و redim مرتب سازي تعويضي و انتخابي هر كدومو اگه
ممكنه با توضيح كامل لطف كنيد بگيد با چند تا مثال سورس كه اين برنامه ها توش باشن
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
مرتب سازي يعني جابه جايي عناصر آرايه به طوريكه در انتهاي آرايه عناصر به صورت صعودي يا نزولي مرتب شده باشن.
چندين روش مرتب سازي در آرايه وجود داره كه شما دوتاشو پرسيدين.
- مرتب سازي تعويضي يا Bobble Sort
- مرتب سازي انتخابي Selection
مرتب سازي تعويضي يا حبابي Bobble Sort:
در Bobble Sort تمامي عناصر آرايه باهم مقايسه ميشن و در صورت نياز باهم جابه جا ميشن و اين عمليات اينقدر تكرار ميشه تا آرايه به صورت صعودي يا نزولي مرتب بشه.
مرتب سازي انتخابي Selection:تو اين مرتب سازي تويه هر مرحله(گذرها) يكي از عناصر آرايه انتخاب ميشه و بعد مقايسه ميشه و بعد در جايه اصلي خودش قرار ميگيره.
نكته مشترك در كد اين دو روش مرتب سازي اين هستش كه بايد از حلقه هاي تودرتو و شرط استفاده بشه. من اينطوري ياد گرفتم و تجربه كم من اين رو مي گه كه اگر:
يعني براي حبابي:
- اگر دو حلقه پشت سر هم بلافاصله بعد از يكديگه قرار گرفته باشن و بعدش شرط حلقه باشه مرتب سازي حبابي هست.
- اگر مابين دو حلقه دستوري جهت يافتن محل شروع مقايسه باشه مرتب سازي انتخابي هستش.
For i = .....
For j = .....
If .......
و براي انتخابي:
For i = ....
دستور
For j = ......
If .....
آخرین ویرایش به وسیله اوبالیت به بو : دوشنبه 06 خرداد 1387 در 16:10 عصر
https://barnamenevis.org/showthread.php?t=87792
در اين تايپيك روش مرتب سازي Bobble Sort توضيح داده شده