اثر پروانه ای

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

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

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

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

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

تفاوت Console Application و Windows Form Application

دوشنبه, ۲ تیر ۱۳۹۳، ۰۷:۰۵ ب.ظ

سلام.

قصد دارم در این مطلب در مورد برنامه نویسی Console Application و Windows Form Application صحبت کنم. می خوام تفاوت های جزئی این دو روش برنامه نویسی رو برای شما خواننده عزیز، مشخص کنم. به احتمال زیاد، شما بعد از مطالعه این مطلب، بسیاری از مشکلات خودتون در برنامه نویسی رو حل شده، خواهید یافت. (چ جمله بندی ای :)  )

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

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

یه عده از برنامه نویسان خوش ذوق هم بودند که، با استفاده از همین متن و نوشته ها (کاراکترها)، سعی می کردند که یه محیط جذاب تری رو بوجود بیارن. حالا اون بندگان خدا چقدر به خودشون زحمت می دادند و اینکه آیا الآن (در زمان ما) رضایت شما رو جلب می کنند یا نه؛ بماند :)

مثلا یه همچی محیطی: (خوبه؟!)


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


برنامه نویسی به روش کنسولی، خیلی ساده هست. چون برنامه خط به خط اجرا میشه و (تقریبا) تنها دستور خروجی، دستور زیر هست:

Console.WriteLine("Hello");

شما فقط با همون صفحه سیاه و بدترکیب سروکار دارید. بنابراین دستوری جز همین دستور وجود نداره. به همین علت بنده همیشه ترجیح میدم به هنرآموزان برنامه نویسی، (در جلسات اولیه) کنسول اپلیکیشن رو آموزش بدهم. شاید شما هم وقتی در مورد برنامه نویسی ویندوز فرم (در سطور بعدی) صحبت کنم، به همین نتیجه برسید.
برنامه نویسی به روش ویندوز فرم، کمی پیچیده هست. به نظرم یکی از مهم ترین علت های این قضیه این باشه که شما فقط با یک خروجی سر و کار ندارید. برنامه شما ممکنه ده ها خروجی داشته باشه. اما کافیه که بدونید چطور با این همه خروجی تعامل داشته باشید. برای مثال ممکنه برنامه شما دارای چندین TextBox ، چند ListBox و دکمه ها و... باشه. طبیعیه که نتونیم فقط با یک دستور، همه ی این خروجی ها (و ورودی ها) رو کنترل کنیم.
اجازه دهید برنامه محاسبه فاکتوریل را در هر دو روش، بررسی کنیم؛ تا با این تفاوت ها بیشتر آشنا شوید.
به کد زیر دقت کنید. این برنامه یک عدد را از ورودی گرفته و پس از محاسبه فاکتوریل آن عدد، نتیجه را در خروجی نمایش خواهد داد. درست حدس زدید. این برنامه به روش Console Application نوشته شده.

using System;
using System.Collections.Generic;
using System.Text;

namespace Factorial1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int f = 1;
            for (int i = 1; i <= n; i++)
            {
                f *= i;
            }
            Console.WriteLine("{0:5}! = {1:15}",n,f.ToString());
            Console.ReadKey();
        }
    }
}

کدی که در بالا می بینید، کل برنامه Console Application برای محاسبه فاکتوریل عدد n در سی شارپ بود.
حالا به ساختار همین برنامه در Windows Form Application دقت کنید:
ابتدا یک پروژه Windows Form Application می سازیم. بعد فرم برنامه رو بصورت زیر طراحی می کنیم. البته این طراحی ظاهر برنامه، کاملا به سلیقه شما بستگی داره.



روی دکمه دابل کلیک می کنیم تا بتونیم برای رویداد Click اون برنامه نویسی کنیم. در نهایت کد برنامه به شکل زیر در میاد:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace factoral2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int n = Convert.ToInt32(textBox1.Text);
            int f = 1;
            for (int i = 2; i <= n; i++)
            {
                f *= i;
            }
            label2.Text = String.Format("{0:5}! = {1:15}", textBox1.Text, f.ToString());
        }
    }
}

البته یادتون باشه که این کد، تمام کدی نیست که برای نوشتن برنامه محاسبه فاکتوریل به روش Windows Form Application نوشته شده. بسیاری از کدها رو خود ویژوال استودیو تولید می کنه و احتمالا شما بی خبر بوده اید. اما در این پست بحث ما بر روی اون کدهایی که بصورت اتوماتیک توسط ویژوال استودیو تولید میشن نیست.
به برنامه دقت کنید...

  • این برنامه زمانی محاسبه فاکتوریل را شروع می کند که کاربر روی دکمه "محاسبه" کلیک کرده باشه. در نسخه کنسولی این برنامه، کاربر یک عدد را وارد می کرد و بعد از فشار دادن کلید Enter ، برنامه، محاسبه فاکتوریل را شروع می کرد.
  • در این برنامه کاربر باید عدد مورد نظر خود را در TextBox وارد کند. ما می تونستیم بجای تکست باکس، کنترل های دیگری مثل NumericUpDown قرار دهیم؛ یا اینکه مثل برنامه ماشین حساب ویندوز، برای ورود اعداد، از دکمه ها استفاده کنیم و...
    اما در برنامه کنسولی، برنامه هیچ کار دیگری بجز انتظار برای ورود عدد، انجام نمی دهد و تنها راه وارد شدن عدد، همان راه است. (هرچند راه که زیاده؛ اما کی میره اون همه راه رو؟!)
  • در این برنامه، خروجی را در Label2 به نمایش در آوردیم؛ سلیقه ای هست دیگه! شما می تونید نتیجه رو در یک TextBox دیگه نشون بدید، یا اگر دوست نداشتید روی دکمه نمایش بدید (کلمه "محاسبه" که روی دکمه نوشته شده، به جواب فاکتوریل تبدیل بشه). این درحالی است که در حالت کنسول اپلیکیشن، ما راهی جز نمایش نتیجه برنامه در همان صفحه سیاه نداشتیم.

به قول سایت ویکی پدیا، این مقاله خورد و خمیر هست :)
شما با سوالات و نظرات خودتون به جون گرفتنش کمک کنید.
موفق باشید.
یاعلی

نظرات  (۷)

عالی بود عالی
خیلیییییییییی مفید ممنووووووووووون
  • فاروق کریمی زاده
  • سلام. یه سوال داشتم. چطور میتونم اون نیمه گرافیکی رو با سی شارپ بسازم؟
    پاسخ:
    اگر از روش معمول عمل کنید، می توانید از قسمت Solution Explorer فرم برنامه را ببنید که با نام Form1.cs ذخیره شده که در کنار آن یک مثلث کوچک دیده می شه؛ روی این مثلث کلیک کنید تا زیرمجموعه آن را ببینید. در زیر مجموعه Form1.cs موردی به نام Form1.Designer.cs خواهید دید. آنرا باز کنید. تمام کدهایی که باعث بوجود آمدن نیمه گرافیکی برنامه می شوند، را در آنجا خواهید دید. شما می توانید به تقلید از همین کدها، خودتان نیمه گرافیکی خود را بسازید. حتی شما می توانید در قسمتی که نیمه منطقی برنامه را می نویسید، اقدام به نوشتن کدی کنید که گرافیک فرم را بسازد. برای مثال شیئ Button را نمونه سازی کنید و مکان آنرا از طریق تغییر خصوصیات این شیئ مشخص کنید و آنرا به لیست کنترل های موجو در فرم اضافه کنید. آموزش این کار خود نیاز به مقاله ای مفصل خواهد داشت که خوشبختانه قبلا در سایت قرار گرفته. شما می توانید این آموزش را از لینک زیر مطالعه بفرمایید:

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

    چیز ردیفی بود

    کلا سایت با حالیه!!!!!!!!!!!!!

    پاسخ:
    نوش جون :)
  • فرهاد سولاری
  • به نظر من اول کار با نیمه گرافیکی و بعد کار با متنی حال میده.
    ولی ساخت یه برنامه یه خورده بزرگتر مثلا ماشین حساب با گرافیکی راحت تره.
  • آرین نرم افزار
  • خیلی مفید بود

    من هنوز تو کف گرافیک اون FreeDOS Edit ام D:
    پاسخ:
    آره! آخر گرافیکه :)

    ارسال نظر

    لطفا اگر می خواهید در بخش نظرات، کد برنامه مورد نظر خود را بنویسید، قسمت زیر (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="">
    تجدید کد امنیتی