تور لحظه آخری
امروز : یکشنبه ، 11 آذر 1403    احادیث و روایات:  امام صادق (ع):كمال ادب و مروت در هفت چيز است: عقل، بردبارى، صبر، ملايمت، سكوت، خوش‏اخلاقى و مدا...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ساختمان پزشکان

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

پرگابالین

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

 






آمار وبسایت

 تعداد کل بازدیدها : 1836200297




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

براي آموزش آرايه ها


واضح آرشیو وب فارسی:سایت ریسک: View Full Version : براي آموزش آرايه ها Iranian boy1026-10-2009, 11:21 PMسلام لطفاً يه چندتا مثال درمورد مرتب سازي آزايه ها ، مرتب سازي دودويي بزنيد بهمراه توضيحات لطفاً :11: فصل 2 برنامه سازي 2 ، آرايه ها هست كه من يكم در اين فصل مشكل دارم هفته بعد ميخواد استاد امتحان بگيره ممنون ميشم كمكم كنيد.:11::40::46: M i L @ D27-10-2009, 02:05 AMخب من مرتب سازی آرایه به روش صعودی که بهش حبابی و Bobble Sort هم میگن رو توضیح میدم که امیدوارم بدردتون بخوره : 5|10|2|14|12 اگه شما این اعداد بالا رو خانه های a(4) در نظر بگیرید , خانه ها ی آرایه a بصورت زیر هستند: a(0) = 12 a(1) = 14 a(2) = 2 a(3) = 10 a(4) = 5 خب برای اینکه این آرایه رو بصورت صعودی ( حبابی ، Bobble Sort ) مرتب سازی کنید کارهای زیر رو انجام بدید : مرحله 1- اولین خانه ی آرایه را با دومین خانه آن مقایسه میکنید ( ! ) الف ) اگر خانه ی آول آرایه از خانه ی دوم کوچکتر یا مساوی بود برنامه کاری انجام ندهد . ( یعنی اگه a(0) که برابر 12 هست رو با a(1) مقایسه کنیم نتیجه میگیریمa(0) < a(1) ... پس برنامه کاری انجام نمیده ) ب ) اگر خانه ی اول آرایه از خانه ی دوم بزرگتر بود جای آن ها را عوض می کنیم . ( حالا که ما فهمیدیم a(0( از a(1) کوچکتر هست پس دیگه برنامه این قسمت رو انجام نمیده و میره به مرحله دو) مرحله 2- مرحله ی یک را برای خانه های دوم و سوم تکرار می کنیم . (یعنی در این روش a(1) رو با a(2) مقایسه میکنیم که نتیجه میگیریم a(1) > a(2) هست ... پس قسمت ب انجام میشه ... یعنی a(1) جاش رو با a(2) عوض میکنه ) و برای سایر خانه ها هم به همین روش ( ! ) خب این از توضیح فارسی ... اگه بخواید کد نویسی کنید ، باید یک Command Button ایجاد کنید و کدهای زیر رو داخلش بنویسید : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! امیدوارم بدردتون خورده باشه ( ! ) VBYOFSKI27-10-2009, 01:49 PMسلام دو روش برای جستجو داریم یکی ترتیبی و اون یکی دودویی. ترتیبی: این روش خیلی راحت و کنده. باید تمام عناصر آرایه رو از اول با متغیر کلید (مورد جستجو) مقایسه کنیم هر کدوم برابر بود اون جوابه. وای خیلی کنده، مثلا توی یه لیست 1000 نفری، داده مورد نظر ما تو خونه 800 هست اینجوری باید 800 بار تکرار بشه. حالا بستش بده تو 100 هزار نفری ..... این کدش: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دودویی: این روش یکم پیچیدس ولی خیلی سریعتره و به درده آرایها و لیستهای مرتب شده میخوره. روش کلیش اینجوریه که اول باید عنصر وسط آرایه مرتب شده رو به دست بیاریم (مثلا توی یه آرایه 100 تایی میشه 50) اگه درست بود که هیچ ولی اگه نه باید ببینیم کوچیکتره یا بزرگتر. اگه بزرگتر از اون باشه باید نیمه دوم رو بگردیم (یعنی از 51 تا 100) ولی اگه کوچکتر باشه باید نیمه اول رو بگردیم (یعنی 1 تا 49). روش جستجو نیمه هاهم مثل اولیه یعنی باز باید وسطش رو به دست بیاریم ...... این توضیح کلی بود حالا کد نویسیش. ( به فرض اینکه آرایه ما مرتب شده) اول به چندتا متغیر نیاز داریم: Dim a(1 To 100) As Integer Dim Low As Integer, High As Integer, Mid As Integer Dim KEY As Integer, i As Integer Dim CNT As Byte Dim Find As Boolean آرایهa که لیستیه که توش باید جستجوکنیم. متغیر Low , High , Mid هم واسه اینه که بفهمی اول و آخر و وسط آرایه کجاست. KEY متغیریه که مورد جستجو رو نگه میداره. i اندیس حلقست. CNTیه شمارندست واسه اینکه ببینیم چندبار حلقه تکرار شده تا جواب به دست اومده. Find مشخص میکنه که به جواب رسیدیم یا نه. For i = 1 To 100 a(i) = i Next i KEY = Val(InputBox("Enter Your KEY For Find:")) تو اینجا اول با یه For آرایه رو پر کردیم. بعد با Inputbox مورد جستجو رو گرفتیم. Low = 1 High = 100 Find = False تو این مرحله باید اول و آخر آرایه رو مشخص کنیم. چون اول و آخر آرایه اینجا مشخصه و تغییر نمیکنه اعداد رو دستی وارد کردیم ولی اگه مشخص نیست میتونی از دستور زیر استفاده کنی. Low = LBound(a) High = UBound(a) Find = False Lbound و Ubound توابعی هستن که به ترتیب کوچکترین عنصر و بزرگترین عنصر آرایه رو برمیگردونن. Do While High >= Low And Find = False Mid = (High + Low) 2 If a(Mid) = KEY Then Find = True ElseIf KEY > a(Mid) Then Low = Mid + 1 Else High = Mid - 1 End If CNT = CNT + 1 Loop تمام کار جستجو تو این حلقه اتفاق میوفته. شرطی که گزاشتیم اینجوریه که اگه اوله آرایه (که ما مشخص میکنیم کجاست) ازآخر آرایه (اینم ما مشخص میکنیم) بزرگتر نبود و چیزی هم پیدا نشده بود (Find = False) به جستجو ادامه بده. تو خط اول باید وسط آرایه رو مشخص کنیم. واسه پیدا کردن وسط یه لیست که اول و آخرشو داریم از این روش استفاده میکنیم. (اینجا حتما باید از تقسیم صحیح استفاده کنیم که عددمون اعشاری در نیاد) دستور if برسی میکنه اگه داده درون عنصر وسط با KEY برابر بود که جواب پیدا شده در غیر اینصورت: اگه KEY بزرگتر بود باید نیمه دوم رو بگردیم. واسه اینکار کافیه اوله آرایه رو بیاریم جلو تر یعنی اوله آرایه باید بشه عدد 51. چون Mid وسط هست بهش یه دونه اضافه میکنیم میشه اوله آرایه. اگه KEY کوچکتر بود باید نیمه اول رو بگردیم. واسه اینکار کافیه آخر آرایه رو بیاریم عقب تر یعنی آخر آرایه باید بشه عدد 49. چون Mid وسط هست ازش یه دونه کم میکنیم میشه آخر آرایه. به CNT یکی اضافه میشه یعنی یه بار جستجو شد. حالا اگه دوباره شرط درسط بود جستجو ادامه پیدا میکنه. If Find = True Then MsgBox a(Mid) & " ---- " & CNT اینجا هم که باید نتیجه و تعدا جستجو رو اعلام کنیم اول باید ببینیم چیزی پیدا شده یا نه. چون Mid همون مکانی هست که جواب اونجاست پس داده توی همون عنصر رو نشون میدیم. تو این روش واسه پیدا کردن عدد 80 هفت بار جستجو انجام شده ولی تو روش ترتیبی باید 80 بار بگردیم و واسه 26 شش بار ولی توی ترتیبی 26 بار. امیدوارم مفید باشه. ولی اگه بازم توش گیر داشتی کنار تمام خطها توی وی بی Brek Point بزار و برنامه رو خط به خط دنبال کن ببین متغیرها چه تغیراتی میکنن راحت همه چی دستت میاد. VBYOFSKI27-10-2009, 01:53 PMسلام لطفاً يه چندتا مثال درمورد مرتب سازي آزايه ها ، مرتب سازي دودويي بزنيد بهمراه توضيحات لطفاً :11: فصل 2 برنامه سازي 2 ، آرايه ها هست كه من يكم در اين فصل مشكل دارم هفته بعد ميخواد استاد امتحان بگيره ممنون ميشم كمكم كنيد.:11::40::46: شما مرتب سازی خواستی من جستجو گفتم. :31: فکر کنم سوالتونو درست نخوندم. :5: سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1047]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن