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

تبلیغات

تبلیغات متنی

اتاق فرار

خرید ووچر پرفکت مانی

تریدینگ ویو

کاشت ابرو

لمینت دندان

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

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

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

سرور اختصاصی ایران

تور دبی

دزدگیر منزل

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

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

دانلود کتاب صوتی

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

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

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

قیمت فرش

آموزش کیک پزی در تهران

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

میز جلو مبلی

آراد برندینگ

سایبان ماشین

مبل استیل

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

کی شاپ

خرید دانه قهوه

دانلود رمان

وکیل کرج

آمپول بیوتین بپانتین

پرس برک

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

خرید تیشرت مردانه

خرید نشادر

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

وکیل تبریز

اجاره سند

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ووچر پرفکت مانی

خرید سی پی ارزان

خرید ابزار دقیق

بهترین جراح بینی خانم

تاثیر رنگ لباس بر تعاملات انسانی

خرید ریبون

ثبت نام کلاسینو

خرید نهال سیب سبز

خرید اقساطی خودرو

امداد خودرو ارومیه

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 1044]

bt

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




-


گوناگون

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


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