اثر پروانه ای

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

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

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

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

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

۱۴ مطلب با موضوع «برنامه نویسی :: #C :: چطور...» ثبت شده است

سلام.

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

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


کیمیا (سوگل) :

سلام...

چطور میتونم تو محیط console برنامه ای بنویسم که عددی را دریافت کرده و زوج بودن آن را تشخیص دهد. برای بخش پذیری عدد ورودی بر 2 از روش بررسی رقم یکان شامل 0 و 2 و 4 و 6 و 8 استفاده کنید من خودم این رو نوشتم ولی وقتی اجرا میزنم چیزی نمیاره؟؟؟؟


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

جدول:

پله های مصرف سی روزه             نرخ ریال

مصرف 0 تا 100                            1364

مازاد بر 100 تا 200                       1426

مازاد بر 200 تا 300                       1488

ممنون میشم کمکم کنید...


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

سلام.

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


omid:

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

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

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

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

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

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

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

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

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


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

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


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

مهرناز: از طریق ODBC میشه به Mysql دوستم متصل بشم؟(روی لپ تاب من هیچ دیتابیسی وجود نداره ولی اگه از این روش استفاده کنم میشه دیتابیس دوستم رو دریافت کنم؟)

جواب سوال شما، "بله" هست و روش اون هم:

بعضی مواقع لازم میشه که به دیتابیس MySQL بصورت از راه دور (Remotely) متصل شویم، تا بتوانیم گزارش ایجاد کنیم، آمارگیری کنیم، یا در ساده ترین حالت، داده ها را دستکاری کنیم. در بسیاری از مواقع نیاز داریم که این کار رو با استفاده از نرم‌افزارهای کاربردی مثل Microsoft Office یا Crystal Report انجام دهیم.

برای اینکه یک پرس‌وجوی (Query) از راه دور از پایگاه‌داده MySQL انجام دهیم، به یک رابط نیاز داریم که به آن ODBC می گویند. ODBC مخفف Open Database Connectivity است. درایور ODBC اساسا" به عنوان یک مترجم بین نرم‌افزارهای مختلف و سیستم مدیریت دیتابیس عمل می‌کند.


روش نصب درایور ODBC

سلام

یکی از پرکاربردترین مفاهیم ریاضی، که در بسیاری از برنامه های کامپیوتری هم مورد استفاده دارد، "بزرگ‌ترین مقسوم‌علیه مشترک" هست که با نام اختصاری "ب.م.م" نیز شناخته شده است. به احتمال زیاد در منابع خارجی با عبارت Greatest Common Divisor یا GCD مواجه شده باشید. البته الگوریتم‌های زیادی (با پیچیدگی های مختلف) برای محاسبه ب.م.م ارائه شده است؛ اما یکی از راه هایی که بسیاری از ما در دوران مدرسه از آن استفاده کرده ایم، روش تقسیم متوالی، یا روش نردبانی هست.

امروز با الگوریتم محاسبه بزرگترین مقسوم علیه مشترک دو عدد و همچنین برنامه آن در زبان برنامه نویسی #C در خدمت شما هستم.

به تصویر زیر دقت کنید:

محاسبه بزرگترین مقسوم علیه مشترک GCD ب.م.م ب م م

در این شکل روش محاسبه ب.م.م دو عدد 12 و 20، نشان داده شده است. 

سلام.

شاید برای شما هم اتفاق افتاده باشه که به اشتباه فایل های با پسوند EXE (که فایل های اجرایی برنامه های مختلف هستند) رو با استفاده از Open with باز کرده باشید. حالا دیگه نمی تونید این اشتباه رو جبران کنید. پس لابد تصمیم گرفتین که ویندوزتون رو دوباره نصب کنید. وااای حالا ویندوز نصب کردن که کاری نداره اما شونصدتا برنامه ای که رو ویندوز باید نصب بشه رو چیکار کنیم و....

اما نگران نباشید. این مسأله هم مثل بسیاری از مسایل دیگه راه حل ساده ای داره.

علاوه بر فایل های اجرایی، این اتفاق برای فایل هایی با پسوند PBK هم می افته. اما شاید بواسطه Open with نباشه. حتما مجموعه فتوشاپ رو نصب کردید.

به هر حال کلید حل مشکل شما پیش ماست...

سوال:

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

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


باترفلای - پاسخ سوال شما:

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

برای نوشتن چنین برنامه ای، تنها یک عدد TextBox کافی به نظر می رسد. البته تأکید می کنم، شما به روشی که بنده در پیش گرفته ام اکتفا نکنید. شاید روش های بهتری هم وجود داشته باشد. سعی کنید خودتون این روش ها رو پیدا کنید.
بله... همونطوری که گفتم با یک TextBox می توان این برنامه رو نوشت. به اینصورت که یک دکمه در کنار TextBox قرار می دهیم و کاری می کنیم که با هر بار فشرده شدن دکمه توسط کاربر، عدد موجود در TextBox با متغیر Sum (این متغیر را خودمان می سازیم. البته باید این متغیر بصورت عمومی تعریف شده باشد) جمع شود.

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

سلام...

پیرو درخواست های مکرر برخی دوستان ، مبنی بر آموزش ساخت رابط کاربری برنامه "8 وزیر" در محیط گرافیکی #C ، تصمیم گرفتم این مطلب رو به همین موضوع اختصاص بدم. البته قطعا این مبحث زود هنگام در بلاگ قرار گرفت و امکان اینکه برای برخی از دوستان مبتدی ، درک این مفاهیم مشکل باشد، وجود دارد. قبلا از بقیه دوستان عذر خواهی می کنم.

ما در این درس قصد داریم برنامه ای بسازیم که در آن 64 شیء PictureBox وجود داشته باشد. هر کدام از این اشیاء دارای خصوصیات و رفتارهای مربوط به خود باشد (متمایز از بقیه اشیاء). اما قرار دادن 64 کنترل (شیئ) PictureBox روی فرم برنامه بصورت دستی و از طریق Toolbox ، کار طاقت فرسایی به نظر می‌رسد. بنابراین راهی جز تولید این 64 کنترل با استفاده از کدنویسی وجود ندارد.

در زبان برنامه نویسی #C دات نت ، با هر چیزی بصورت یک شیئ برخورد می شود. هرچیزی! هر شیئ دارای یک کلاس هست که قالب و طرح کلی آن شیئ را در خود دارد. برای مثال شیئ آچار دارای یک قالب ریخته‌گری است، که با ریختن مواد مذاب در داخل آن ، آچار بوجود می آید.

برنامه نویسی اندروید / درس پنجم

سلام...

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

برای این کار باید یک دستگاه اندرویدی مجازی رو در کامپیوترمون درست کنیم. به این دستگاه ها اصطلاحا AVD یا Android Virtual Device می گوییم. بعد از اینکه یک AVD رو ساختید، کافیه روی دکمه Run (یه دایره کوچولوی سبز رنگ که وسطش یه مثلث سفیده) کلیک کنید. همچنین می تونید دکمه F11 صفحه کلیدتون رو فشار بدید.


روش ساختن AVD:

در نرم افزار Eclipse به منوی Window رفته و گزینه Android Virtual Device Manager کلیک کنید. در پنجره باز شده، در برگه Android Virtual Devices دکمه New را بزنید.

در پنجره Create new Android Virtual Device جلوی AVD Name ، نام وسیله مجازی رو وارد کنید. از لیست بازشو Device یک مورد را بسته به نیاز خود انتخاب کنید. دقت کنید که هرچه رزولوشن وسیله انتخابی شما از این لیست بالاتر باشد نیاز به قدرت پردازشی بیشتری خواهید داشت و برنامه شما ممکن است در سیستم های با قدرت پردازشی پایین، به کندی اجرا شود.

از قسمت Target هم یکی از گزینه ها رو انتخاب کنید. احتمالا اگه از بسته پیشنهادی ما استفاده کرده اید، فقط یک گزینه دارد (Android 4.2 - API Level 17).

بقیه قسمت ها مربوط به شبیه سازی دوربین جلو و عقب دستگاه، تنظیمات مربوط به حافظه SD و RAM دستگاه، تنظیمات مربوط به صفحه کلید و حافظه داخلی می باشند.

برنامه نویسی اندروید / درس چهارم

سلام...

توی درس قبل دستور android create project رو تا اونجایی که لازمش داشتیم توضیح دادم. توی این درس یکسری مطالب پراکنده اما بدرد بخور رو بررسی خواهیم کرد. مثلا اینکه چطور شکل ظاهری برنامه رو دستکاری کنیم. اینکه چطور برای رویداد کلیک یک دکمه برنامه نویسی کنیم. چطور به اجزای برنامه (مثلا دکمه -Button- یا کنترل نمایش دهنده متن -TextView- و...) دسترسی داشته باشیم.

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

رابط (interface) می تواند یک رویداد را اعلان کند. مثال زیر چگونگی پیاده سازی رویدادهای رابطی را در یک کلاس نشان می دهد. بطور مقدماتی قواعد و قوانین کار مانند پیاده سازی متد ها یا پراپرتی های رابطی می باشد.
برای پیاده سازی رویدادهای رابطی در یک کلاس

  • رویداد را در کلاستان اعلان کرده، سپس آنرا در مکان دلخواه فراخوانی کنید.
    namespace ImplementInterfaceEvents
    {
        public interface IDrawingObject
        {
            event EventHandler ShapeChanged;
        }
        public class MyEventArgs : EventArgs 
        {
            // class members
        }
        public class Shape : IDrawingObject
        {
            public event EventHandler ShapeChanged;
            void ChangeShape()
            {
                // Do something here before the event…
    
                OnShapeChanged(new MyEventArgs(/*arguments*/));
    
                // or do something here after the event. 
            }
            protected virtual void OnShapeChanged(MyEventArgs e)
            {
                if(ShapeChanged != null)
                {
                   ShapeChanged(this, e);
                }
            }
        }
    
    }

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