PDA

View Full Version : سی شارپ و آسانسور



mirage041
چهارشنبه 10 تیر 1388, 20:56 عصر
با سی شارپ چطوری می شه کار یک آسانسور رو شبیه سازی کرد.
مثلابا یک باتوم

احمد سامعی
چهارشنبه 10 تیر 1388, 21:47 عصر
دوست عزيز سوالت اصلا مفهوم نيست !؟؟

vandermond
چهارشنبه 10 تیر 1388, 22:14 عصر
اگه منظور شما اين هستش كه يك Button به عنوان آسانسور باشه و بالا و پايين بره (به واسطه ديگر پارامترها و ...) بله اين كار به راحتي ميشه. با استفاده از Height و Width اون Button ميشه.
اگه سوالتون چيز ديگه اي هستش لطفا كاملتر بگيد تا اگه تونستم كمكتون كنم.

mirage041
پنج شنبه 11 تیر 1388, 11:03 صبح
بله درسته یک باتون کار آسانسور رو بکونه و چند تا طبقه داشته باشیم که با انتخاب کاربر بالا و پایین بره
تو تعریف طبقات و بالا و پایین کار کنه

vandermond
پنج شنبه 11 تیر 1388, 11:29 صبح
خب اينكه كاري نداره.
شما ميتونيد بگيد مثلا وقتي كاربر كليد جهتي بالا رو زد ، BtnAsansor.Top-=10 كه اين 10 پيكسل ميبردش بالا(البته ناگهاني). اگه ميخوايد كه كند تر بره ميتونيد for بزاريد و ... (حتي ميتونيد شتاب و .. رو هم حساب كنيد و وارد كنيد)
اگه هنوز هم كامل متوجه نشديد و كد ميخوايد بگيد كه بزارم.

newgoldenman
پنج شنبه 11 تیر 1388, 11:48 صبح
پاسخ دوست عزیزمون vandermond (http://barnamenevis.org/forum/member.php?u=71531) كاملاً صحیح هست.

ولی اگر دقیق بخواهید این كار رو انجام بدین، شبیه سازی چیز دیگه ای هست.
شما باید بری 4 طبقه ای كه داری، مثلاً 4 تا دكمه در نظر بگیری. آسانسورت هم مثلاً یه دكمه ی دیگه!
حالا اصل ماجر اینجاست كه اگر آسانسور طبقه ی اول هست، و از طبقه ی چهارم دكمه زده میشه، باید شروع كنه به بالا رفتن. درسته؟ ولی اگر در حین رسیدن آسانسور به طبقه ی چهارم، از طبقه ی دوم یا سوم هم همین درخواست صادر شد، اول باید وسط راه، توی طبقه های دوم و سوم هم ایست كنه، مسافرانش رو سوار كنه.... سپس به درخواست طبقه ی چهارم رسیدگی كنه.
بنابراین پیشنهاد میشه كه از كلاس های مجموعه ای، مثل Queue و Stack بنا بر الگوریتمی كه بكار خواهی برد، و نیاز مسئله استفاده كنی.

موفق باشی

mirage041
پنج شنبه 11 تیر 1388, 13:39 عصر
درسته یعنی یک چیز درست مثل آسانسور خدومون
یعنی کاربر یک دکمه رو بزنه آسانسور بیاد به طبقه کاربر و بین راهم که اگه درخواستی بود پاسخ بده
با کد باشه که بهتره البته نه کاملش که کپی و پستش کنم

newgoldenman
پنج شنبه 11 تیر 1388, 15:39 عصر
درسته یعنی یک چیز درست مثل آسانسور خدومون
یعنی کاربر یک دکمه رو بزنه آسانسور بیاد به طبقه کاربر و بین راهم که اگه درخواستی بود پاسخ بده
با کد باشه که بهتره البته نه کاملش که کپی و پستش کنم

جان؟! :لبخند: خودتون بنویسید خوب. كاری نداره كه. اگه توضیحاتم ناكافی بود باز بیشتر بگم.

vandermond
پنج شنبه 11 تیر 1388, 15:48 عصر
ببخشيد من طرز كار آسانسور رو دقيقا نميدونم:خجالت:. اگه از پايين به بالا در حال حركت هست و الان طبقه 3 هست. يك درخواست سوار شدن از طبقه 5 داره و يك درخواست پياده شدن از طبقه 2. كدوم رو انجام ميده؟
اصلا براش دستور سوار شدن با پياده شدن فرق ميكنه يا نه؟
فكر ميكنم در همون مسيري كه حركت ميكنه (پايين به بالا يا برعكس) تا وقتي درخواستي باشه كه اون راهش رو ادامه بده، اون دستور رو انجام ميده (تو مثال بالا ميره 5) آيا اين درسته؟
من با اين پيش فرض ها (اگه غلطه بگيد) سعي ميكنم يك كد ساده براتون بفرستم.
فعلا...

mirage041
پنج شنبه 11 تیر 1388, 17:47 عصر
خوب درسته
منم فکر می کنم به این نتایج می رسم بعد می مونم
فکر کنم باید یک کد ساده بنویسم که فقط بره بالا و پایین بعد کاملش کنم

vandermond
پنج شنبه 11 تیر 1388, 20:22 عصر
اصلا اين از اصول برنامه نويسي هستش كه شما اول يك كد ساده مينويسي. بعد اگر جايي نياز داري كه كار خاصي اون بين انجام بشه يه اسم مناسب براش انتخاب ميكني و بعد اون چيزايي كه ميخواي اون جا انجام بشه رو بصورت يك متد با اون اسم انجام ميدي.
تو اين برنامه مثلا ميشه اينجوري بگي: يه كد مينويسي و ميگي اگه يك طبقه رو انتخاب كرد متد Go رو فراخواني كن. حالا براي Go ميگي اگه GoUpPrompt=true و GoNow=Up متد GoUp رو فراخواني كن(و حالتهاي ديگه رو هم ميگي). حالا ميگي اگه يه طبقه كه از Location آسانسور بالاتر هست رو انتخاب كرده بود، GoUpPrompt رو مساوي true بزار. حالا Location رو تعريف ميكني و.... .
اين روش (از كل به جز) براي من كه خيلي مفيد هست و براي الگوريتم هاي خصوصا محاسباتي از اين روش استفاده ميكنم. (نظر دوستان در اين باره ممكنه چيز ديگه اي باشه كه من هم استقبال ميكنم).
من با همين روش اگه شد (وقت كم دارم و كار زياد) امشب يه برنامه (اين دفعه سعي ميكنم اگه شد با اين روش كامل بنويسمش) براتون بزارم. ولي باز هم ميگم قول نميدم ها!!.
خودتون هم ميتونيد بنويسيد و من پيشنهاد ميكنم كه اين كار رو خودتون بكنيد ولي من هم اگه بتونم كمكتون ميكنم.
فعلا...

mirage041
جمعه 12 تیر 1388, 10:19 صبح
جالب فکر کنم باید یک سرم به این آسانسوریا بزنم کمکم کنن تو حل مسئله
( مثلا اگه یکی تو طبقه اول سوار بشه بخواد بره طبقه 4 . یکی تو طبقه دوم سوار بشه و بخواد برگرده طبقه اول کدومش باید اجرا بشه؟؟؟؟)

vandermond
جمعه 12 تیر 1388, 10:40 صبح
من هم يك همچين سوالي از شما پرسيدم. ولي فكر ميكنم تا جايي كه در مسيرش (الان كه ميره بالا) كسي درخواست بده (يعني كسي كه الان درخواست ميده از طبقه بالاتر باشه) اول ميره درخواست اون بنده خدا رو جواب ميده. يعني فقط جايي كه مجبور بشه مسيرش با بالا(يا پايين) رو برعكس ميكنه. در اينجا فكر ميكنم ميره طبقه 4.
ببخشيد كه كد كامل رو نتونستم بزارم. گفتم كه وقت كم است و كار زياد. اميدوارم وقت بشه و سريعتر اونو هم بنويسم.
فعلا...