اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

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

  • ۱
  • ۰

کلاس ها و ساختارها (Struct) دو تا از زیربناهای اساسی سیستم نوع عمومی (common type system) در دات نت فریم وورک می باشند. هرکدام دراصل یک ساختار داده است که یک مجموعه از داده ها و رفتارهایی که باهم در ارتباط هستند را تحت یک واحد منطقی کپسوله (یعنی در یک واحد مشترک قرار دادن) قرار می دهد. داده ها و رفتارها ، در واقع "اعضای" کلاس و struct هستند و شامل متدها، پراپرتی ها، رویدادها و غیره می شوند؛ که هر یک از این موارد شرح داده خواهند شد.

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

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

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

آرایه ها

یک آرایه ، نوعی ساختار داده است که شامل چندین متغیر از نوع مشابه است. آرایه ها با یک نوع اعلان می شوند:

type[] arrayName;

مثال زیر آرایه تک بعدی، چند بعدی و دندانه ای را می سازد:

class TestArraysClass
{
    static void Main()
    {
        // Declare a single-dimensional array 
        int[] array1 = new int[5];

        // Declare and set array element values
        int[] array2 = new int[] { 1, 3, 5, 7, 9 };

        // Alternative syntax
        int[] array3 = { 1, 2, 3, 4, 5, 6 };

        // Declare a two dimensional array
        int[,] multiDimensionalArray1 = new int[2, 3];

        // Declare and set array element values
        int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

        // Declare a jagged array
        int[][] jaggedArray = new int[6][];

        // Set the values of the first array in the jagged array structure
        jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    } 

معرفی آرایه ها

آرایه ها دارای خواص زیر می باشند:

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

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

// A skeleton of a C# program 
using System;
namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface 
    {
    }

    delegate int YourDelegate();

    enum YourEnum 
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct 
        {
        }
    }

    class YourMainClass
    {
        static void Main(string[] args) 
        {
            //Your program starts here...
        }
    }
}
  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

سایت w3schools.com از بهترین منابع آموزشی برای طراحی و برنامه نویسی تحت وب هست. در این وبسایت شما می توانید با تمامی تکنولوژی های تحت وب آشنا شوید. از جمله مزیت های این سایت نسبت به سایت های دیگر ، سبک آموزشی این سایت است که مطالب را بسیار ساده و با جملاتی کوتاه و با انگلیسی بسیار ساده ای توضیح داده. از مزایای دیگر این سایت به جامعیت آن می توان اشاره کرد. در این سایت همچنین شما می توانید مطالب آموزش داده شده را بصورت برخط آزمایش کنید. البته این قابلیت در نسخه آفلاینی که برای شما تهیه شده با مشکلاتی میواجه هست. اما بقیه قسمت های سایت بخوبی کار می کنند و مشکل خاصی ندارند.


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

نسخه 1.7 مگابایتی سایت w3schools

بله درسته فقط 1.7 مگابایت!

حجم این فایل بعد از خارج شدن از حالت فشرده به بیش از 120 مگابایت تبدیل می شود. لطفا به این نکته توجه داشته باشید که برای باز کردن و از حالت فشرده خارج کردن این فایل به نرم افزار 7z یا winRar نیاز دارید.

دانلود در ادامه مطلب...

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

سایت w3schools یکی از بهترین منابع برای یادگیری مهارت های وب می باشد. که شما می توانید در این سایت با زبان های برنامه نویسی تحت وب از جمله Html ، CSS ، ASP ، PHP و غیره آشنا شوید. در مورد تمام تکنولوژی های وب در این سایت مطالبی موجود هست. در مطلب سایت w3schools را بصورت کامل و البته Offline برای دانلود قرار دادم. شما می توانید حتی بدون اتصال به اینترنت از این منبع بسیار عالی استفاده کنید و از یادگیری خود لذت ببرید. از جمله مزایای این سایت ساده گویی می باشد. بطوری که مفهوم و منظور خود را در چند جمله بیان کرده و از بیان مطالب بی ارزش خود داری کرده و وقت خواننده را هدر نمی دهد.


دانلود

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

کلیدواژه ضمینه ای add برای تعریف دسترسی کننده سفارشی رویداد استفاده می شود. این دسترسی کننده در هنگامی که کد مشتری (client code)   رویداد (event) شما را تقبل می کند، فراخوانی می شود. اگر شما یک دسترسی کننده add سفارشی را تأمین کنید، شما باید دسترسی کننده remove را هم تأمین کنید.

مثال

مثال زیر یک event را نشان می دهد که دارای دسترسی کننده های سفارشی add و remove می باشد. برای مثال کامل مقاله چگونه: پیاده سازی رویدادهای رابط (interface events) مراجعه کنید.

class Events : IDrawingObject
{        
    event EventHandler PreDrawEvent;

    event EventHandler IDrawingObject.OnDraw
    {
        add
        {
            lock (PreDrawEvent)
            {
                PreDrawEvent += value;
            }
        }
        remove
        {
            lock (PreDrawEvent)
            {
                PreDrawEvent -= value;
            }
        }
    }
}

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

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

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

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

این کتاب از سطح مقدماتی تا پیشرفته را پوشش می دهد. لطفا" نظرات و پیشنهادات خود را از طریق پست الکترونیک بنده (simplecsharp@gmail.com) یا وب سایت MyGem.ir قسمت سی شارپ مطرح بفرمایید.


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

دانلود کتاب

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰
"هدف این کتاب آموزش مهارت های اصولی و ساختار زبان برنامه نویسی #C می باشد. اصولا" بیش تر کتاب ها برنامه نویسی را به وسیله متن توضیح می دهند که این روش برای افراد تازه کار خیلی سنگین می باشد، درصورتی که میزان زیادی از مفاهیم برنامه نویسی می توانند با ترکیبی از کلمات و تصاویر و جداول گیرایی بهتری را داشته باشند.
بیشتر ما بصری فکر می کنیم و تصاویر و جداول می توانند ما را در درک بهتر مفاهیم یاری کنند.
در چندین سال آموزش برنامه نویسی ، فهمیده ام که تصاویری را که بر روی وایت بورد رسم می کردم یکی از سریع ترین چیزهایی بوده است که دانش آموزان را در فهم مفاهیمی که قصد آموزش آن را داشتم، کمک می کرده است.
به هرحال تنها تصاویر آموزشی برای تشریح زبان و پایگاه برنامه نویسی کافی نیستند. هدف از کتاب پیدا کردن بهترین ترکیب از کلمات و تصاویر می باشد تا به شما یک درک کامل از زبان بدهد و قابلیت استفاده به عنوان یک مرجع خوب را داشته باشد.
این کتاب برای هرکس که علاقه به یادگیری مباحثی راجع به زبان #C دارد، از برنامه نویسان مبتدی گرفته تا برنامه نویسان حرفه ای که چندین سال با زبان های برنامه نویسی کار کرده اند، نوشته شده است."
چند پاراگراف بالا مقدمه نویسنده کتاب حاضر است که متأسفانه نمی دانم اسم نویسنده محترم این کتاب چیست. اما با نگاهی گذرا به نظرم رسید که کتاب مفیدی باشد. این شد آنرا برای دانلود در وبلاگ قرار دادم. امیدوارم مفید واقع شود.

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

حلقه while

بیان while یک بیان (دستور) یا بلوکی از بیان ها را تا زمانی که عبارت تعیین شده اش به false ارزیابی شود، اجرا می کند.

مثال

    class WhileTest 
    {
        static void Main() 
        {
            int n = 1;
            while (n < 6) 
            {
                Console.WriteLine("Current value of n is {0}", n);
                n++;
            }
        }
    }
    /*
        Output:
        Current value of n is 1
        Current value of n is 2
        Current value of n is 3
        Current value of n is 4
        Current value of n is 5
     */

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

کلیدواژه volatile

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

اصلاحگر volatile معمولا" برای فیلدی که بدون بیان lock توسط چندین ریسمان مورد دسترسی قرار می گیرد، استفاده می شود.

کلمه کلیدی volatile را می توان رو فیلدهایی از نوع های زیر اعمال کرد:

  • نوع های مرجع.
  • نوع های اشاره گر (در یک زمینه نا امن (unsafe contenxt)). توجه کنید که با اینکه اشاره گر خودش می تواند volatile باشد، شیئی که اشاره گر به آن اشاره می کند نمی تواند volatile باشد. به بیانی دیگر، شما نمی توانید "اشاره گر به volatile" اعلان کنید.
  • نوع هایی مثل sbyte، byte، short، ushort، int، uint، char، float و bool.
  • نوع شمارشی ای که نوع پایه آن یکی از نوع های byte، sbyte، short، ushort، int یا uint باشد.
  • پارامتر نوع جنریکی که بصورت نوع مرجع شناخته شده باشد.
  • IntPtr و UIntPtr .

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