اثر پروانه ای

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

اثر پروانه ای

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

اثر پروانه ای

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

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

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

۴۹ مطلب با کلمه‌ی کلیدی «برنامه سازی» ثبت شده است

  • ۲
  • ۰

مقدمه

به نظرم اولین و مهمترین چیزی که باید بفهمیم اینه که اصلا الگوریتم های مرتب سازی چه هستند. بر اساس ویکی‌پدیا، الگوریتم مرتب سازی، الگوریتمی است که عناصر یک لیست را به ترتیب خاصی در می‌آورد. کاربردی‌ترین ترتیب ها، ترتیب‌های عددی و ترتیب‌های وابسه به حروف هستند. بعضی از الگوریتم‌ها (از جمله الگوریتم‌های جستجو و ادغام) برای اینکه بدرستی کار کنند، نیازمند لیست‌های مرتب شده می باشند؛ مرتب‌سازی مؤثر و کارآمد، برای بهینه سازی کارائی چنین الگوریتم‌هایی، مهم هستند. این اگوریتم‌ها، اغلب اوقات، برای به نظم در آوردن داده‌ها و تولید خروجی قابل خواندن برای انسان، مفید هستند.

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


الگوریتم‌هایی که در این مقاله با آنها آشنا خواهید شد:

  • مرتب سازی حبابی دوطرفه (Bidirectional Bubble Sort)
  • مرتب سازی حبابی (Bubble Sort)
  • مرتب سازی سطلی (Bucket Sort)
  • مرتب سازی شانه ای (Comb Sort)
  • مرتب سازی چرخه‌ای (Cycle Sort)
  • مرتب سازی گورزاد (Gnome Sort)
  • مرتب سازی هرمی (Heap Sort)
  • مرتب سازی درجی (Insertion Sort)
  • مرتب سازی ادغامی (Merge Sort)
  • مرتب سازی زوج-فرد (Odd-Even Sort)
  • مرتب سازی لانه کبوتری (Pigeonhole Sort)
  • مرتب سازی سریع (Quick Sort)
  • مرتب سازی سریع با استفاده از مرتب سازی حبابی (Quick Sort with Bubble Sort)
  • مرتب سازی انتخابی (Selection Sort)
  • مرتب سازی شل یا پوسته ای (Shell Sort)

قصد دارم طرز کار این الگوریتم ها رو بصورت دیداری به شما نشان بدهم. کاربر می تواند، خروجی این پروژه را بصورت تصاویر متحرک GIF، با سرعت دلخواه، ذخیره کند.

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

سلام.

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

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

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

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

با این اپلیکیشن ها در گجت اندرویدی خود، به زبان C و ++C برنامه نویسی کنید:

دانلود C4Droid  دانلود cppDroid

با این اپلیکیشن ها برنامه نویسی Java رو به گوشی اندرویدی خود بیاورید:

دانلود AIDE  دانلود CodeAnyware

از برنامه نویسی Processing اطلاع دارید؟ یک زبان بسیار ساده اما فوق العاده کاربردی برپایه جاوا هست. شما با این اپلیکیشن می تونید با استفاده از تلفن هوشمند اندرویدی خودتون به این زبان، برنامه نویسی کرده و نتیجه برنامه ای که نوشته اید رو بصورت فایل های با پسوند apk (برنامه های قابل نصب در گوشی های دیگر) به دوستان خود بدهید:

دانلود APDE

با استفاده از اپلیکیشن زیر، می توانید به زبان PHP برنامه نویسی کنید:

دانلود PHPRunner


شما هم اگر مورد خاصی مد نظر دارید، در بخش نظرات، مطرح کنید تا به این لیست اضافه کنم.

باتشکر


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

برنامه زیر که به زبان ++C نوشته شده، سری فیبوناچی را چاپ می کند. این برنامه از الگوریتم پویا (دینامیک) استفاده می کند.

سری فیبوناچی بصورت زیر می باشد:

1 1 2 3 5 8 13 21 34 55 89 ...

در سری فیبوناچی، هر عدد، حاصل جمع دو عدد قبل از خود است. مثلا عدد 8 که ششمین عضو این سری است، از حاصل جمع 3 و 5 بدست آمده است.

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

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

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

نظرها، پیشنهادات و انتقادات سازنده شما موجب دلگرمی این حقیر بوده، و مسلّما در بهتر شدن این وبلاگ، مؤثر خواهد بود. متشکرم.


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

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

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

برنامه نویسی خیلی مقدماتی سی شارپ / درس چهارم

برنامه نویسی خیلی مقدماتی سی شارپ / درس پنجم


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

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

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

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

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


برنامه نویسی نیمه حرفه ای سی شارپ / درس یازدهم

برنامه نویسی نیمه حرفه ای سی شارپ / درس دوازدهم

برنامه نویسی نیمه حرفه ای سی شارپ / درس سیزدهم


برنامه نویسی نیمه حرفه ای سی شارپ / درس سیزده و نیم


برنامه نویسی نیمه حرفه ای سی شارپ / درس چهاردهم

برنامه نویسی نیمه حرفه ای سی شارپ / درس پانزدهم (آخر)

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

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

سلام.

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

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

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

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

سلام.

امیدوارم به اندازه کافی تمرین کرده باشید. خوب بدون معطلی به ادامه درس می پردازیم. تا اینجا فقط داریم در مورد خود زبان سی شارپ یه چیزایی (هرچند خیلی ساده و مقدماتی) یاد می گیریم. اما به نظر میرسه برای اینکه بتونیم واقعا برنامه نویس باشیم به چیزی بیش از یادگیری تئوری یک زبان برنامه نویسی نیاز هست و آن هم 3 چیز مهم هست. تمرین تمرین تمرین!!

در این درس می خواهیم در مورد Class ها بیشتر صحبت کنیم. باید بدونیم که برنامه نویسی سی شارپ کلا" بر اساس اشیاء و کلاس ها می باشد، در صورتی که اکثر افرادی که در این زبان برنامه نویسی می‌کنند، با این روش (برنامه نویسی شئ گرا) برنامه نویسی نمی کنند. یعنی ممکن است یک زبان برنامه نویسی ذاتا" شئ گرا باشد، اما یک برنامه نویس کمترین استفاده را از این امکان فوق‌العاده برنامه نویسی داشته باشد. اما قبل از اینکه بتوانیم برنامه ای را بصورت شئ گرا بنویسیم باید اساس این روش برنامه نویسی که همان Class ها هستند را بهتر بشناسیم. قبلا از لحاظ تئوریک با مفهوم کلاس ها و اشیاء آشنا شدیم.

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

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

سلام.

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

پیرو همین انتقادات سازنده، بر آن شدیم تا در آخر هر درس، یک سری تمرین هم قرار دهیم، تا هنرآموزان عزیز علاوه بر Copy و Paste کردن کدها، مهارت حل مسائل برنامه نویسی با استفاده از همین ابزارهایی که تاکنون آموخته اند را کسب کنند. بدیهی است که برنامه نویسی، صرفا با کپی کردن کدها، بدست نمی آید. بنابراین خواهشمندیم سعی کنید خودتان مسائل مطرح شده در انتهای دروس را حل کنید.

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

اجازه دهید کمی در مورد فاکتوریل صحبت کنیم. (هرچند این صحبت، حاشیه ای بر این درس هست) به احتمال زیاد با این تابع ریاضی آشنایی دارید، اما برای عزیزانی که آشنایی ندارند کمی توضیح می‌دهم. فاکتوریل عدد n بصورت زیر محاسبه می شود: 

n! = 1 × 2 × 3 × 4 × ... × n-2 × n-1 × n

به عبارت دیگر، اعداد 1 تا n را در هم ضرب می کنیم.

  • غلامعلی حسینی بهجانی
  • ۲
  • ۰
سلام. دوستانی که در پژوهشسرای دکتر برنا، با من کلاس دارند، دقت کنند که پیشنهاد من برای کامپایلر زبان ++C ، فعلا همون Turbo C++ 4.5 Win هست که می تونید از همینجا دانلود کنید. اما اگر به هر دلیلی مجبور شدید که از کامپایلر دیگری استفاده کنید. احتمالا باید به نکات زیر دقت کنید.
  1. در برخی از کامپایلر ها نیازی به نوشتن پسوند (h.) فایل iostream نیست.
  2. در اکثر کامپایلرها برای اینکه دستورهای cin و cout قابل استفاده باشند، باید دستور
    using namespace std;
    را بعد از آخرین خط include# بنویسید.
  3. در برخی از کامپایلرها خروجی تابع main نباید void باشد، بلکه باید int باشد.
بنابراین برنامه ای که در کلاس با هم کار کردیم، به صورت زیر خواهد بود.
  • غلامعلی حسینی بهجانی
  • ۲
  • ۰

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

سلام...

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

قبلا تا حدودی با "کلاس" و "شئ" آشنایی پیدا کردید. اما لازم هست که چند نکته رو در این مورد گوشزد کنم.

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

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