PDA

View Full Version : سوال: شبیه سازی آسانسور



elahe_eli
جمعه 24 اردیبهشت 1389, 16:09 عصر
سلام . من می خوام آسانسور را با استفاده از صف شبیه سازی کنم اما دقیقا نمی دونم باید چه کار کنم . برای کمتر از 5 طبقه می خوام . کسی قبلا این برنامه رو نوشته یا جایی دیده . می شه دوستان حرفه ای یه کمکی بکنن؟:لبخندساده:

saber187518
جمعه 24 اردیبهشت 1389, 18:45 عصر
با سلام دوست عزیز
پیاده سازی آسانسور با صف نمیدونم درسته یا نه. اما فکر نمیکنم که درست باشه.
چون طبق تعریف صف کسی که زودتر وارد بشه زودتر نوبتش میشه. اما شما توی آسانسور چنین چیزی نیست. شما اگه طبقه 2 باشید و طبقه 4 کسی سرویس بخواد و بعد درخواست طبقه 4 کسی در طبقه 3 هم سرویس بخواد اول به 3 سرویس میده و بعد به 4.
فکر کنم که به نزدیکترین فرد طرویس باید بدهی اما با یک سری شروط.
به نظرم باید مبنای برنامه رو بر روی صف نذاری.
موفق باشی.

elahe_eli
شنبه 25 اردیبهشت 1389, 13:47 عصر
این که کاملا مثل آسانسود نمی شه ، قبول دارم ولی این عین سوال بود ، منم چون دیدم مثل آسانسور نمی شه قاطی کردم . :عصبانی++:
کسی کمک بیشتری نمی کنه؟

saber187518
یک شنبه 26 اردیبهشت 1389, 00:07 صبح
با این تفاسیر فکر کنم به ازای هر بار ورود یک عنصر به صف ، شما باید اون عنصر رو با توجه به نوبت سرویس دهی توی صف درج کنی.
مثلا صف شما متشکل از اعداد زیر هست.

4 2 1
بعد عدد 3 وارد میشه شما نباید اون رو اخر صف درج کنی ، بلکه باید اون رو بین 2 و 4 قرار بدی.

4 3 2 1
فکر کنم اینطوری بشه.
البته اینطوری هم که بشه کلا صف به هم خوردست.

elahe_eli
یک شنبه 26 اردیبهشت 1389, 08:16 صبح
ممنون از کمکت . خیلی سخته :عصبانی++:

developing
چهارشنبه 29 اردیبهشت 1389, 12:54 عصر
با سلام.

این برنامه که شما می خواهید بنویسید یک برنامه‎ی صف اولویت هست که توی کتاب سیستم‎های عامل ( نوشته ویلیام استالینگز -- ترجمه: دکتر پدرام و دکتر صدیقی از انتشارات شیخ بهایی فصل 9 زمانبندی تک پردازنده‎ای و به طور خاص صفحه 423) می‎تونید اون رو پیدا کنید.

البته این برنامه بیشتر صف دو طرفه حساب می شود.

مثلا اگر آسانسور در طبقه 5 باشد و درخواستی از طبقه 8 به آن داده شود در بین راه درخواستی از طبقه 7 داده شود آسانسور در طبقه 7 توقف دارد و بعد به طبقه هشتم می‎رود. در این بین درخواستی از طبقه 2 به آن داده می شود اگر آسانسور به طرف پایین حرکت نکرده باشد و درخواستی از طبقه 9 به آن داده شود آسانسور ابتدا باید به طبقه 9 برود سپس به طبقه 2.

چگونگی بدست آوردن اولویت:

شما اولویت برای طبقات را تفریق طبقه‎ی فعلی بر طبقه‎ی مقصد قرار می دهید.

در این صورت اعداد به دو دسته‎ی مثبت و منفی تقسیم می‎شوند.

دراین صورت سرویس دهی به شرح زیر باید انجام گیرد:

اگر آسانسور در حال حرکت باشد اولویت با اعداد هم علامت و به ترتیب از کمتر به بیشتر.
اگر آسانسور ثابت باشد اولویت برای عدد کمتر از لحاظ قدر مطلق.

امیدوارم راهنمایی شده باشید.:لبخندساده::لبخندساده :