توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش جامع الگوریتم و فلوچارت برای شروع برنامه نویسی
Borna66
19th July 2012, 10:36
الگوریتم
تقریبا همه ما روزانه کارهایی انجام میدهیم که از نظام خاصی پیروی میکنند ، مانند چگونه رفتن به محل کارمان ، روش تهیه یک نوع غذای خانگی یا یادگیری یک موضوع خاص .
به نمونه ای از تهیه یک غذای خانگی توجه کنید :
تهیه مواد اولیه ، اندازه مصرفی مواد اولیه ، حرارت شعله گاز و ...
به این گونه روش کار الگوریتم می گویند .
الگوریتم به معنی تشریح دقیق و کامل مراحل مختلف و نحوه انجام دادن یک کار بخصوص است .
نام الگوریتم برگرفته شده از نام ریاضیدان و منجم ایرانی قرن دوم هجری ابوجعفر محمد بن موسی الخوارزمی است .
برای بهتر متوجه شدن مفهوم الگوریتم مثالی را در نظر میگیریم :
اگر بخواهیم بین تعدادی عدد ، بزرگترین را پیدا کنیم ، بزرگترین آنها را پیدا کنیم چگونه عمل میکنیم؟؟
شاید به نظر برسد که کار ساده ای است و با نگاه کردن به مجموعه اعداد میتوان بزرگترین آنها را انتخاب کرد . اما اینکار همیشه ممکن نیست زیرا اگر تعداد اعداد بسیار زیاد باشد این روش کار ساز نخواهد بود .
احتمالا این فکر هم به نظر برسد که که یکبار تمام اعداد را از ابتدا تا انتها بررسی میکنیم و در هر لحظه به خاطر بسپاریم که بزرگترین عددی که تا کنون باهاش برخورد کرده ایم آن را به جای عدد بزرگنر قبلی به خاطر میسپاریم و در غیر اینصورت ، بدون تغییر دادن عدد به خاطر سپرده شده ، به بررسی خود ادامه میدهیم . این روش را می توان به صورت مجموعه ای از دستور العمل های منظم بیان کرد .
Borna66
19th July 2012, 10:40
الگوریتم
تقریبا همه ما روزانه کارهایی انجام میدهیم که از نظام خاصی پیروی میکنند ، مانند چگونه رفتن به محل کارمان ، روش تهیه یک نوع غذای خانگی یا یادگیری یک موضوع خاص .
به نمونه ای از تهیه یک غذای خانگی توجه کنید :
تهیه مواد اولیه ، اندازه مصرفی مواد اولیه ، حرارت شعله گاز و ...
به این گونه روش کار الگوریتم می گویند .
الگوریتم به معنی تشریح دقیق و کامل مراحل مختلف و نحوه انجام دادن یک کار بخصوص است .
نام الگوریتم برگرفته شده از نام ریاضیدان و منجم ایرانی قرن دوم هجری ابوجعفر محمد بن موسی الخوارزمی است .
برای بهتر متوجه شدن مفهوم الگوریتم مثالی را در نظر میگیریم :
اگر بخواهیم بین تعدادی عدد ، بزرگترین را پیدا کنیم ، بزرگترین آنها را پیدا کنیم چگونه عمل میکنیم؟؟
شاید به نظر برسد که کار ساده ای است و با نگاه کردن به مجموعه اعداد میتوان بزرگترین آنها را انتخاب کرد . اما اینکار همیشه ممکن نیست زیرا اگر تعداد اعداد بسیار زیاد باشد این روش کار ساز نخواهد بود .
احتمالا این فکر هم به نظر برسد که که یکبار تمام اعداد را از ابتدا تا انتها بررسی میکنیم و در هر لحظه به خاطر بسپاریم که بزرگترین عددی که تا کنون باهاش برخورد کرده ایم آن را به جای عدد بزرگنر قبلی به خاطر میسپاریم و در غیر اینصورت ، بدون تغییر دادن عدد به خاطر سپرده شده ، به بررسی خود ادامه میدهیم . این روش را می توان به صورت مجموعه ای از دستور العمل های منظم بیان کرد .
Borna66
19th July 2012, 11:02
درس اول
تعریف الگوریتم
الگوریتم دستور العملی برای حل مساله است که دارای شرایط زیر باشد :
1-به زبان دقیق گفته شود .
2-جزئیات کامل حل مساله را داشته باشد .
3-ترتیب مراحل آن مشخص باشد .
4-شرط خاتمه عملیات مشخص باشد .
زبان دقیق : به این علت لازم است که اجرای الگوریتم درست به همان صورتی که مورد نظر نویسنده الگوریتم است صورت گیرد .
جزئیات کامل : به این علت لازم است که در طول اجرای الگوریتم عوامل ناشناخته ای پیش نیایند .
به مثال زیر توجه کنید :
ممکن است برای محاسبه اضافه کاری کارکنان یک اداره فرمول زیر ارائه شود :
دستمزد ساعتی اضافه کار × (تعداد ساعت موظف - تعداد ساعت کار ) = اضافه کاری
در این فرمول وضعیت تعداد ساعت کار و تعداد ساعت موظف معلوم است و روش محاسبه
“ دستمزد ساعتی اضافه کار” مشخص نیست . یعنی عامل “ دستمزد ساعتی اضافه کار” شناخته شده نیست . لذا این فرمول جوابگوی محاسبه اضافه کاری کارکنان نیست . مگر اینکه وضعیت این عامل نیز مشخص شود .
اگر فرض کنیم که دستمزد ساعتی اضافه کار به صورت زیر محاسبه گردد ، آنگاه اضافه کاری کارکنان قابل محاسبه می شود :
3/2 × دستمزد ساعتی حقوق = دستمزد ساعتی اضافه کار
ترتیب مراحل : اگر ترتیب مراحل الگوریتم را مشخص نکنیم ممکن است در هر بار اجرای الگوریتم دستورات گوناگون و متفاوتی اجرا شوند و نتایج متفاوتی را شاهد باشیم .
شرط خاتمه الگوریتم : اگر این شرط را رعایت نکنیم انجام عملیات هیچ گاه خاتمه نمی یابد و الگوریتم به مدت نامحدودی اجرا می شود .
Borna66
19th July 2012, 11:06
طراحی الگوریتم برای مسئله :
الگوریتم ها برای حل مسئله نوشته میشوند . مشکل ترین بخش حل مسئله ، طراحی الگوریتم برای آن است . در طراحی الگوریتم ، ابتدا تمام مراحل کلی انجام کار را مشخص میکنیم و با حل هر مرحله اصلی ، کل مسئله حل می شود . تقریبا تمام الگوریتم ها مراحل زیر را دارا هستند :
1- خواندن داده ها
2- انجام محاسبات
3- چاپ نتایج
هر مرحله از الگوریتم با بررسی دقیق ممکن است به بخشهای کوچکتری نیز تقسیم شود . به عنوان مثال ، مرحله انجام محاسبات یک مرحله کلی است که با پرداختن به مسئله ، به روابط ریاضی تبدیل می شود که مسئله را حل می کند . اصولا برای حل یک مسئله و طراحی الگوریتم برای آن ، موارد زیر باید مشخص شوند :
1- تعریف دقیقی از مسئله جهت مشخص کردن نیازمندیهای آن
2- ورودی های مسئله
3- خروجی های مسئله
4- بررسی راه حل های مختلف مسئله
5- رابطه بین ورودی ها و خروجی های مسئله
6- انتخاب یک راه حل مناسب و تهیه الگوریتم برای آن راه حل
7- اشکال زدایی و رفع اشکال الگوریتم
برای آشنایی با حل یک مسئله و طراحی الگوریتم آن ، مثالی را در نظر میگیریم :
دانشگاهی برای هر ترم شهریه ثابتی که در طول تحصیل دانشجو (http://pnu-club.com) است دریافت می کند .
اگر میزان شهریه ثابت مشخص باشد ، دانشجو (http://pnu-club.com) در مدت 4 ترم چه مبلغی باید پرداخت کند؟؟
ورودی های مسئله : میزان شهریه ثابت برای هر ترم
خروجی های مسئله : مبلغ شهریه ثابت پرداختی در ازای 4 ترم ( یعنی مبلغ کل )
رابطه بین ورودی ها و خروجی های مسئله :
4 × شهریه ثابت ترم = مبلغ کل
در این مثال ، تشخیص ورودی ، خروجی و رابطه بین آنها خیلی ساده است ولی ممکن است همیشه به این سادگی ها نباشد و مستلزم فرض ها و تسهیلات خاصی باشد .
Borna66
19th July 2012, 11:10
مجری الگوریتم
الگوریتم های نوشته شده می توانند توسط افراد یا ماشین اجرا شوند و منظور از اجرای الگوریتم
دنبال کردن کلیه دستورات الگوریتم و اخذ نتیجه دلخواه است . اگر مجری الگوریتم ماشین باشد آن را کامپیوتر می گویند . مجری الگوریتم بعضی از اعمال را از قبل می داند و بعضی دیگر را
نمی داند . به عنوان مثال ، ممکن است مجری الگوریتم مفهوم جمع و تفریق را بداند و مفهوم باقیمانده یک تقسیم را نداند . لذا نویسنده الگوریتم باید از چیزهایی که مجری الگوریتم می داند آگاه باشد و هیچ گونه فرضی را در مورد مجری الگوریتم منظور نکند .
روش های بیان الگوریتم
الگوریتم ها را می توان به چند صورت مختلف کرد که 3 مورد از آن را بیان می کنیم :
1- بیان الگوریتم با جملات فارسی
2- بیان ریاضی الگوریتم
3- بیان الگوریتم توسط شکل ها
حالا به ترتیب با مثال ذکر خواهیم کرد :
بیان الگوریتم با جملات فارسی
در این روش الگوریتم ها بدون استفاده از نمادهای خاصی ذکر می شوند . به مثال زیر توجه کنید :
الگوریتمی که مجموع دو عدد را محاسبه می کند
1- اولین عدد را انتخاب کرده ، بر روی کاغذ بنویسد
2- دومین عدد را گرفته ، آن را زیر عددی که بر روی کاغذ نوشتید بنویسد
3- دو عدد روی کاغذ را با هم جمع کنید ، زیر آن دو عدد بنویسید
4- سومین عددی که بر روی کاغذ نوشته شد ، مجموع دو عدد است
5- پایان
مثال 2
الگوریتمی که از بین 3 عدد بزرگترین عدد را پیدا می کند .
1- اولین عدد را به عنوان بزرگترین عدد انتخاب کن و روی کاغذ بنویس
2- عدد دوم را با عدد روی کاغذ مقایسه کن ، اگر از عدد روی کاغذ بزرگتر بود ، آن را به عنوان بزرگترین عدد یادداشت کن
3- اگر عدد سوم ، از عددی که به عنوان بزرگترین انتخاب شد ، بزرگتر باشد ، آن را به عنوان بزرگترین عدد یادداشت کن
4- عدد روی کاغذ بزرگترین عدد است
5- پایان
Borna66
19th July 2012, 11:11
بیان ریاضی الگوریتم
الگوریتم هایی که تا کنون مطرح شدند ، به زبان فارسی بیان شدند . نوشتن الگوریتم به زبان فارسی دارای دو اشکال عمده است :
1- الگوریتم ها طولانی می شوند
2- از دستورات الگوریتم تفسیرهای متفاوتی می شود
در این قسمت از آموزش سعی میکنیم مقدماتی را فراهم کنیم که الگوریتم را به جملات ریاضی بیان کنیم . زبان ریاضی زبان دقیق تری نسبت به زبان فارسی است . البته ناگفته نماند بیان ریاضی الگوریتم تنها راه بیان دقیق مراحل الگوریتم نیست و روش های دیگری وجود دارند که در ادامه به آموزش آنها هم خواهیم پرداخت . در بیان ریاضی الگوریتم با نمادهایی سر و کار داریم . این نمادها ، محلهای ذخیره ورودی ها و خروجی های الگوریتم هستند . این نماد ها را متغییر می نامیم . به عبارت دیگر می توان متغییر را این گونه تعریف کرد : متغییر نامی است که به کمیتی داده می شود و مقدار آن ممکن است در طول اجرای الگوریتم تغییر کند . به عنوان مثال ، در الگوریتم مربوط به بزرگترین عدد ، عدد بزرگتر یک عامل مهم است و باید نامی برای آن انتخاب شود . نامگذاری برای متغیر با ترکیبی از حروف a تا z و ارقام 0 تا 9 انجام می شود . نام متغیر باید با یکی از حروف شروع شود . حداکثر طول نام متغیر در این آموزش 6 فرض می شود . نمونه هایی از اسامی متغیرها عبارتند از : find , average , money , m , y , x1 , sum در نامگذاری متغیرها ، تفاوتی بین حروف کوچک و بزرگ وجود ندارد .
Borna66
19th July 2012, 11:13
مثال 1
الگوریتمی که سه مقدار عددی را از ورودی خوانده ، میانگین آنها را محاسبه می کند . در این الگوریتم باید برای سه مقداری که از ورودی خوانده می شوند ، نامی انتخاب کنیم . نامگذاری برای میانگین و مجموع اعداد نیز لازم است .
1- a وb وc را از ورودی بخوان عدد اول a
2- sum= a + b + c عدد دوم b
3- ave = sum/3 عدد سوم c
4- ave را چاپ کن مجموع اعداد sum
5- پایان میانگین اعداد ave
آنچه که از این الگوریتم می آموزیم :
1- مجری الگوریتم " مفهوم خواندن " را می داند .
2- علامت + به معنی جمع است و مجری الگوریتم مفهوم جمع را می داند .
3- علامت = به معنی حکم انتساب است و مقدار سمت راست را در متغیر سمت چپ قرار
می دهد .
لینک علامت جهت سمت چپ هست که آپ کردم .
Borna66
19th July 2012, 11:14
بیان الگوریتم توسط شکل ها
همانطور که در مثال های بالا دیدید در بیان ریاضی الگوریتم ، مراحل الگوریتم به صورت
دستور العمل های متوالی تنظیم می شوند . وقتی الگوریتم طولانی باشد و یا پیچیدگی الگوریتم بیشتر شود ، دنبال کردن مراحل الگوریتم دشوار می شود .
بیان الگوریتم توسط شکل ها ، به روش های متفاوتی امکان پذیر است . یکی از این روش ها فلوچارت ( flowchart ) نام دارد که به آن نمودار گردشی نیز می گویند . این روش مورد بررسی قرار می دهیم . در ضمن روش دیگر بیان الگوریتم توسط شکل ها ، نمودار ns است که در مبحث های آینده مورد بررسی قرار می دهیم .
دیگه یواش یواش مراحل ابتدایی داره تموم میشه
Borna66
19th July 2012, 11:18
در ادامه آموزشها میریم سراغ فلوچارت :
برای درک بهتر شکل ها فایل پی دی اف درست کردم . از این لینک دانلود کنین . در ضمن استقبال خیلی کمه دوستان . الگوریتم و فلوچارت یه مبحث خیلی کاربردی و مفیده تو برنامه نویسی .
http://www.mediafire.com/?wwib5oum3vw6w9d
Borna66
19th July 2012, 11:31
با سلام خدمت دوستان عزیز و گرامی :
بقیه آموزشها رو با هم ادامه میدیم ، برای درک بهتر مطالب یک فایل پی دی اف درست کردم . از این به بعد هم ادامه آموزشها در فایلهای پی دی اف خواهد بود . موفق باشید .
http://www.mediafire.com/?xng29rr1c4e7mdn
Borna66
19th July 2012, 11:35
سلام مجدد خدمت دوستان . ادامه آموزشها رو دنبال می کنیم . مثال های این درس رو تو قسمت بعد قرار میدم . موفق باشید .
http://www.mediafire.com/?fpn9nltk5js5f8v
Borna66
19th July 2012, 11:39
سلام خدمت دوستان گرامی . مثال های درس قبل رو در این آموزش قرار دادم . موفق باشید .
http://www.mediafire.com/?8ub0nbgua963osp
Borna66
19th July 2012, 11:42
با سلام خدمت همه دوستان گرامی . میریم سراغ ادامه آموزشهامون . حجم آموزش ها هم کمه و دوستان دیال آپی مشکلی واسه دانلود ندارند . موفق باشید .
http://www.mediafire.com/?twgmla4u5191g5k _
Borna66
19th July 2012, 11:45
با سلام خدمت همه دوستان
ادامه آموزشهامون رو دنبال می کنیم . موفق باشید .
http://www.mediafire.com/?agq5pfmcaqocoes
Borna66
19th July 2012, 11:48
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 8
لینک دانلود
http://wdl.persiangig.com/pages/down...M_Part%208.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%208.pdf)
Borna66
19th July 2012, 11:52
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 9
لینک دانلود
http://wdl.persiangig.com/pages/down...M_Part%209.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%209.pdf)
Borna66
19th July 2012, 12:07
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 10
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2010.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2010.pdf)
Borna66
19th July 2012, 12:11
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 11
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2011.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2011.pdf)
Borna66
19th July 2012, 12:16
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 12
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2012.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2012.pdf)
Borna66
19th July 2012, 12:28
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 13
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2013.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2013.pdf)
Borna66
19th July 2012, 12:42
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 14
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2014.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2014.pdf)
__________________
Borna66
19th July 2012, 12:45
سلام مجدد خدمت دوستان .
ادامه آموزشها رو دنبال می کنیم .
آموزش الگوریتم نویسی -قسمت 15 و پایانی
لینک دانلود
http://wdl.persiangig.com/pages/down..._Part%2015.pdf (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_Part%2015.pdf)
Borna66
19th July 2012, 12:53
دانلود کلیه قسمت آموزش بصورت یک فایل از ادرس زیر
http://wdl.persiangig.com/pages/down...THM_15Part.rar (http://wdl.persiangig.com/pages/download/?dl=http://package2shop.persiangig.com/other/algortim/Amozeshe-_ALGORITHM_15Part.rar)
و یا بصورت قسمت به قسمت از لینک زیر
http://package2shop.persiangig.com/other/algortim/
موق باشید
روزگار خوش
vBulletin® v4.2.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.