View Full Version : پیشنهاد حل مسئله با تعداد ثابت حالت
ali_72
شنبه 10 مرداد 1394, 11:39 صبح
سلام
می خوتم یه اپلیکیشن تبدیل واحد بسازم
کل حالت هایی که من دارم حدود 1000 تاست
من میتونم از آرایه استفاده کنم و 16 تا ارایه 60 تایی بسازم و با توجه به ورودی کاربر از این آرایه ها استفاده کنم و خروجی بگیرم
ولیبه نظرم روش بهینه ای نیست
برای چنین برنامه ای چه روشی پیشنهاد می کنید؟
Mohadi
شنبه 10 مرداد 1394, 21:08 عصر
سلام لطفا صورت مسئله ارو بیشتر توضیح بدید.
میخواید از کاربر یک ورودی رو بگیرید و به 1000 واحد متخلف دیگه تبدیلش کنید و همه ارو توی اکتیویتیتون نشون بدید یا ...؟
ali_72
یک شنبه 11 مرداد 1394, 07:22 صبح
سلام لطفا صورت مسئله ارو بیشتر توضیح بدید.
میخواید از کاربر یک ورودی رو بگیرید و به 1000 واحد متخلف دیگه تبدیلش کنید و همه ارو توی اکتیویتیتون نشون بدید یا ...؟
سلام
یه مثال کوچیک میزنم
واحد5
واحد4
واحد3
واحد2
واحد1
50
400
105
200
100
55
61
50
200
من از کاربر یک عدد میگیرم (مثلا 200) و اون میتونه تعیین کنه که از یه واحد به واحد دیگه تبدیل شه که این واحدها حدود 20 تاست (مثلا از واحد 1 به واحد5)
در این صورت باید کاربر در خروجی عدد 55 رو ببینه و در صورتیکه همین عدد رو مثلا از واحد 1 به واحد 4 خواست تبدیل کنه خروجی تعریف نشده داره یا اگه 200 در ستون واحد 1 اصلا وجود نداشته باشه هم پیغام تعریف نشده به کاربر نمایش میده
من یه جدول ثابتی مثل ایتکه برای شما کشیدم دارم که شامل 20 ستون و 70 سطر هست (1000 که گفتم مثال بود) میخوام اپلیکیشنی براش بنویسم که همش سرم تو این جدول نباشه :لبخند:
بهترین روش برای پیاده سازی این پروژه چیه؟
ممنون
Mohadi
یک شنبه 11 مرداد 1394, 14:51 عصر
خب اگر درست متوجه شده باشم باید کار ساده ای باشه, یک EditText و یک spinner و یک TextView و همراه یک دکمه کفایت میکنه.
توی ادیت تکست که کاربر عدد رو وارد میکنه, از طریق spinner تعیین میکنه به کدام مقیاس یا واحد میخواد تبدیل بشه و توی تکست ویو هم نمیاش میده میزان جدیدش رو (یک onClickListener برای دکمه مینویسی هروقت کلیک شد تابع اجرایی مربوط به اون سطر اسپینر رو میگیره , عدد ورودی از ادیت تکست رو هم میگیره محاسبه میکنه توی تکست ویو نمایش میده.
هر کدوم از سطر های اسپینر شامل تابع تبدیل هر کدوم از واحد هات میشن.
میتونی alertDialog هم استفاده کنی, دکمه که کلیک شد دیالوگ باز میشه یکی از مقیاس هات رو انتخاب میکنی (که واسه هرکدوم تابع تبدیل مورد نظرش رو نوشتی) کارو انجام میده و توی تکست ویوت نتیجه ارو نمایش میده.
امیدوارم تونسته باشم کمکت کنم.
ali_72
دوشنبه 12 مرداد 1394, 07:06 صبح
ممنون دوست عزیز تمام مواردی که گفتی رو انجام دادم
می خوام بهترین
تابع تبدیل مورد نظر رو بنویسم
میشه با یه تکه کد راهنمایی کنید یا بفرمائید که چه روشی استفاده کنم
مثلا من یک آرایه 2 بعدی 70*20 تعریف کردم و با توجه به ایندکس واحد انتخاب شده نتیجه رو به کاربر نمایش میدم
ولی آرایه حافظه مصرف میکنه و تعریف چنین آرایه بزرگی کار درستی هست؟
استفاده از آرایه بهترین روش حل این مسئله ست؟
moham mad
دوشنبه 12 مرداد 1394, 13:52 عصر
اگه شما 20 واحد دارید میتونید یه آرایه ی 20 عضوی تعریف کنید
که هر عضو، مقدار مقابل رو نگه میداره : ((واحد مورد نظر چند برابر واحد x هست... که x یکی از واحد هاست))
بعد، عدد وارد شده توسط کاربر رو تقسیم بر عدد مربوط به واخد اول و ضربدر عدد مربوط به واخد دوم کنید تا مقدار خروجی به دست بیاد
ali_72
دوشنبه 12 مرداد 1394, 14:16 عصر
اگه شما 20 واحد دارید میتونید یه آرایه ی 20 عضوی تعریف کنید
که هر عضو، مقدار مقابل رو نگه میداره : ((واحد مورد نظر چند برابر واحد x هست... که x یکی از واحد هاست))
بعد، عدد وارد شده توسط کاربر رو تقسیم بر عدد مربوط به واخد اول و ضربدر عدد مربوط به واخد دوم کنید تا مقدار خروجی به دست بیاد
ارتباط منطقی بین واحد ها وجود نداره (نمیشه گفتن واحد دومی رو مثلا میشه با استفاده از یک فرمول به واحد اول تبدیل کرد یا برعکس)
debugger
سه شنبه 13 مرداد 1394, 19:25 عصر
یک LookUp Table بسیار ساده هست . شما می تونی هر واحد را به صورت Array تعریف کنی و ایندکس های دو تا Array را با هم مقایسه کنی . همین و بس
ali_72
چهارشنبه 14 مرداد 1394, 08:19 صبح
یک LookUp Table بسیار ساده هست . شما می تونی هر واحد را به صورت Array تعریف کنی و ایندکس های دو تا Array را با هم مقایسه کنی . همین و بس
منم یه آرایه 2 بعدی تعریف کردم
پس استفاده از آرایه بهترین روشه؟
با توجه به تعداد زیاد ایتم این آرایه خیلی بزرگ شد
debugger
پنج شنبه 15 مرداد 1394, 12:07 عصر
ارایه سریعترین روش هست . البته فکر نکنم برات مشکلی پیش بیاد . شما ارایه ای کار کن
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.