مشخصات مقاله
-
3248
-
0.0
-
15950
-
0
-
0
اعداد (number) در سی شارپ
وقتی در سی شارپ با اعداد و مقادیر عددی سروکار دارید، آشنایی با امکاناتی که این زبان برای کار با اعداد در اختیار شما قرار میدهد اهمیت زیادی پیدا میکند. از تعریف متغیرهای عددی گرفته تا بررسی علامت، به دست آوردن بخش صحیح و پیدا کردن کمترین یا بیشترین مقدار، همه این موارد در برنامهنویسی کاربرد دارند.
در این بخش با چند قابلیت کاربردی برای کار با اعداد در سی شارپ آشنا میشوید و میبینید چطور میتوان با استفاده از کلاس Math عملیات موردنیاز را سادهتر انجام داد. اگر در حال یادگیری C# هستید، این مباحث بخشی از مفاهیم پایهای هستند که در ادامه مسیر برنامهنویسی به آنها نیاز پیدا میکنید.
بررسی اعداد
زبان سی شارپ، برخلاف زبانهای C، C++، Pascal، Visual Basic و Java، از ریاضی پشتیبانی نمیکند (امکان پشتیبانی توکار برای ریاضی ندارد) و برای این قابلیت به کتابخانهها یا زبانهای دیگر متکی است. برای انجام سادهترین عملیات جبری و هندسی در سی شارپ، میتوانید از متدهای کلاس Math در .NET Framework استفاده کنید. همچنین میتوان از کتابخانه بسیار غنی توابع کلاس Visual Basic برای این منظور کمک گرفت. کتابخانه بالا یکی از گستردهترین مجموعه توابع حوزههای مختلف ریاضی تجاری را در بر دارد. راههای مختلفی برای تعریف متغیر از نوع عددی وجود دارد که نمونههای آن را در ادامه میبینید.
using System;
class Program
{
static int Main()
{
short sNumber;
int iNumber;
double dNumber;
decimal mNumber;
return 0;
}
}
علامت اعداد
یکی از قوانین پایهای سی شارپ این است که پس از تعریف متغیر و پیش از استفاده از آن، متغیر باید مقداردهی اولیه شده باشد. نمونههای مقداردهی اولیه متغیر را در مثال زیر میبینید.
using System;
class Program
{
static int Main()
{
short sNumber = 225;
int iNumber = -847779;
double dNumber = 9710.275D;
decimal mNumber = 35292742.884295M;
Console.WriteLine("Short Integer: {0}", sNumber);
Console.WriteLine("Integral Number: {0}", iNumber);
Console.WriteLine("Double-Precision: {0}", dNumber);
Console.WriteLine("Extended Precision: {0}", mNumber);
return 0;
}
}
نتیجه به صورت زیر خواهد بود.
Short Integer: 225 Integral Number: -847779 Double-Precision: 9710.275 Extended Precision: 35292742.884295 Press any key to continue...
تعیین علامت کردن یک مقدار عددی
// Sign() method signature only public static int Sign(sbyte value); public static int Sign(short value); public static int Sign(int value); public static int Sign(long value); public static int Sign(sbyte value); public static int Sign(double value); public static int Sign(decimal value);
هنگام فراخوانی این متد، متغیر یا مقدار دلخواه را به عنوان آرگومان ارسال میکنید. متد نتایج زیر را برمیگرداند.
- 1- چنانچه آرگومان منفی بود.
- 0 چنانچه آرگومان 0 بود.
- 1 چنانچه آرگومان مثبت بود
چند مثال از فراخوانی متد
using System;
class Program
{
static int Main()
{
short sNumber = 225;
int iNumber = -847779;
double dNumber = 9710.275D;
decimal mNumber = 35292742.884295M;
Console.WriteLine("Number: {0} => Sign: {1}",
sNumber, Math.Sign(sNumber));
Console.WriteLine("Number: {0} => Sign: {1}",
iNumber, Math.Sign(iNumber));
Console.WriteLine("Number: {0} => Sign: {1}",
dNumber, Math.Sign(dNumber));
Console.WriteLine("Number: {0} => Sign: {1}\n",
mNumber, Math.Sign(mNumber));
return 0;
}
}
نتیجه به صورت زیر است.
Number: 225 => Sign: 1 Number: -847779 => Sign: -1 Number: 9710.275 => Sign: 1 Number: 35292742.884295 => Sign: 1 Press any key to continue...
بخش صحیح عدد ممیز شناور
همانطور که در درس 3 تشریح کردیم، عدد ممیز شناور از دو بخش اصلی تشکیل شده است؛ یک بخش عدد صحیح و یک بخش اعشار که این دو بخش توسط نقطه اعشار ". " از هم جدا میشوند. در برخی موارد لازم است بخش عدد صحیح یک مقدار را به دست آورید. کلاس Math در این زمینه کمک زیادی به شما میکند. برای به دست آوردن بخش عدد صحیح یک رقم دهدهی، کلاس Math با متد Trancate() این امکان را برای شما فراهم میکند. دستور نحوی آن به شرح زیر است.
public static double Truncate(double d);
هنگام فراخوانی این متد، یک عدد یا متغیر از نوع شناور، دابل و دهدهی به آن ارسال کنید. متد نامبرده بخش عدد صحیح یک مقدار را برمیگرداند.
مثال:
Program
{
static int Main()
{
float number = 225.75f;
Console.WriteLine("The integral part of {0} is {1}\n",
number, Math.Truncate(number));
return 0;
}
}
نتیجه به صورت زیر به دست میآید.
The integral part of 225.75 is 225 Press any key to continue...
دریافت عدد کوچکتر بین دو عدد دلخواه
یکی از موارد رایج در کار با اعداد، پیدا کردن مقدار کوچکتر بین دو عدد دلخواه است. پیادهسازی این کار با یک دستور ساده if..else امکانپذیر است، اما در زبان سی شارپ میتوان این کار را به شکل سادهتری هم انجام داد.
public static byte Min(byte val1, byte val2); public static sbyte Min(sbyte val1, sbyte val2); public static short Min(short val1, short val2); public static ushort Min(ushort val1, ushort val2); public static int Min(int val1, int val2); public static uint Min(uint val1, uint val2); public static float Min(float val1, float val2); public static long Min(long val1, long val2); public static ulong Min(ulong val1, ulong val2); public static double Min(double val1, double val2); public static decimal Min(decimal val1, decimal val2);
مثال:
using System;
class Program
{
static int Main()
{
int number1 = 8025;
int number2 = 73;
Console.WriteLine("The minimum of {0} and {1} is {2}",
number1, number2, Math.Min(number1, number2));
return 0;
}
}
نتیجه به صورت زیر خواهد بود.
The minimum of 8025 and 73 is 73 Press any key to continue...
به خاطر داشته باشید که میتوانید از کلیدواژههای var و dynamic برای تعریف متغیرهای موردنظر استفاده کنید.
using System;
class Program
{
static int Main()
{
var number1 = 8025;
dynamic number2 = 73;
Console.WriteLine("The minimum of {0} and {1} is {2}",
number1, number2, Math.Min(number1، number2));
return 0;
}
}
دریافت عدد بزرگتر بین دو عدد دلخواه
برای به دست آوردن بیشینه دو عدد، میتوان متد Max() را از کلاس Math فراخواند. دستور نحوی این متد به ترتیب زیر است.
public static byte Max(byte val1, byte val2); public static sbyte Max(sbyte val1, sbyte val2); public static short Max(short val1, short val2); public static ushort Max(ushort val1, ushort val2); public static int Max(int val1, int val2); public static uint Max(uint val1, uint val2); public static float Max(float val1, float val2); public static long Max(long val1, long val2); public static ulong Max(ulong val1, ulong val2); public static double Max(double val1, double val2); public static decimal Max(decimal val1, decimal val2);
مثال:
using System;
class Program
{
static int Main()
{
int number1 = 8025;
int number2 = 73;
Console.WriteLine("The maximum of {0} and {1} is {2}",
number1, number2, Math.Max(number1, number2));
return 0;
}
}
نتیجه
The maximum of 8025 and 73 is 8025 Press any key to continue...
اگر این مباحث را یاد گرفتهاید و میخواهید مسیر یادگیری برنامهنویسی C# را منظمتر و اصولیتر ادامه دهید، میتوانید سراغ یک مسیر آموزشی کاملتر بروید. دوره آموزش C# میتواند قدم بعدی شما برای آشنایی بیشتر با مفاهیم و قابلیتهای این زبان باشد.
بررسی اعداد