PDA

View Full Version : طراحی ماشین حساب فقط برای اعداد کسری



yekta64
سه شنبه 27 خرداد 1393, 21:02 عصر
سلام میخام ماشین حسابی طراحی کنم که فقط برای عملیات روی اعدا کسری استفاده بشه سوالم اینه چطور عدد کسری وارد کنم؟؟
چطور تکسباکس محدود کنم که فقط عدد کسری وارد کنه؟
چطور توابعی مثل sin,cos,tanوcot رو حساب کنم؟؟؟

مرسی

elec60
سه شنبه 27 خرداد 1393, 21:23 عصر
میتونی اعداد اعشاری مثل 1.89 وارد تکست باکس کنی و با متد Parse از تایپهای double و یا float و یا decimal اونو به نوع عددی تبدیل کنی و محاسباتتو انجام بدی.
اگه بخوای به فرمت کسری مثل 1/4 وارد کنی باید یه Parser خودت بنویسی...
در کل چرا نباید بتونه اعداد صحیح بگیره؟!

yekta64
سه شنبه 27 خرداد 1393, 21:35 عصر
ممنون از پاسختون
این پروژه است که گویا استاد اصرار بر این داشته که داده باید کسری وارد بشه
چطور یه parser خودم بنویسم میتونید راهنمایی کنید؟؟

irartesh
سه شنبه 27 خرداد 1393, 21:40 عصر
برای توابع ریاضی از کلاس Math استفاده کن.

yekta64
سه شنبه 27 خرداد 1393, 21:42 عصر
در اصل می خام کاربر رو محدود به ورود داده کسری کنم؟؟؟

alireza_s_84
سه شنبه 27 خرداد 1393, 22:04 عصر
در اصل می خام کاربر رو محدود به ورود داده کسری کنم؟؟؟
در واقع هر کسر تقسیم صورت بر مخرج هست. لذا 1/2 برابر 0.5 میشه و 2/1 برابر 2. پس شما اگر میحواین کاربر رو مجبور کنید که حتما داده ها رو به صورت کسری وارد کنه باید بعد از ورود داده وجود کارکتر / رو در اون بررسی کنید. اگر وجود نداشت یا بیشتر از یکی بود یعنی داده ی وارد شده معتبر نیست.
میتونید از متد Split استفاده کنید همیشه باید به شما یک آرایه با دو عضو بده. عضو 0 میشه صورت کسر و عضو 1 میشه مخرج کسر.
حتما چک کنید که عضو 1 برابر 0 نباشه تا خطا تقسیم بر صفر نداشته باشید. بعد اگر شرایط درست بود میتونید از طریق متد Parse رشته های این آرایه رو به float تبدیل کنید. در اینصورت میتونید راحت عملیات ریاضی رو برای داده های اعشاری انجام بدین.

elec60
چهارشنبه 28 خرداد 1393, 10:06 صبح
اگه فقط وجود / رو چك كنه باز ميشه عدد غير كسري(منظورم صحيحه) وارد كرد. مثلا 4/2 همون 2 هست.
بايد با متد Split از كلاس string آرايه بسازي و طول آرايه 2 بشه(چك كني اگه 2 نبود خطا بده و اگه 2 شد عنصر دوم 0 نباشه) و بعد عنصر اول رو تقسيم بر دوم كني و اگه عدد صحيحي شد خطا بده. عدد صحيح هم عدديه كه براكتش با خودش برابر بشه.

yekta64
چهارشنبه 28 خرداد 1393, 21:14 عصر
در واقع هر کسر تقسیم صورت بر مخرج هست. لذا 1/2 برابر 0.5 میشه و 2/1 برابر 2. پس شما اگر میحواین کاربر رو مجبور کنید که حتما داده ها رو به صورت کسری وارد کنه باید بعد از ورود داده وجود کارکتر / رو در اون بررسی کنید. اگر وجود نداشت یا بیشتر از یکی بود یعنی داده ی وارد شده معتبر نیست.
میتونید از متد Split استفاده کنید همیشه باید به شما یک آرایه با دو عضو بده. عضو 0 میشه صورت کسر و عضو 1 میشه مخرج کسر.
حتما چک کنید که عضو 1 برابر 0 نباشه تا خطا تقسیم بر صفر نداشته باشید. بعد اگر شرایط درست بود میتونید از طریق متد Parse رشته های این آرایه رو به float تبدیل کنید. در اینصورت میتونید راحت عملیات ریاضی رو برای داده های اعشاری انجام بدین.


ممنون
میتونید یه نمونه کد برام بزارید