کلاس 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 دارای متدهای بیشتری است که ما به توضیح همین چند متد بسنده کردیم.