کلاس Math
در سی شارپ، از کلاس Math برای انجام محاسبات ریاضی استفاده میشود. از این کلاس میتوان برای گرد کردن اعداد، گرفتن جذر یا نتیجه توان یک عدد استفاده کرد. این کلاس یک کلاس استاتیک است و شما نمیتوانید از آن نمونه ایجاد کرده و از متدهای آن استفاده نمایید. در جدول زیر لیست برخی از متدهای پر کاربرد این کلاس آمده است :
متد | توضیح | |
Abs() | قدر مطلق یک عدد را بر میگرداند. | |
Ceiling() | کوچکترین مقدار صحیحی که بزرگتر یا مساوی با عدد مورد نظر ما باشد را بر میگرداند. | |
Cos() | کوسینوس یک زاویه مشخص را بر میگرداند. | |
DivRem() | خارج قسمت دو عدد صحیح را محاسبه میکند. | |
Floor() | بزرگترین مقدار صحیحی که کوچکتر یا مساوی با عدد مورد نظر ما باشد را بر میگرداند. | |
Log10() | لگاریتم یک عدد در مبنای 10 را بر میگرداند. | |
Max() | بزرگترین عدد در بین چندین عدد را بر میگرداند. | |
Min() | کوچکترین عدد در بین چندین عدد را بر میگرداند. | |
Pow() | برای به توان رساندن یک عدد به کار میرود. | |
Round() | گرد کردن یک عدد اعشار به نزدیکترین مقدار صحیح. | |
Sin() | سینوس یک زاویه مشخص را بر میگرداند. | |
Sqrt() | جذر یک عدد را بر میگرداند. | |
Tan() | تانژانت یک زاویه را بر میگرداند. |
گرد کردن اعداد با استفاده از کلاس Math
میتوان با استفاده از Math.Ceiling() و Math.Floor() یک عدد با قسمت اعشار را گرد کرد. متد Math.Ceiling() یک عدد از نوع double را گرفته و یک مقدار از نوع double گرد شده را بر میگرداند. نتیجه این متد بزرگتر یا مساوی آرگومان دریافت شده است. Math.Floor یک عدد double را گرد کرده و نتیجه کوچکتر یا مساوی آرگومان گرفته شده است. برای روشن شدن مطلب به مثال زیر توجه کنید :
double number = 34.567; double ceil = Math.Ceiling(number); double floor = Math.Floor(number); Console.WriteLine("Math.Ceiling({0}) = {1}", number, ceil); Console.WriteLine("Math.Floor({0}) = {1}", number, floor);
Math.Ceiling(34.567) = 35 Math.Floor(34.567) = 34
اگر بخواهید یک عدد به عددی با قسمت اعشاری مشخص گرد کنید میتوانید از متد Math.Round() استفاده کنید :
//Round 3.31674 into 2 decimal places double number = 3.31674 Console.WriteLine(Math.Round(number, 2));
3.32
به توان رساندن یک عدد با استفاده از کلاس Math
برای به توان رساندن یک عدد از متد Math.Pow() استفاده میشود. این متد دو آرگومان از نوع double قبول کرده که اولین آرگومان پایه و دومی توان میباشد. مقدار برگشتی از این متد double است. به کد زیر توجه کنید :
for (int i = 0; i < 10; i++) { Console.WriteLine("2^{0} = {1}", i, Math.Pow(2, i)); }
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512
گرفتن ریشه یک عدد
برای محاسبه ریشه یک عدد از متد Math.Sqrt() استفاده میشود. این متد یک عدد به عنوان آرگومان قبول میکند که همان عددی است که میخواهیم ریشه آن را محاسبه کنیم. مقدار برگشتی از این متد هم double میباشد.
Console.WriteLine(Math.Sqrt(25));
5
یافتن بزرگترین و کوچکترین عدد با استفاده از کلاس Math
کلاس Math دارای متدهای Math.Min() و Math.Max() برای یافتن بزرگترین و کوچکترین عدد از بین چندین عدد میباشد. هر دو متد دو آرگومان از نوع عددی قبول میکنند. در حالت پیشفرض دو عدد را میتوانید با هم مقایسه نمایید.
Console.WriteLine(Math.Min(1,2)); Console.WriteLine(Math.Max(1,2));
1 2
برای جلوگیری از محدودیت این متدها میتوان به صورت تو در تو از آنها به صورت زیر استفاده کرد:
//Get the maximum and minimum of 3 numbers int max = Math.Max(Math.Max(1, 2), 3); int min = Math.Min(Math.Min(1, 2), 3); Console.WriteLine("Max = {0}", max); Console.WriteLine("Min = {0}", min);
Max = 3 Min = 1
همچنین میتوانید یک تابع تعریف کنید که کوچکترین و بزرگترین هر تعداد عدد را به شما معرفی کند :
static int GetMax(int[] numbers) { int maximum = numbers[0]; for (int i = 1; i < numbers.Length; i++) { maximum = Math.Max(maximum, numbers[i]); } return maximum; } static int GetMin(int[] numbers) { int minimum = numbers[0]; for (int i = 1; i < numbers.Length; i++) { minimum = Math.Min(minimum, numbers[i]); } return minimum; } static void Main() { int[] numbers = { 32, 17, 45, 10, 5 }; int max = GetMax(numbers); int min = GetMin(numbers); Console.WriteLine(max); Console.WriteLine(min); }
45 5
توابع GetMax() و GetMin() آرایهای از اعداد صحیح قبول میکنند (هر تعداد عدد را قبول میکنند). در داخل توابع ما فرض را بر این گذاشتهایم که اولین مقدار بزرگترین و آخرین مقدار کوچکترین عدد است. سپس یک حلقه for ایجاد کرده که با اندیس 1 شروع میشود. با استفاده از متدهای Math.Min() و Math.Max() تعیین میکنیم که آیا عنصر جاری حلقه از مقدار جاری اعداد بزرگتر است یا کوچکتر. که در این صورت مقدار جاری را جایگزین متغیرهای بزرگ یا کوچک میکنیم. سپس مقادیر نتیجه را برگشت میدهیم.
Math.PI
از ثابت PI که مقدار 3.14159265358979323846 را در خود ذخیره دارد، زمانی که بخواهید محیط یا مساحت یک دایره را پیدا کنید، استفاده میشود. برای یافتن محیط یک دایره به صورت زیر عمل میشود که در آن radius شعاع میباشد :
double area = Math.PI * Math.Pow(radius, 2);
کلاس System.Math دارای متدهای بیشتری است که ما به توضیح همین چند متد بسنده کردیم.
ببخشید الان رادیکال مجموع توان دوم های دو عدد رو چجوری باید نوشت
سوالتونو تو بخش پرسش و پاسخ مطرح بفرمایید
http://www.w3-farsi.com/forum/
سلام خسته نباشید.برای بدست اوردن ریشه nام یک عدد چه کدی رو باید بنویسم؟
سلام، مرسی
لینک زیر رو ببینید
ریشه n ام یک عدد
لطفا به این سوال جواب دهید.
برنامه ای بنویسید که n عدد صحیح را به عنوان ورودی گرفته سپس کوچکترین و بزرگترین عدد وارد شده را به همراه موقعیتشان در خروجی نمایش دهد. در صورت وجود اعداد تکراری آخرین نتیجه، باید نمایش داده شود.
ورودی
خط اول ورودی شامل تعداد اعداد (n) و در ادامه n عدد صحیح که هر کدام در یک خط آمده اند، داده میشود.
خروجی
خروجی برنامه یک عدد صحیح میباشد.
مثال
ورودی نمونه ۱
7
2
6
14
-7
28
30
-7
Copy
خروجی نمونه ۱
min=-7 position=7
max=30 position=6
لطفا سوالتونو تو بخش پرسش و پاسخ مطرح بفرمایید
w3-farsi.com/forum
سلام خسته نباشید
ببخشید من وقتی توی کنسول اپ math رو میزنم پشت یرش فق گزینه ی programs هست. دیگه اینایی که توی این مطلب نام برده شد نیستن.
اما توی ویندوز فرم اپ هستن.
ممنون میشم کمکم کنید.
این کلاس توی فضای نام System هست. باید توقسمت فضای نام ها اینو بنویسین
در ضمن با حرف بزرگ شروع میشه : Math
سلام
می خواستم بدونم چجوری میشه میانگین یا واریانس چند عدد رو درc# حساب کرد.بصورتی که اعداد توسط کاربر وارد بشه.
سلام، سوالتونو تو بخش پرسش و پاسخ مطرح بفرمایید
w3-farsi.com/forum
در مورد سوال اولتون عرض شود که کتانزانت میشه 1 تقسیم بر تانژانت. یعنی شما می تونید بنویسید :
در مورد سوال دوم هم یه روشش به صورت زیره
روش دیگش هم اینه که به صورت زیر خرویجی را قالب بندی کنید
سلام من یه تمرین مینوشتم که توش توابع مثلثاتی رو بشه حساب کرد اما کتانژانت تو کلاس مث وجو نداره .چرا؟و اینکه کسینوس نود رو یه عدد بسیار طولانی که به توان منفی17 هست نشون میده چه جوری میتونم درستش کنم که همون صفر نشون بده؟
سلام اقای ابراهیمی پیشنهاد میکنم قبل از شروع بحث دات نت مقداری در باره فلسفه وجودی دات نت مثلا اینکه کلاسها ومتدهای دات نت نه فقط در محیط سی شارپ بلکه در سایر محیط ها مثلا vb و … قابل استفاده است را پست بگذارید دوستان با علت ساخت دات نت آشنا بشوند مثلا اگر دات نت نباشد
باید در تماه محیط های برنامه نویسی ویژوال استودیو این کلاسها تعریف می شدو این چندباره کاری بود
اگه امکانش هست یه پروژه ی مدیریت دانشگاه رو برام میفرستید.