اثر پروانه ای

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

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

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

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

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

پاسخ یک سوال خصوصی

پنجشنبه, ۲۱ اسفند ۱۳۹۳، ۰۵:۵۳ ب.ظ

سلام.

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


omid:

با سلام و خدا قوت

بنده مدت کمی هست برنامه نویسی میکنم با سی شارپ

یه سری کدها و دستورات هستن که فهم و درکشون سخته

حالا فرضا من تمام کلمات کلیدی رو بلدم و حتی استفاده از دستور شرطی رو هم بلدم..خب برای نوشتن دستور مثلا open file dialog  از کجا باید بفههم کدش چطوری ساخته میشه یا savefiledialog یا ...

منظورم اینکه ایا این دستورات و کدها حفظی هستند یا براساس دونستن مفهوم هایی هر کسی میتونه بنویسشون؟(یعنی همچین کدهایی رو باید حفظشون کنی یا اینکه هر شخصی که حتی تا حالا چنین کدی ننوشته باشه میتونه بنویسه فقط کافی موضوعاتی رو از قبل بدونه؟؟))

و اینکه این کدها رو لطفا توضیح بدین

و پیشنهاد دارم اینکار رو با ساخت یک فیلم ساخت برنامه نوت پد توضیح بدین عالی میشه واقعا عالی میشه و بذارین برای دانلود

من خودم با راهنما تونستم نوت پد بسازم و خیلی از کداش سادس

جز همین قسمت های بازکردنفایل دیالوگ و سیو و ... که اینارو توی فیلم خط به خط توضیح بدین


اگر هم احیانا اینکارو نکردین

مشکل من اینکه کدای سیو و بازکردن دیالوگ رو نوشتم ولی زمانب که توی متن تغییری ایجاد میکنم و دکمه قرمز پنجره بستن رو میزنم درخواست ذخیره نمیکنه!


پاسخ باترفلای:

در مورد بخش اول سوال ایشون باید بگم که این مواردی که مطرح کردند، اصالتا دستور به حساب نمی‌آیند. اصلا جز برنامه نویسی سی شارپ هم نیستند. برنامه نویسی سی شارپ صرفا همون کلمه های کلیدی بعلاوه املا و سینتکس (Syntax) هست که چرخه اجرای برنامه رو بوجود میارن. به بیان ساده تر همون دستورهای if ، for ، while ، switch و... بقیه چیزهایی که در سی شارپ از اونها استفاده می کنیم، توابعی هستند که در کتابخانه بزرگ دات نت موجود هستند. از جمله این توابعی که در سی شارپ می توانیم از آنها استفاده کنیم، همین ()OpenFileDialog.Show هست.

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

بنابراین اینچنین دستور هایی جنبه حفظی دارند! و از لحاظ ارتقاع علم برنامه نویسی برای افراد تازه کار، چندان سودمند نیستند! اما سرعت برنامه نویسی و امنیت برنامه را بسیار بالا می برند.

ساختن برنامه ای مثل Notepad ، با استفاده از کنترل های موجود در محیط ویژوال استودیو (دات‌نت) آنچنان کار سختی نیست. اما مثلا اگر بخواهیم برنامه را از صفر بنویسیم، کار سختی را در پیش رو خواهیم داشت. در چنین شرایطی می بایست مثلا کنترل TextBox رو هم خودمان بسازیم! و مثل این هست که چرخ رو بخواهیم دوباره اختراع کنیم!!

در مورد باز کردن فایل و ذخیره آنها پرسیده بودید، باید بگم که OpenFileDialog و SaveFileDialog آنچنان در ذخیره کردن فایل و باز کردن فایل دخالتی ندارند! این متدها فقط یه پنجره رو به کاربر نشون میدن و مسیر فایل رو برای باز کردن و یا ذخیره کردن، از کاربر دریافت می کنند! یعنی فقط با استفاده از این متدها آدرس فایل مورد نظر رو از کاربر دریافت می‌کنیم. برای باز کردن فایل و تغییر در فایل و در نهایت ذخیره فایل، باید از کلاس هایی مثل File یا FileStream استفاده نمائید.

متأسفانه فعلا فرصت تهیه فیلم آموزشی برای نوشتن برنامه Notepad یا هر برنامه دیگری رو ندارم و از این بابت عذر خواهی می‌کنم. اما بزودی آموزش های مفیدی رو در زمینه های کاربردی برنامه نویسی در سایت BFly.ir شروع خواهیم کرد و در مورد این کلاس (Class) ها ببیشتر صحبت خواهیم کرد.

برای اینکه در زمانهایی که بعد از تغییر در متن، با کلیک بر روی دکمه ضربدر بالای پنجره، پیغامی برای ذخیره شدن نشان داده شود، باید یک متغیر پرچم بسازیم و در زمانهایی که تغییری در متن بوجود می آید، پرچم را بالا آوریم و در هنگام بسته شدن برنامه (در رویداد FormClosing) درصورتی که پرچم بالا باشد، پیغامی جهت یادآوری ذخیره سازی به کاربر نشان دهیم. منظور ما از پرچم، چیزی جز یک متغیر نیست. معمولا این متغیر را از نوع Boolean می‌سازند. برای اینکه نشان دهیم که پرچم بالا هست، متغیر بولین رو با true مقداردهی می‌کنیم. و برای نشان دادن پایین بودن پرچم، آن را با false مقدار دهی می نماییم. این متغیر باید بگونه ای تعریف شود که در کل برنامه قابل دسترسی باشد. بنابراین به یک متغیر سراسری یا Global نیاز داریم. با این فرض که این متغیر گلوبال را قبلا ساخته ایم، به کد زیر دقت کنید:

public Boolean flag;

myNotepad_FormClosing(object sender, EventArgs e){
  if(flag==true){
    // نمایش پیغام ذخیره سازی
  }else{
    Application.Exit();
  }
}


نظرات  (۱)

ممنون از پاسختون
و مشکل من پیدا کردن بخش
form closing هست
این کجای برنامه قرار داره دقیقاا؟
پاسخ:
با سلام خدمت شما

روی فرم برنامه کلیک کنید؛ دکمه F4 از صفحه کلید رو بزنید تا پنجره Propeties نمایان شود؛ در بالای این پنجره یک علامت جرقه خواهید دید، که باید روی آن کلیک کنید تا بتوانید لیست کاملی از همه رویدادهای مربوط به فرم رو ببینید. در این لیست، رویداد FormClosing رو پیدا کرده و روی آن دابل‌کلیک کنید تا بتوانید برنامه دلخواه خودتون رو برای این رویداد بنویسید.
برای اینکه بتونید دوباره بخش مربوط به Properties رو ببینید، روی دکمه سمت چپ همون جرقه که شکلی شبیه یک لیست داره کلیک کنید.

با تشکر از شما
موفق باشید
یاعلی

ارسال نظر

لطفا اگر می خواهید در بخش نظرات، کد برنامه مورد نظر خود را بنویسید، قسمت زیر (Program Code) را کپی کرده، و در کادر "پیام" ، paste کنید. سپس برنامه مورد نظر خود را در کادری که ایجاد می شود، وارد کنید.

  • کلید میانبر برای Copy کردن: Ctrl+C

  • کلید میانبر برای paste کردن: Ctrl+V

//Program Code

از همکاری شما کمال تشکر را دارم.

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