اثر پروانه ای

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

مشخصات بلاگ
اثر پروانه ای

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

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

آخرین نظرات
  • ۱۱ بهمن ۹۵، ۱۷:۱۸ - فاروق کریمی زاده
    خوب بود.
اثر پروانه ای

۸ مطلب با موضوع «نظریه» ثبت شده است

We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.

Donald Knuth 1974

ما دیده ایم که برنامه نویسی کامپیوتر یک هنر است، به این دلیل که دانش عظیمی را به جهان اعمال می‌کند، زیرا به مهارت و ابتکار نیاز دارد و از این رو اشیاء زیبایی رو تولید می‌کند. یک فرد برنامه نویس که بصورت ناخودآگاه، خودش را هنرمند نشان دهد، از آنچه انجام می‌دهد لذت می‌برد و آن کار را بهتر انجام خواهد داد.

دونالد کنوث 1974

مکالمه من و یک نفر دیگه در مورد ارتباط روح و جسم

adihamed: برای من سواله که این روح چه طور با مغز ارتباط داره !
این مغزه که با استفاده از اون همه چیز رو احساس می کنیم، فکر می کنیم و حرکت می کنیم . مغز هم پر از مولکول و اتمه . خوب ! پس روح چه می کنه این وسط !
من: شاید ارتباط روح با جسم مثل ارتباط نرم افزار با سخت افزار باشد.
saberali : چه طوره؟
من: نرم افزار هم قابل دیدن نیست. خود نرم افزار یک منطق هست که سخت افزار این منطق رو اجرایی می کنه.
saberali : نحوه ارتباطش رو توضیح بده؟

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

سلام...

همونطور که قولش رو داده بودم از این جلسه تمرکز بیشتر بر روی برنامه نویسی به روش شئ گرایی خواهیم داشت. البته این مبحث نیاز به مقدماتی داره که الحمدلله تا اینجای کار با بسیاری از اون مقدمات آشنایی مختصری پیدا کرده اید. حتی شما بدون اینکه خودتان متوجه باشید از تمامی این تکنیک های شئ‌گرایی در برنامه های قبلی استفاده کردید. بنابراین به احتمال زیاد درک مواردی که در ادامه خواهد آمد بسیار آسان تر خواهد بود.

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

به نام خدا و سلام.

عذرخواهی بابت اینکه این درس رو دیر آپلود کردم.

در این درس مجبوریم کمی به مباحث تئوری بپردازیم. البته همه درس رو به این مباحث خشک اختصاص نمی‌دهیم. سعی خواهیم کرد این مباحث رو در عمل هم ببینیم.

زبان های برنامه نویسی هم مانند بقیه قسمت های نرم افزاری و سخت افزار کامپیوتر دچار تغییر و تحولات اساسی شده اند. یکی از پیشرفته ترین شیوه های برنامه نویسی ،  روش شیئ گرایی هست. شاید کمی زود باشه که در مورد شیئ گرایی صحبت کنیم اما چاره ای نیست!

برنامه نویسی شیئ گرا یا Object Oriented Programming یا OOP روشی در برنامه نویسی است که با همه اجزای برنامه مانند اشیاء در دنیای واقعی رفتار می‌کنه. این روش برنامه نویسی باعث پیشرف چشمگیری در دنیای نرم افزار شده. حالا باید ببینیم که اشیاء در دنیای واقعی چگونه اند تا بتونیم مفهوم اشیاء در برنامه نویسی رو بهتر متوجه شویم.

هر شیئ دارای یکسری خصوصیات هست که ما با اون خصوصیات اون شیئ رو می شناسیم. مثلا شیئ مداد دارای خصوصیاتی مثل رنگ، طول، قطر، نوع گرافیت، نام شرکت سازنده و... غیره می باشد.

ما در زندگی واقعی می توانیم از اشیاء دیگر شیئ جدیدی بسازیم! برای مثال اگر بخواهیم یک کاردستی درست کنیم ممکنه به جعبه، چسب، قیچی و حتی مداد نیاز داشته باشیم. هریک از این اشیاء مستقل هستند اما با ترکیب آنها شیئ جدیدی ساخته خواهد شد.

Learning pyramid

همونطور که ملاحظه می فرمائید یکی از بهترین روش ها برای یادگیری اینه که مطلبی رو به دیگران یاد بدهیم...

زَکَاةُ الْعِلْمِ نَشْرُهُ / زکات علم منتشر کردن آن و یاد دادن آن به دیگران است. (امام علی علیه السلام)

رویداد ها ، به یک کلاس یا شیئ این امکان را می دهند که درصورت اتفاق چیزی دلخواه ، کلاس ها یا اشیاء دیگر را مطلع کنند. به کلاسی که رویداد را می فرستد (یا برپا می کند) ، ناشر (publisher) می گویند و به کلاس هایی که رویداد را دریافت (مدیریت/handle) می کنند، متعهد (subscriber/اشتراک گیرنده) می گویند.

در یک برنامه ویندوزی یا تحت وب نمونه که با #C نوشته شده است، شما توسط کنترل هایی مثل button و یا listbox متعهد رویدادهای برپاشده می شوید. شما می توانید با استفاده از IDE (محیط توسعه جامع) Visual C# تمام رویدادهایی که یک کنترل منتشر می کند را ببینید و هر کدام از آنها را که خواستید ، برای مدیریت (handle) انتخاب کنید. IDE بطورت خودکار یک متد خالی مدیریت کننده رویداد و کد تعهد به رویداد را اضافه می کند. برای اطلاعات بیشتر به "راهنمای چگونگی اشتراک گیری و لغو اشتراک از رویدادها" مراجعه کنید.

بررسی رویدادها

رویدادها دارای خواص زیر می باشند:

با سلام!

مطلبی رو که امروز براتون آماده کردم. یه کم با مطالب قبلی تفاوت داره. احتمالا یه کم پیچیده تر.


ترمینولوژی:

Variant : چیزی که به چیزهای دیگر وابستگی دارد اما دقیقا مشابه نیست، گوناگون، متغیر

پیشوند Contra : ضد، مخالف، نقیض

پیشوند Co : با، باهم


برای پارامترهای نوع Generic (عام)، کلمه کلیدی in تعیین می کند که پارامتر آن نوع عام Contravariant است. شما می توانید از این کلمه کلیدی (in) در رابط های (Interface) عام و نماینده ها (delegate) استفاده کنید.

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

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


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


لورنتس در پژوهش بر روی مدل ریاضی بسیار ساده‌ای از آب و هوای جو زمین، به معادلهٔ دیفرانسیل غیر قابل حل رسید. وی برای حل این معادله از روش‌های عددی به کمک رایانه بهره جست. او برای این‌که بتواند این کار را در روزهای متوالی انجام دهد، نتیجه آخرین خروجی یک روز را به عنوان شرایط اولیه روز بعد وارد می‌کرد. لورنتس در نهایت مشاهده کرد که نتیجه شبیه‌سازی‌های مختلف با شرایط اولیه یکسان با هم کاملاً متفاوت است. بررسی خروجی چاپ شده رایانه نشان داده که رویال مک‌بی (Royal McBee)، رایانه‌ای که لورنتس از آن استفاده می‌کرد، خروجی را تا ۴ رقم اعشار گرد می‌کند. از آنجایی که محاسبات داخل این رایانه با ۶ رقم اعشار صورت می‌گرفت، از بین رفتن دو رقم آخر باعث چنین تاثیری شده بود. مقدار تغییرات در عمل گردکردن نزدیک به اثر بال‌زدن یک پروانه‌است. این واقعیت غیرممکن بودن پیش‌بینی آب و هوا در دراز مدت را نشان می‌دهد.


مشاهدات لورنتس باعث پررنگ شدن مبحث نظریه آشوب شد. عبارت عامیانه «اثر پروانه‌ای» در زبان تخصصی نظریه آشوب، «وابستگی حساس به شرایط اولیه» ترجمه می‌شود.


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


منبع: دانشنامه ویکیپدیا