نمایش نتایج 1 تا 7 از 7

نام تاپیک: درخواست توضیح در مورد Floor

  1. #1

    درخواست توضیح در مورد Floor

    سلام
    مساله ای هست که من اصلا نمیفهمم منظور چیست
    متد Math.Floor را میتوان برای گرد کردن عددی تا تعداد مشخصی رقم اعشار به کار برد.
    دستور:
    y=Math.Floor(x*10+.0.5)/10

    مقدار موجود در متغیر x را تا رقم یک دهم (اولین رقم در سمت راست ممیز) گرد میکند .
    یا دستور:
    y=Math.Floor(x*100+.0.5)/100

    مقدار موجود در متغیر x را تا رقم اعشار یک صدم (دومین رقم در سمت راست ممیز) گرد میکند.

    خواستم بدانم این که جمع میزنه با عدد 0.5 چرا؟ و چرا ضرب میکنه بعد جمع بعد تقسیم>؟

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1392
    محل زندگی
    تهران
    پست
    49

    نقل قول: درخواست توضیح در مورد Floor

    به خاطر تقدم عملگرهاست.
    یعنی اول عبارت داخل پرانتز حساب میشه ( اگر چند تا پرانتز تو در تو داشته باشیم ابتدا عبارت پرانتز داخلی تر ارزیابی می شود ولی اگر چند تا پرانتز در یک سطح باشند به ترتیب از چپ به راست ارزیابی می شوند)
    بعد از پرانتز * و / و % ارزیابی میشوند ( اگر چند تا از این اعمال داشته باشیم به ترتیب از چپ به راست ارزیابی می شوند)
    و سپس + یا - ارزیابی می شوند ( اگر چند تا از این اعمال داشته باشیم به ترتیب از چپ به راست ارزیابی می شوند)
    در این مثال نیز اول عبارت داخل تابع محاسبه میشود سپس عدد محاسبه شده به تابع فرستاده میشود و عدد برگشت داده شده از تابع تقسیم میشود.

  3. #3

    نقل قول: درخواست توضیح در مورد Floor

    نقل قول نوشته شده توسط pooyan.a مشاهده تاپیک
    به خاطر تقدم عملگرهاست.
    یعنی اول عبارت داخل پرانتز حساب میشه ( اگر چند تا پرانتز تو در تو داشته باشیم ابتدا عبارت پرانتز داخلی تر ارزیابی می شود ولی اگر چند تا پرانتز در یک سطح باشند به ترتیب از چپ به راست ارزیابی می شوند)
    بعد از پرانتز * و / و % ارزیابی میشوند ( اگر چند تا از این اعمال داشته باشیم به ترتیب از چپ به راست ارزیابی می شوند)
    و سپس + یا - ارزیابی می شوند ( اگر چند تا از این اعمال داشته باشیم به ترتیب از چپ به راست ارزیابی می شوند)
    در این مثال نیز اول عبارت داخل تابع محاسبه میشود سپس عدد محاسبه شده به تابع فرستاده میشود و عدد برگشت داده شده از تابع تقسیم میشود.
    سلام
    بله حق با شماست
    اما خوب چرا اول میاد ضرب میکنه در 10 بعد جمع میکنه با 0.5 بعد تابع جوابش برگشت داد دوباره تقسیم به 10 میکنه

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1392
    محل زندگی
    تهران
    پست
    49

    نقل قول: درخواست توضیح در مورد Floor

    به خاطر تقدم عملگرهاست. به طور پیش فرض زبان های برنامه نویسی عملیات را طبق اولویتی که در بالا نوشتم انجام میدن.
    ببینید در دستور باید یک عدد را بر 10 یا 100 تقسیم کند ولی معلوم نیست چ عددیه، پس اول میاد تابع رو فراخوانی میکنه تا یه عدد به دست بیاد برای تقسیم.
    تابع نیز یک عدد دریافت میکند برای پردازش، پس ابتدا میاد عملیات داخل پرانتز را انجام میدهد تا یه عدد به دست بیاره.
    برای به دست آوردن عددی که میخواد به تابع بفرسته باید عملیات رو پردازش کنه و طبق پیش فرض اول میاد عمل ضرب رو انجام میده و سپس عمل جمع(زیرا عمل ضرب تقدم بیشتری نسبت به جمع داره)
    سپس عدد به دست اومده رو به تابع میفرسته و تابع نیز یک عدد برمیگردونه سپس این عدد تقسیم بر 10 میشه.
    امیدوارم خوب توضیح داده باشم
    نه تنها در برنامه نویسی بلکه در ریاضی هم این تقدم برقرار است و کاریش نمیشه کرد مگه اینکه به ترتیب عملیاتی که خودتون میخواهید رو جدا جدا بنویسید

  5. #5

    نقل قول: درخواست توضیح در مورد Floor

    نقل قول نوشته شده توسط irpersian20 مشاهده تاپیک
    سلام
    بله حق با شماست
    اما خوب چرا اول میاد ضرب میکنه در 10 بعد جمع میکنه با 0.5 بعد تابع جوابش برگشت داد دوباره تقسیم به 10 میکنه
    تمرین دانشچوییه؟!

    در هر صورت روی کاغذ برای یک عدد این کارها رو انجام بده متوجه میشی.
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 29 مرداد 1392 در 11:16 صبح

  6. #6

    نقل قول: درخواست توضیح در مورد Floor

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    تمرین دانشچوییه؟!

    در هر صورت روی کاغذ برای یک عدد این کارها رو انجام بده متوجه میشی.
    سلام
    داداش همه جا این موقع سال تعطیل هست.نه والا خودم دارم میخونم

  7. #7

    نقل قول: درخواست توضیح در مورد Floor

    والا بستگی داره داشنجوی چه دانشگاهی باشی.


    اگر داری یاد میگیری توی همین کلاس Math متد Round هست میتونی استفاده کنی. پارامتر دوم تعداد رقم اعشار هست
    Math.Round(x , 1)




    اگر هم میخوای بفهمی کد خودت چه کار میکنه:
    برای گرد کردن تا یک رقم اعشار ، رقم دوم اعشار مهمه(تا هر رقمی بخواهی گرد کنی رقم اعشار بعدی مهمه). اگر رقم دوم اعشار بزرگتر مساوی 5 باشه باید به رقم اول اعشار یکی اضافه کنید وگرنه نیاز نیست . سپس از رقم دوم اعشار به بعد رو باید حذف کنید.

    1- چون برای از بین بردن ارقام اعشار بدون اهمیت از Floor استفاده خواهد شد و این متد فقط قسمت صحیح عدد رو برمیگردونه ، باید کل ارقام مورد نیاز رو به سمت چپ ممیز منتقل کنید که با ضرب در 10 انجام میشه.
    2- حالا رقم دوم اعشار تبدیل شده به رقم اول اعشار. حالا عدد 5 رو باید به این رقم اعشار اضافه کنید یعنی 0.5 رو به کل عدد اضافه کنید. با این کار اگر این رقم بزرگتر مساوی 5 باشه یک واحد به قسمت صحیح اضافه میشه و اگر رقم اعشار کوچکتر از 5 باشه با اضافه کردن 5 به این رقم اعشار تغییری در رقم ماقبل بوجود نمیاد.
    3- حالا با متد Floor ارقام اعشار بدون نیاز رو حذف میکنه.
    4- از اونجایی که با ضرب در ضریب(10) ارقام اعشار به رقم صحیح تبدیل شدند باید حاصل بر همون ضریب تقسیم بشه تا ارقام اعشار مورد نیاز بدست بیان.

    مثال به ترتیب اجرای الگوریتم; گردکردن تا یک رقم اعشار:

    2.15

    1-
    2.15 * 10 = 21.5

    2-
    21.5 + 0.5 = 22.0

    3- حذف ارقام بدون اهمیت
    22

    4-
    22 / 10 = 2.2

تاپیک های مشابه

  1. سوال: درخواست توضیح در مورد متد سازنده cctor در دات نت
    نوشته شده توسط CYCLOPS در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 4
    آخرین پست: شنبه 13 شهریور 1389, 10:47 صبح
  2. درخواست توضیح در مورد این کد
    نوشته شده توسط 1485159 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 5
    آخرین پست: چهارشنبه 12 خرداد 1389, 12:51 عصر
  3. درخواست توضیح در مورد چند اصطلاح
    نوشته شده توسط shekoofeh در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: شنبه 04 آبان 1387, 20:56 عصر
  4. درخواست توضیح در مورد یک عبارت
    نوشته شده توسط kavehYn در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 21 مهر 1386, 22:55 عصر
  5. درخواست توضیح در مورد route print
    نوشته شده توسط SRG در بخش شبکه و Networking‌
    پاسخ: 4
    آخرین پست: پنج شنبه 05 آذر 1383, 14:01 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •