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

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. محمد حسین غفاری پاسخ دادن

    اگه امکانش هست یه پروژه ی مدیریت دانشگاه رو برام میفرستید.

  2. seyedhosseinhosseinikhalili پاسخ دادن

    سلام اقای ابراهیمی پیشنهاد میکنم قبل از شروع بحث دات نت مقداری در باره فلسفه وجودی دات نت مثلا اینکه کلاسها ومتدهای دات نت نه فقط در محیط سی شارپ بلکه در سایر محیط ها مثلا vb و … قابل استفاده است را پست بگذارید دوستان با علت ساخت دات نت آشنا بشوند مثلا اگر دات نت نباشد
    باید در تماه محیط های برنامه نویسی ویژوال استودیو این کلاسها تعریف می شدو این چندباره کاری بود