کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

اعداد (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# می‌تواند قدم بعدی شما برای آشنایی بیشتر با مفاهیم و قابلیت‌های این زبان باشد.

1405/06/15 15950 3248
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...