اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۱۵۹ مطلب با موضوع «برنامه نویسی» ثبت شده است

  • ۱
  • ۰

سلام. به نظرم این نرم افزار بهترین نرم افزار برای خواندن و دستکاری فایل های PDF هست که سرعت باز کردن فایل ها در این نرم افزار فوق العاده بالا هست.

یکی دیگه از امکانات این برنامه که واقعا من رو مجذوب خودش کرده اینه که می تونید هر قسمت از کتاب رو که بخواهید انتخاب کرده و کارهای مختلفی روی اون انجام بدید. مثلا" کلمه ای رو به دیکشنری (دیکشنری هایی که قبلا نصب کردید؛ مثل GoldenDict) بفرستید و معنی اون رو مشاهده کنید. یا مثلا قسمتی از متن کتاب رو برای دوستانتون پیامک کنید. یا حتی می تونید متن انتخابی خودتون رو به شبکه های اجتماعی مثل افسران بفرستید.

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

این کار در گوشی های مختلف به روش های گوناگونی انجام می گیرد.

عکس برداری از صفحه گوشی GLX G4 NFC: دکمه Power و کم کردن صدا را همزمان نگهدارید. احتمالا این روش در همه گوشی هایی که روی آنها اندروید 4.1.1 نصب هست جواب میده و نیاز به هیچگونه روت و سوپر یوزر نداره.

گوشی های دیگه (مدلش رو شما بگید): نگهداشتن دکمه Power و انتخاب گزینه ScreenShot.

بعضی از گوشی ها با نگهداشتن دکمه Home و Power عکس می گیرند.

بعضیای دیگه هم کافیه کناره دستتون رو عمود به گوشی قرار داده و از سمت راست به چپ حرکت بدید.


لطفا" تجربه خودتون رو در گوشی های دیگه با ما در میون بگذارید.

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

سلام دوستان...

بدون هیچ معطلی ادامه میدیم...

android create project -n firstProject -t 1 -p c:\firstProject -k ir.blog.butterfly.firstProject -a mainActivity

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

از قسمت اول دستور که کاملا مشخص هست که کار این دستور ساخته یک پروژه جدید اندروید هست.

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

سلام.

امیدوارم به اندازه کافی با بسته برنامه نویسی اندروید که بهش ADT (ابزارهای توسعه اندروید) هم می‌گن وَر رفته باشید!

برای امروز قصد دارم یکسری مقدمات رو بگم که با دونستن اونا حتی کار کردن با وسیله اندرویدیتون براتون جذاب تر میشه، چه برسه به برنامه نویسی برای اون.

برنامه های اندروید درواقع فایل هایی با قالب zip هستند. یعنی اگر پسوند فایل رو که apk هست به zip تغییر بدین و اونو باز کنید متوجه یکسری فایل ها و پوشه ها در داخل این فایل خواهید شد. این فایل ها هرکدام کار خاصی را انجام میدن و هرکدام از پوشه ها محل نگهداری فایل هایی خاص هستند که در حین برنامه نویسی مکررا از آنها استفاده می شود. صد البته این فایل ها مورد نیاز خود برنامه هم هستند. مثلا فرض کنید آیکن برنامه باید یک جایی در داخل خود برنامه ذخیره شده باشد تا برنامه بتواند از آن استفاده کند. حالا می خوام برای شروع اول یک برنامه اندروید رو گیر بیارید و پسوند اونو به zip تغییر بدید و فایل ها و پوشه ها اونو مشاهده کنید.

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

قراره که در تاپیک اندروید به بحث و تبادل نظر در مورد اندروید بپردازیم. خوب بدون فوت وقت میریم سر اصل مطلب...

همونطور که احتمالا می دونید، اندروید یک سیستم عامل متن باز بر پایه لینوکس هست. سیستم عامل هم نرم افزاری هست که مابین کاربر و سخت افزار کامپیوتر (یا هر وسیله کامپیوتری دیگه ای) قرار می‌گیره و باعث میشه تا برنامه نویس ها با سختی های برنامه نویسی برای سخت افزارها مختلف مواجهه کمتری داشته باشند و کاربران عادی از وسیله کامپیوتری خودشون لذت فوق العاده بیشتری ببرند. در کامپیوترهای PC مهمترین سیستم عامل ها، ویندوز و لینوکس هست. اما در میان تلفن های همراه می توان به سیستم عامل های اپل iOS برای گوشی ها اپل (این شرکت همیشه دوست داشته سخت افزار و نرم افزارش متعلق به خودش باشه!!) ، سیمبین که معمولا روی گوشی های نوکیا دیده می شد. (سیستم عامل های دیگه ای هم هست که بیخیال)

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

ما در این سلسله تاپیک ها بر روی برنامه نویسی این سیستم عامل با استفاده از زبان برنامه نویسی جاوا تمرکز می کنیم. هرچند می توان با زبان های دیگری از جمله خانواده C هم برای این سیستم عامل برنامه نویسی کرد.

برای دانلود ابزار مورد نیاز برای برنامه نویسی اندروید به ادامه مطلب بروید...

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

سلام خدمت همه دوستان و همراهان عزیز باترفلای...

مدتی هست که برنامه نویسی اندروید رو شروع کرده بودم، ولی متأسفانه با درگیری‌هایی که بر سر پروژه پایانی پیدا کردم، مجال ادامه ی این کار به من نداد. البته اول قصد داشتم موضوع پروژه ام رو در همین مسیر (اندروید) انتخاب کنم که به علت یکسری بی برنامگی ها، نتونستم این کارو انجام بدم. بگذریم...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

احضار delegate هایی که دارای مقدار برگشتی هستند

اگر یک وکیل دارای مقدار بازگشتی باشد و در لیست احضارش بیش از یک متد موجود باشد، موارد زیر رخ خواهد داد:

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

برای مثال کد زیر یک delegate اعلان می‌کند که دارای مقدار برگشتی از نوع int است. تابع Main یک شیئ از آن delegate ساخته، سپس 2 متد به آن اضافه می‌کند، بعد از آن delegate را در بیان WriteLine فراخوانی کرده و مقدار برگشتی آن را چاپ می‌کند. شکل زیر یک ارائه گرافیکی از کد را نشان می‌دهد.

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

حذف متدها از delegate

شما همچنین می توانید یک متد را با استفاده از عملگر =- از delegate حذف کنید. تکه کد زیر طرز استفاده از این عملگر را نشان می دهد. شکل زیر نتیجه اجرای کد را نشان می دهد.

delVar -= SCl.m3; // Remove the method from the delegate.

پس از حذف متد از delegate شکل بصورت زیر در می آید.

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