اثر پروانه ای

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

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

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

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

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

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


دانلود
حجم: 36.9 کیلوبایت
توضیحات: سورس برنامه محاسبه ابجد یا حساب جمل


با «حساب ابجد» آشنا شویم!

در حساب ابجد هر یک از حروف عربی نماینده عددی است که عبارتند از :

ابجد - هوز - حطی - کلمن - سعفض - قرشت - ثخذ - ضظغ . 

شماره هر یک ز این حروف چنین است :

الف=1، ب=2، ج=3، د=4، ه=5، و=6، ز=7، ح=8، ط=9، ی=10، ک=20، ل=30، م=40، ن=50، س=60، ع=70، ف=80، ض=90، ق=100، ر=200، ش=300، ت=400، ث=500، خ=600، ذ=700، ض=800، ظ=900، غ=1000  .

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

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

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

104=30+ 4 + 70 = عدل      1220 = 200 + 80 + 900 + 40 = مظفر

بنابراین (عدل مظفر) برابر 1324 = 104 + 1220  خواهد بود .

یکی از شاعران نیز راجع به فوت شاعر قرن هفتم، سعدی شیرازی گفته است :

همـای روح پـاک شـیخ سـعدی      بـه سـوی قصـر جنت گشـت رقاص

چو پرسیدم زفوت او، خرد گفت      زخاصان بود، از آن تاریخ شد خاص

در اینجا می بینیم که کلمه ی «خاص» دقیقاً مساوی با سال وفات سعدی یعنی 691  قمری است :  

 691 = 90 + 1 + 600 = خاص

شاعر دیگر نیز در مورد تاریخ بنای «چهارباغ» اصفهان گفته است : 

عجب چهارباغیست عشرت افزای      گرش ثانی خلد گویند شاید

چو تـــاریخ آن دل طلب کــرد گفتم       نهالش بکـام دل شـه بــرآید 

386 = 300 + 30 + 1 + 5 + 50 = نهالش

63 = 40 + 1 + 20 + 2 = بکام

339 = 5 + 300 + 30 + 4 = دل شه

217 = 4 + 10 + 1 + 200 + 2 = برآید

که جمع اعداد فوق رقم سال 1005  می باشد .

حسن ختام این مطلب تدادی از نامهاست که عبارتند از :

92 = 4 + 40 + 8 + 40 = محمد

110 = 10 + 30 + 70 = علی

118 = 50 + 60 + 8 = حسن

128 = 50 + 10 + 60 + 8 = حسین


منبع: رزینا

سلام.

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

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


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

سلام...

چطور میتونم تو محیط 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

سوال: برنامه‌ای بنویسید که ابتدا تعداد عناصر یک آرایه را از ورودی دریافت کرده سپس اعداد آرایه را از ورودی بگیرد. اگر عدد تکراری وارد شد پیغام تکراری بودن دهد.

برای نوشتن این برنامه، یک متد به نام isTekrari ساخته‌ایم. کار این متد جستجو در آرایه و پیدا کردن یک عدد خاص است. اگر این عدد در آرایه پیدا شود، متد مقدار true برمی‌گرداند و در غیر اینصورت false. این متد، یک آرایه و یک عدد را به عنوان آرگومان های ورودی خود، دریافت می‌کند.

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

به لیست برنامه دقت کنید:

using System;

namespace qa01
{
    class Program
    {
        static bool isTekrari(int[] a, int b)
        {
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i]==b)
                {
                    return true;
                }
            }
            return false;
        }
        static void Main(string[] args)
        {
            int n=0, inp=0;
            int.TryParse(Console.ReadLine(), out n);
            int[] ar=new int[n];
            for(int i=0;i<n;)
            {
                int.TryParse(Console.ReadLine(), out inp);
                if (!isTekrari(ar, inp))
                {
                    ar[i] = inp;
                    i++;
                }
                else
                {
                    Console.WriteLine("Tekrari");
                    continue;
                }
            }
            Console.Clear();
            for (int i = 0; i < ar.Length; i++)
            {
                Console.Write("{0} ", ar[i]);
            }

            Console.ReadKey();
        }
    }
}
درصورتی که هر سوالی در رابطه با این برنامه دارید، در قسمت نظرات، مطرح بفرمایید.

سلام

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

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

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

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

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

سلام.

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

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

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

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

مقدمه

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

من، در این مقاله، برخی از الگوریتم‌های مرتب‌سازی را شرح خواهم داد. همه الگوریتم هایی که در اینجا مورد بحث قرار گرفته اند، در زبان برنامه نویسی #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) ، خودش انقلابی در صنعت کامپیوتر و الکترونیک بوده :)

سوال:

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

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


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

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

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