اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۴۷ مطلب با موضوع «برنامه نویسی :: #C :: مقدمه ای بر سی شارپ» ثبت شده است

  • ۲
  • ۰

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

باسلام...

در جلسه قبل یکی از مهمترین ساختار های برنامه نویسی (ساختار شرطی if..else) رو بررسی کردیم. با عملوندها و عملگرها آشنا شدیم. امیدوارم درس قبل رو بخوبی متوجه شده باشید.

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

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

به ساختارهای تکرار، حلقه هم می گویند.

یکی از ساختارهای مهم تکرار ، ساختار while هست. به شکل کلی این ساختار توجه کنید:

while(Conditional Expression){
    Commands set
}

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

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

سلام دوستان عزیز...

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

قبل از هرچیز اجازه دهید تا در مورد عملگر ، عملوند و عبارت صحبت کنیم. در برنامه نویسی، برخی از جملات هستند که نمی توانیم به آنها بگوییم "دستور" اما برای ما عمل خاصی رو انجام می دهند. خود این جملات از بخش هایی تشکیل شده اند که توضیح میدم. به این جملات ، "عبارت" یا Expression می گوییم.

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

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

در این شکل عملگرها رو با چهارضلعی های آبی مشخص کرده ام و عملوندها را با چهارضلعی های قرمز.

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

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

سلام...


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

کامپیوتر تک دستور ها رو یکی پس از دیگری اجرا می کنه. اگر برنامه ای که نوشته ایم مثلا 5 خط باشه، اول خط 1 ، بعد خط 2 ، بعد خط 3 و همینطور تا آخر برنامه دستورات اجرا خواهند شد.

هر دستور در برنامه نویسی به زبان سی شارپ با علامت ; خاتمه پیدا می کنه. به آخر دستور MessageBox.Show دقت کنید. ما با این علامت صرفا به کامپایلر گوشزد می کنیم که این خط از برنامه تمام شده و باید به خط بعدی رفته و دستور بعدی رو اجرا کنه. البته لزومی نداره که خط بعدی دقیقا یک خط بعد باشه. مثلا تمام حالت های زیر با هم مشابه هستند:

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

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

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

در این جلسه قصد دارم در مورد ساختار و اسکلت برنامه صحبت کنم. یعنی می خواهیم بدونیم اون نوشته هایی که در درس های قبل در موردشون توضیح ندادیم چی بودن. البته احتمالا" تا حدودی متوجه شده باشید.

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

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

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

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

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

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

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

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

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

سلام.

حالا که با موفقیت نرم افزار Visual Studio 2010 رو نصب کردید. می خواهیم اولین برنامه رو بنویسیم. در آموزش برنامه نویسی همیشه اولین برنامه، برنامه سلام دنیا (Hello world) رو آموزش می دهند. به نظر من اینکار کاملا بجا و درست هست. در قالب همین برنامه ساده، کلی نکته برای یادگیری وجود داره. حداقلش اینه که یاد می گیریم چطور در اون زبان برنامه نویسی یک پیغام ساده رو به کاربر نشون بدیم. شاید به نظرتون خیلی مسخره باشه! آخه که چی؟! این برنامه چه مشکلی رو حل می کنه! من با شما موافقم! این کار مسخره هست و این برنامه هیچ مشکلی رو حل نمی کنه! اما این همه کار مسخره توی زندگیمون انجام دادیم اینم روش! (البته بعدا" متوجه خواهید شد که اونقدرا هم که فکر می کردید مسخره نیست). خوب دست بکار می شیم...

How to Run visual studio

اول از همه نرم افزاری رو که نصب کردید رو باید اجرا کنید. برای اینکار به منوی Start رفته و از زیر مجموعه All Programs به پوشه Microsoft Visual Studio 2010 رفته و برنامه Microsoft Visual Studio 2010 رو اجرا کنید. آیکن این برنامه بصورت علامت بی نهایت در ریاضی هست.

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

امیدوارم که اون نرم افزاری که بهتون گفته بودم رو تهیه کرده باشید. جهت یادآوری باید بگم که اون نرم افزار Microsoft Visual Studio 2010 هست. قرار بود که در این درس روش نصب این برنامه رو توضیح بدم.

این برنامه، مجموعه ای از کامپایلرها رو دربر داره. شما با همین نرم افزار می تونید به زبان های مختلفی برنامه نویسی کنید. از جمله این زبان ها می توان به ++C و #F و Visual Basic هستند که ما با اون زبان ها کاری نداریم.

دیسک نرم افزار رو داخل درایو قرار دهید. بعد از چند لحظه بصورت خودکار پنجره زیر به نمایش در خواهد اومد. اگه چنین اتفاقی نیوفتاد می تونید روی درایوی که دیسک رو داخلش گذاشتید راست کلیک کنید و گزینه Open رو انتخاب کنید. در پنجره باز شده فایل autorun.exe یا Setup.exe رو اجرا کنید. پنجره زیر فقط با اجرای Setup دیده می شود. با اجرای فایل autorun ممکنه این پنجره رو نبینید. اما نگران نباشید. مطمعنا" دکمه ای در این پنجره برای اجرای پنجره زیر وجود دارد. (کنجکاو باشید)


pic01

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

سلام.

قصد دارم برنامه نویسی #C رو بصورت کاملا" مقدماتی منتشر کنم. قراره این آموزش ها از 0 باشه. اما قول نمی دم که تا 100 بتونم بهتون برنامه نویسی یاد بدم. اون دیگه تلاش و پشتکار خودتون رو می طلبه. این سلسله آموزش ها با همکاری گروه افسران برنامه نویس انجام خواهد گرفت.

خوب زیاد وقت ارزشمند شما رو نمی گیرم و سریع با هم سر اصل مطلب می ریم.

قبل از هر چیز!

قبل از هر بحثی باید تعریفی (مقدماتی و غیر آکادمیک) از برنامه نویسی داشته باشیم. باید بدونیم که برنامه نویسی چیه و قراره با برنامه نویسی چه کار(هایی) انجام بدیم. باید تا حدودی درک خودمون از برنامه نویسی رو تصحیح کنیم.

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

برنامه کامپیوتری در واقع لیستی از دستورالعمل هاست که کامپیوتر موظف به اجرای آنهاست.

شاید شنیده باشید که زبان کامپیوتر 0 و 1 هست. این یک جمله کاملا درست است. با این اوصاف شما باید این زبان رو یاد بگیرید! شما باید توانایی این رو داشته باشید که حرف خودتون رو در قالب 0 ها و 1 ها برای کامپیوتر بیان کنید. اما صبر کنید، دانشمندان علوم کامپیوتر، سالها قبل این کار رو برای ما راحت کرده اند. به این ترتیب که برنامه هایی رو طراحی کرده اند (با همون 0 ها و 1 ها) که زبان انگلیسی (البته نه دقیقا انگلیسی) رو به همون 0 ها و 1 ها تبدیل می کنند. مسلما" یادگیری زبان انگلیسی خیلی خیلی خیلی راحت تر از یادگیری زبان ماشین (همون 0 و 1) هست. دستشون درد نکنه واقعا" که کار ما رو ساده کردند. روحشون هم شاد!

به برنامه ای که زبان خاصی رو به زبان ماشین تبدیل میکنه، اصطلاحا Compiler (مترجم) می گن. چی میگن؟ کامپایلر!!

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

عبارت های لامبدا (Lambda Expressions)

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

در نگارش متدهای بی‌نام، کلمه کلیدی delegate مازاد بر احتیاج است؛ به این علت که خود کامپایلر می بیند که شما درحال انتساب متد به delegate هستید. شما می توانید با انجام کارهای زیر، بسادگی، یک متد بی‌نام را به یک عبارت لامبدا تبدیل کنید:

  • کلیدواژه delegate را حذف کنید.
  • عملگر لامبدا ( <= ) را مابین لیست پارامترها و بدنه متد بی نام قرار دهید. عملگر لامبدا بصورت "می رود به" (goes to) خوانده می‌شود.

تکه کد زیر این تبدیل را نشان می دهد. خط اول یک متد بی نام را که به متغیر del انتساب داده شده را نشان می دهد. خط دوم همان متد بی نام را بعد از آنکه به عبارت لامبدا تبدیل شده را نشان می دهد که به متغیر le1 منتسب شده است.

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

متدهای بی‌نام

تا اینجا، شما دیده اید که می‌توانید از متدهای نمونه یا متدهای استاتیک برای نمونه سازی delegate استفاده کنید. در هرصورت، متد بخودی خود می‌تواند از قسمت های دیگر کد بصورت صریح فراخوانی شود و البته باید عضوی از یک کلاس یا ساختار باشد.

اگر متد تنها برای نمونه سازی delegate استفاده شده باشد چطور؟ در چنین شرایطی، بجز اینکه به نیازمندی های نحوی و املائی برای ساختن delegate احتیاج داریم، در واقع نیازی به ساختن یک متد با نام جداگانه وجود ندارد. متدهای بی نام به شما اجازه می‌دهند که از ساختن متدهای نامدار بیهوده جلوگیری کنید.

  • یک متد بی نام، متدی است که در محل نمونه سازی delegate ، اعلان می‌شود.

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

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