اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

اثر پروانه‌ای نام پدیده‌ای است که به دلیل حساسیت سیستم‌های آشوب‌ناک به شرایط اولیه ایجاد می‌شود. این پدیده به این اشاره می‌کند که تغییری کوچک در یک سیستم آشوب‌ناک چون جو سیارهٔ زمین (مثلاً بال‌زدن پروانه) می‌تواند باعث تغییرات شدید (وقوع توفان در کشوری دیگر) در آینده شود.

ایده‌ٔ این‌که پروانه‌ای می‌تواند باعث تغییری آشوبی شود نخستین بار در ۱۹۵۲ در داستان کوتاهی به نام آوای تندر اثر ری بردبری مطرح شد. عبارت «اثر پروانه ای» هم در ۱۹۶۱ در پی مقاله‌ای از ادوارد لورنتس به وجود آمد. وی در صد و سی و نهمین اجلاس ای‌ای‌ای‌اس در سال ۱۹۷۲ مقاله‌ای با این عنوان ارائه داد که «آیا بال‌زدن پروانه‌ای در برزیل می‌تواند باعث ایجاد تندباد در تکزاس شود؟»

آخرین نظرات
  • ۱۳ بهمن ۰۱، ۱۵:۳۱ - حسنا سادات و سما سادات
    عالی

۱۸ مطلب با کلمه‌ی کلیدی «نوع داده ای» ثبت شده است

  • ۱
  • ۰

کلمه کلیدی int ، یک نوع صحیح عددی را تعریف می کند که مقادیر را بر اساس اندازه و محدوده زیر ذخیره می کند.

  • نوع : int
  • محدوده : از 2,147,483,648- تا 2,147,483,647
  • اندازه : صحیح علامتدار 32-بیتی
  • نوع دات نتی : System.Int32

لیترال ها

شما می توانید یک متغیر از نوع int را بصورت زیر اعلان و مقداردهی اولیه کنید:

int i = 123;

وقتی یک لیترال صحیح دارای هیچ پسوندی نباشد، نوع آن لیترال اولین نوعی است که مقدار آن لیترال بتواند در آن قرار گیرد: int، uint، long، ulong . در این مثال نوع لیترال int است.

تبدیلات

از نوع int به نوع های long، float، double یا decimal تبدیل ضمنی از پیش تعریف شده وجود دارد. برای مثال:

// '123' is an int, so an implicit conversion takes place here:
float f = 123;

از نوع های  sbyte، byte، short، ushort یا char به نوع int تبدیل ضمنی از پیش تعریف شده موجود است. برای مثال، بیان انتساب زیر بدون عملگر قالب ریزی (cast) خطای کامپایل تولید خواهد کرد:

long aLong = 22;
int i1 = aLong;       // Error: no implicit conversion from long.
int i2 = (int)aLong;  // OK: explicit conversion.

همچنین به یاد داشته باشید که از نوع های ممیز-شناور به نوع int هیچ تبدیل ضمنی ای وجود ندارد. برای مثال، بیان زیر تا زمانی که از قالبریزی صریح استفاده نشود باعث بروز خطای کامپایل می شود.

int x = 3.0;         // Error: no implicit conversion from double.
int y = (int)3.0;    // OK: explicit conversion.
  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

نوع delegate ، امضای یک متد را تعریف می کند. وقتی شما یک وکیل (delegate) را نمونه سازی می کنید، می توانید آنرا به هر متدی با امضای سازگار با آن وکیل ، پیوند دهید. شما می توانید آن متد را از طریق نمونه ی delegate احضار (فراخوانی) کنید.

وکیل ها برای پاس دادن متدها بصورت آرگومان ، به متد های دیگر استفاده می شوند. مدیریت کننده های رویداد، چیزی جز متدهایی که از طرق delegate ها احضار شده اند، نیستند. شما یک متد سفارشی می سازید و کلاسی مثل windows control می تواند متد شما را در هنگام اتفاق افتادن یک رویداد (event) خاص، فراخوانی کند. مثال زیر طرز اعلان یک وکیل را نشان می دهد:

public delegate int PerformCalculation(int x, int y);

هر متدی از هر کلاس یا ساختار قابل دسترس که با امضای وکیل (شامل نوع برگشتی و پارامترهای ورودی) مطابقت داشته باشد، می تواند به به وکیل انتساب داده شود. متد می تواند static یا یک متد نمونه (instance method) باشد. این کار باعث می شود که بتوانیم با برنامه نویسی، فراخوانی های متد را تغییر دهیم، و همچنین کد جدیدی را در یک کلاس موجود، وارد کنیم. تا وقتی که امضای وکیل را می دانید، می توانید متد خودتان را به آن انتساب دهید.

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

کلیدواژه enum

کلمه کلیدی enum برای اعلان مجموعه شمارشی (enumeration) استفاده می شود. enumeration یک نوع متمایز شامل مجموعه ای نامدار از ثابت ها است که به آنها لیست شمارشی می گویند.

معمولا" بهترین راه، اعلان enum مستقیما" درون namespace است، در نتیجه همه کلاس های داخل namespace می توانند بصورت مساوی به آن دسترسی داشته باشند. هرچند، یک enum می تواند بصورت تودرتو ، درون یک کلاس یا ساختار (struct) قرار گیرد.

بصورت پیش فرض، اولین enumerator (اعضای enum) مقدار صفر دارد و بقیه اعضا مقدارشان بصورت متوالی، یکی یکی افزایش پیدا می کند.

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

در این لیست شمارشی، Sat مقدار صفر دارد، Sun مقدار 1 دارد، Mon مقدار 2 دارد و الی آخر. enumerator ها می توانند برای رونویسی مقدار پیش فرضشان، مقدار دهی اولیه شوند. برای مثال:

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

کلمه کلیدی double

کلمه کلیدی double بر یک نوع ساده با قابلیت ذخیره مقادیر ممیز-شناور 64-بیتی دلالت دارد. دقت و محدوده تقریبی نوع double بصورت زیر است:

  • نوع: double
  • محدوده تقریبی:

    ±5.0 × 10−324 to ±1.7 × 10308

  • دقت: 16-15 رقم
  • نوع دات نتی: System.Double

لیترال ها

بطور پیش فرض، با یک لیترال عددی حقیقی که در سمت راست عبارت انتساب قرار گرفته باشد به عنوان double رفتار می شود. اما ، اگر می خواهید با یک عدد صحیح به عنوان double رفتار شود، از پسوند d یا D استفاده کنید. برای مثال:

double x = 3D;

تبدیلات

شما می توانید نوع های عددی صحیح و نوع های ممیز-شناور را در یک عبارت با هم ترکیب کنید. در چنین موردی ، نوع های صحیح به نوع های ممیز-شناور تبدیل می شوند. ارزیابی عبارت، بر اساس قوانین زیر انجام می شود:

  • اگر یکی از نوع های ممیز-شناور double باشد،عبارت به صورت double ارزیابی می شود. در عبارت های بولی بصورت bool ارزیابی می شود.
  • اگر هیچ نوع double ی در عبارت وجود نداشته باشد، به صورت float ارزیابی خواهد شد. در عبارت های بولی بصورت bool ارزیابی می شود.

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

جدول زیر تبدیلات عددی ضمنی از پیش تعریف شده را نشان می دهد. تبدیلات ضمنی ممکن است در بسیاری مواقع ، از جمله فراخوانی متد و بیان های انتساب ، اتفاق بیافتد.


از به
sbyte short, int, long, float, double, یا decimal
byte short, ushort, int, uint, long, ulong, float, double, یا decimal
short int, long, float, double, یا decimal
ushort int, uint, long, ulong, float, double, یا decimal
int long, float, double, یا decimal
uint long, ulong, float, double, یا decimal
long float, double, یا decimal
char ushort, int, uint, long, ulong, float, double, یا decimal
float double
ulong float, double, یا decimal


ملاحظات

  • تبدیلات از int و uint یا long به float و از long به double ممکن است باعث از دست رفتن دقت شود، اما به مقدار ضرری وارد نمی شود.
  • هیچ تبدیل ضمنی ای به نوع char وجود ندارد.
  • هیچ تبدیل ضمنی ای بین نوع های ممیز-شناور و decimal وجود ندارد.
  • یک عبارت ثابت از نوع int می تواند به sbyte ، byte ، short ، ushort ، uint یا ulong تبدیل شود، مقدار تعیین شده عبارت ثابت در محدوده نوع مقصد می باشد.

  • غلامعلی حسینی بهجانی
  • ۱
  • ۰

نوع داده ای decimal

کلیدواژه decimal به یک نوع داده ای 128-بیتی اشاره دارد. در مقایسه با نوع های ممیز-شناور، نوع decimal دقت بیشتر و محدوده کمتری دارد، که آنرا برای محاسبات مالی و پولی مناسب کرده است. 

محدوده تقریبی و دقت نوع decimal در زیر آمده است:

  • نوع: decimal
  • محدوده تقریبی:

    (-7.9 x 1028 to 7.9 x 1028) / (100 to 28)

  • دقت: 29-28 رقم معنادار
  • نوع دات نتی: System.Decimal

    لیترال ها

    اگر شما می خواهید یک لیترال عددی حقیقی داشته باشید که با آن مانند decimal رفتار شود، از پسوند m یا M استفاده کنید، برای مثال:

    decimal myMoney = 300.5m;

    بدون پسوند m ، با عدد مانند double رفتار شده و تولید یک خطای کامپایل می نماید.

    • غلامعلی حسینی بهجانی
    • ۱
    • ۰

    کلمه کلیدی char

    کلمه کلیدی char برای اعلان کاراکتر یونیکد (Unicode) که محدوده آن در زیر آمده استفاده می شود. کاراکترهای یونیکد، کاراکترهایی 16-بیتی هستند که برای نمایش اکثر زبان های نوشتاری شناخته شده در دنیا مورد استفاده قرار می گیرند.

    • نوع: char
    • محدوده: از U+0000 تا U+ffff
    • اندازه: کاراکتر 16-بیتی یونیکد
    • نوع دات نتی: System.Char


    لیترال ها:

    ثابت های از نوع char می توانند بصورت لیترال های کاراکتری، توالی گریز شانزده شانزدهی (Hexadecimal escape swquence)، یا نماینده یونیکد، نوشته شوند. شما همچنین می توانید کد های کاراکتری صحیح را قالب ریزی (cast) کنید. در مثال زیر چهار متغیر char با کاراکتر X ، مقداردهی اولیه شده اند:

    • غلامعلی حسینی بهجانی
    • ۲
    • ۰

    نوع داده float

    نوع ممیز شناور 32 بیتی که معادل آن در دات نت System.Single است و دقت آن تا 7 رقم است.

    بصورت پیش فرض در یک انتساب، عدد سمت راست بصورت double تفسیر می شود. پس برای مقداردهی اولیه به پسوند f یا F بعد از عدد سمت راست انتساب نیاز است:

    float x=3.5f;

    که درغیر اینصورت با خطای زمان کامپایل مواجه خواهیم شد.

    می توان نوع های عددی صحیح و ممیز شناور را در یک عبارت با یکدیگر ترکیب کرد، که در چنین موردی نوع صحیح به نوع اعشاری تبدیل می شود. ارزیابی عبارت طبق قوانین زیر انجام می شود:

    • اگر یکی از نوع های ممیز شناور double باشد، کل عبارت بصورت double ارزیابی خواهد شد. (در عبارت های رابطه ای، ارزیابی بصورت bool خواهد بود).
    • اگر نوع double در عبارت نباشد، بصورت float ارزیابی خواهد شد.

    یک عبارت ممیزشناور می تواند شامل مجموعه مقادیر زیر باشد:

    • صفر مثبت و منفی
    • بی نهایت مثبت و منفی
    • مقدار "عددی نیست" یا NaN که کوتاه شده عبارت Not-a-Number است.
    • مجموعه متناهی از مقادیر غیر صفر

    • غلامعلی حسینی بهجانی