اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

کلیدواژه default

کلمه کلیدی default در زبان برنامه نویسی #C عمدتا" به دوشکل استفاده می شود:

  1. در بیان switch (بیان معادل کلمه انگلیسی statement است)
  2. در کلاس های Generic (در مورد این نوع کلاس ها انشاءالله در پست های بعدی مفصل صحبت خواهم کرد. اما فعلا بطور خلاصه می تونم بگم که نوعی کلاس هستند که نوع داده ای که قرار است کلاس با آن کار کند را در زمان نمونه سازی آن مشخص می کنیم. مثلا" <MyClass<int )

این کلیدواژه اگر در بیان switch استفاده شود، مجموعه دستورالعمل هایی را، در صورت نادرست بودن عبارات case قبلی اجرا می کند.

اما بحث من در این پست بیشتر سر استفاده از کلمه کلید default در کلاس ها و متدهای جامع (Generic) است:

یک نکته که در این بحث بوجود می آید این است که چگونه یک مقدار پیش فرض را به یک نوع T پارامتری شده اختصاص دهیم، درحالی که گزینه های زیر را در آینده نمیدانیم:

  1. آیا T نوع مرجع است یا نوع مقداری (Value type or Reference type)
  2. اگر T از نوع مقداری است، آیا مقدار عددی خواهد داشت یا struct (چون نوع struct دز زبان سی شارپ در رده ی نوع های مقداری قرار میگیرد)

فرضا" متغر t از نوع T  پارامتری شده داده شده باشد، عبارت t=null فقط وقتی درست است که t از نوع مرجع باشد و t=0 فقط برای نوع عددی کار می کند و نه برای struct ها.

اما تا اینجا همه مقدمه بود!

راه حل استفاده از کلیدواژه default است که برای نوع های مرجع null برمیگرداند و صفر را برای نوع عددی و همچنین برای نوع struct هر کدام از اعضای آنرا بسته به نوع عددی یا مرجع بودن با صفر یا null برمیگرداند. در صورتی که نوع عددی nullable باشد، کلیدواژه default،

 System.Nullable<T> 

را که مثل هر struct دیگری مقدار دهی شده را برمیگرداند.

مثال زیر از نحوه استفاده از این کلمه کلیدی را در کدهای جامع (Generic) نشان می دهد:

namespace ConsoleApplication1
{
class Program

{
static void Main(string[] args)

{

// Test with a non-empty list of integers.
GenericList<int> gll = new GenericList<int>();
gll.AddNode(5);
gll.AddNode(4);
gll.AddNode(3);
int intVal = gll.GetLast();
// The following line displays 5.
System.Console.WriteLine(intVal);
// Test with an empty list of integers.

GenericList<int> gll2 = new GenericList<int>();

intVal = gll2.GetLast();

// The following line displays 0.
System.Console.WriteLine(intVal);
// Test with a non-empty list of strings.

GenericList<string> gll3 = new GenericList<string>();

gll3.AddNode("five");

gll3.AddNode("four");

string sVal = gll3.GetLast();

// The following line displays five.

System.Console.WriteLine(sVal);

// Test with an empty list of strings.

GenericList<string> gll4 = new GenericList<string>();

sVal = gll4.GetLast();

// The following line displays a blank line.
System.Console.WriteLine(sVal);
} }
// T is the type of data stored in a particular instance of GenericList.

public class GenericList<T>

{
private class Node

{

// Each node has a reference to the next node in the list.
public Node Next;
// Each node holds a value of type T.
public T Data;
}
// The list is initially empty.

private Node head = null;

// Add a node at the beginning of the list with t as its data value.

public void AddNode(T t)

{
Node newNode = new Node();

newNode.Next = head;

newNode.Data = t;
}
head = newNode;
// The following method returns the data value stored in the last node in
// the list. If the list is empty, the default value for type T is
// returned.
public T GetLast()
{
// The value of temp is returned as the value of the method.

// The following declaration initializes temp to the appropriate

// default value for type T. The default value is returned if the

// list is empty.

T temp = default(T);

Node current = head;

while (current != null)
{
temp = current.Data;
current = current.Next;
}
return temp;

}

}
}

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی