اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۶ مطلب با کلمه‌ی کلیدی «ثابت» ثبت شده است

  • ۲
  • ۰

بسم الله الرحمن الرحیم

سلام...

همونطوری که در جلسه قبل قولش رو داده بودم، در این درس می خوام در مورد محدوده متغیرها ، تبدیل رشته ها به عدد و همچنین ثابت ها، صحبت کنم. در قسمت عملی این درس هم با چندتا از اشیاء دیگر آشنا شویم. البته رسم بر اینه که به اشیائی که روی فرم میگذاریم "کنترل" بگیم، پس از حالا طبق همین رسم پیش خواهیم رفت.

متغیرها علاوه بر اینکه دارای نام، نوع و مقدار اولیه هستند، دارای طول عمر و سطح دسترسی نیز می‌باشند. با سه تای اولی که آشنایی دارید. اما توی این درس قصد دارم شما رو با طول عمر و سطح دسترسی متغیرها آشنا کنم. شما بعد از آشنایی با این موارد توانایی نوشتن برنامه های بهتری را خواهید داشت.

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

کلیدواژه unchecked

کلمه کلیدی unchecked برای متوقف کردن عملیات بررسی سر ریز (overflow) در عملیات محاسباتی و تبدیلات نوع صحیح استفاده می شود.

در یک زمینه بررسی نشده (unchecked context) ، اگر یک عبارت مقداری خارج از محدوده نوع مقصد تولید کند، سرریز گزارش داده نمی شود. برای مثال، به این دلیل که در مثال زیر عملیات محاسباتی در بلوک یا عبارت unchecked قرار گرفته ، از این حقیقت که نتیجه محاسبه بزرگتر از حد عدد صحیح است ، چشم پوشی می شود، و به متغیر int1 مقدار  2,147,483,639- انتساب داده می شود.

unchecked
{
    int1 = 2147483647 + 10;
}
int1 = unchecked(ConstantMax + 10);

اگر محیط unchecked حذف شود، یک خطای کامپایل رخ می دهد. سرریز (overflow) می تواند در زمان کامپایل تشخیص داده شود، زیرا تمام قسمت های عبارت بصورت ثابت (Constant) هستند.

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

کلیدواژه const

کلمه کلیدی const ، در واقع اصلاحگری برای اعلان فیلد، یا متغیر محلی است و تعیین می کند که مقدار فیلد یا متغیر محلی ثابت است، به این معنی که مقادیر آنها قابل دستکاری نیست.

const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";

ملاحظات

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

یک عبارت ثابت، عبارتی است که می تواند در زمان کامپایل بطور کامل ارزیابی شود (نیاز به پردازش های زمان اجرا نداشته باشد). بنابراین ، تنها مقادیر مجاز برای ثابت های نوع مرجع، string و null می باشد.

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

public const double x = 1.0, y = 2.0, z = 3.0;

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

کلیدواژه readonly

کلمه کلیدی readonly یک اصلاحگر است که شما می توانید آنرا رو فیلد ها استفاده کنید. وقتی اعلان فیلد شامل اصلاحگر readonly باشد، انتساب های به فیلدهایی با چنین اعلانی فقط از طریق سازنده همان کلاس و یا در هنگام اعلان می تواند اتفاق بیافتند.

مثال:

در این مثال مقدار فیلد year نمی تواند در داخل متد ChangeYear تغییر کند، هرچند یک مقدار از داخل سازنده کلاس به آن انتساب داده شده است.

class Age
{
    readonly int _year;
    Age(int year)
    {
        _year = year;
    }
    void ChangeYear()
    {
        //_year = 1967; // Compile error if uncommented.
    }
}

شما فقط در شرایط زیر می توانید مقداری را به فیلد readonly انتساب دهید:

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

کلمه کلیدی fixed

باسلام!


دستور fixed از اینکه GC (آشغال جمع کن یا Garbage Collector) یک متغیر جابجا شدنی را منتقل کند، جلوگیریی می کند. دستور fixed فقط در زمینه(context) برنامه نویسی مدیریت نشده مجاز است.

دستور fixed همچنین می تواند برای ساختن بافرهای با اندازه ثابت مورد استفاده قرار می گیرد. این دستور یک اشاره گر به متغیر مدیریت شده می سازد و آن متغیر را در حین اجرای دستور ثابت می کند. بدون fixed ، اشاره گرهای به متغیرهای مدیریت شده قابل انتقال، کاربرد کمی دارد، چون GC می تواند بطور پیش بینی نشده متغیر را جابجا کند. کامپایلر #C فقط اجازه واگذار کردن اشاره گر به متغیر مدیریت شده را در دستور fixed میدهد.

بعد از اجرای کد داخل دستور fixed هر متغیر پین شده (غیرقابل جابجایی)، Unpin می شود و هدف GC قرار می گیرد. بنابراین بیرون دستور fixed به آنها اشاره نکنید. اشاره گرهایی که در دستور fixed مقداردهی اولیه شده اند قابل اصلاح نیستند.

در روش مدیریت نشده، می توان حافظه پشته را که مورد هدف GC قرار نمی گیرد را اختصاص داد؛ و بنابراین نیازی به pin شدن ندارد.

unsafe static void Test(){
    Poin pt=new Point();
    fixed(int* p=&pt.x){
        *p=1;
    }
}

در مورد دستور unsafe بعدا توضیح خواهم داد.

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

این مطلب رو با یک مثال شروع می کنم:

enum E:byte{sat,sun=2,mon,tue=8};

نوع پیش فرض در enum نوع int است ولی می توان شبیه مثال بالا نوع های دیگر را به غیر از char به آن اختصاص داد.

با صفت FlagsAttribute می توان کارکرد enum را به طرز جالبی تغییر داد:

[FlagsAttribute]
enum E{sat=0,sun=1,mon=2,tue=4};
for(int i=0;i<4;i++){
Console.WriteLine(((E)i).ToString());
}

جالب اینجاست که هرجا که مقدار معادل متغیرشمارنده حلقه (i) در enum وجود نداشته باشد، ثابت های دیگر را طوری با هم ترکیب می کند تا آن مقدار بدست بیاید. البته باید دقت شود که حتما شماره گذاری عناصر enum توانی از 2 باشد. و از صفت FlagsAttribute قبل از تعریف نوع شمارشی (enum) استفاده شود.

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