-
آموزش جامع الگوریتم و فلوچارت برای شروع برنامه نویسی
سلام دوستان عزیز
در این تایپیک میخوام الگوریتم و فلوچارت رو خدمتتون آموزش بدم .
آموزش ها از اولین قدم تا آخرین قدم هست .
تمام منابع استفاده شده هم آخر آموزش ذکر خواهد شد .
از تمام دوستان و اساتید و مدیران خواهشمندم همکاری لازم را داشته باشند تا به کمک هم تایپیک جامع و مفیدی داشته باشیم .
پسورد فایل ها هم همشون ashiyane.org هست و منبع اموزشها هم همین سایت هست
-
الگوریتم
تقریبا همه ما روزانه کارهایی انجام میدهیم که از نظام خاصی پیروی میکنند ، مانند چگونه رفتن به محل کارمان ، روش تهیه یک نوع غذای خانگی یا یادگیری یک موضوع خاص .
به نمونه ای از تهیه یک غذای خانگی توجه کنید :
تهیه مواد اولیه ، اندازه مصرفی مواد اولیه ، حرارت شعله گاز و ...
به این گونه روش کار الگوریتم می گویند .
الگوریتم به معنی تشریح دقیق و کامل مراحل مختلف و نحوه انجام دادن یک کار بخصوص است .
نام الگوریتم برگرفته شده از نام ریاضیدان و منجم ایرانی قرن دوم هجری ابوجعفر محمد بن موسی الخوارزمی است .
برای بهتر متوجه شدن مفهوم الگوریتم مثالی را در نظر میگیریم :
اگر بخواهیم بین تعدادی عدد ، بزرگترین را پیدا کنیم ، بزرگترین آنها را پیدا کنیم چگونه عمل میکنیم؟؟
شاید به نظر برسد که کار ساده ای است و با نگاه کردن به مجموعه اعداد میتوان بزرگترین آنها را انتخاب کرد . اما اینکار همیشه ممکن نیست زیرا اگر تعداد اعداد بسیار زیاد باشد این روش کار ساز نخواهد بود .
احتمالا این فکر هم به نظر برسد که که یکبار تمام اعداد را از ابتدا تا انتها بررسی میکنیم و در هر لحظه به خاطر بسپاریم که بزرگترین عددی که تا کنون باهاش برخورد کرده ایم آن را به جای عدد بزرگنر قبلی به خاطر میسپاریم و در غیر اینصورت ، بدون تغییر دادن عدد به خاطر سپرده شده ، به بررسی خود ادامه میدهیم . این روش را می توان به صورت مجموعه ای از دستور العمل های منظم بیان کرد .
-
درس اول
تعریف الگوریتم
الگوریتم دستور العملی برای حل مساله است که دارای شرایط زیر باشد :
1-به زبان دقیق گفته شود .
2-جزئیات کامل حل مساله را داشته باشد .
3-ترتیب مراحل آن مشخص باشد .
4-شرط خاتمه عملیات مشخص باشد .
زبان دقیق : به این علت لازم است که اجرای الگوریتم درست به همان صورتی که مورد نظر نویسنده الگوریتم است صورت گیرد .
جزئیات کامل : به این علت لازم است که در طول اجرای الگوریتم عوامل ناشناخته ای پیش نیایند .
به مثال زیر توجه کنید :
ممکن است برای محاسبه اضافه کاری کارکنان یک اداره فرمول زیر ارائه شود :
دستمزد ساعتی اضافه کار × (تعداد ساعت موظف - تعداد ساعت کار ) = اضافه کاری
در این فرمول وضعیت تعداد ساعت کار و تعداد ساعت موظف معلوم است و روش محاسبه
“ دستمزد ساعتی اضافه کار” مشخص نیست . یعنی عامل “ دستمزد ساعتی اضافه کار” شناخته شده نیست . لذا این فرمول جوابگوی محاسبه اضافه کاری کارکنان نیست . مگر اینکه وضعیت این عامل نیز مشخص شود .
اگر فرض کنیم که دستمزد ساعتی اضافه کار به صورت زیر محاسبه گردد ، آنگاه اضافه کاری کارکنان قابل محاسبه می شود :
3/2 × دستمزد ساعتی حقوق = دستمزد ساعتی اضافه کار
ترتیب مراحل : اگر ترتیب مراحل الگوریتم را مشخص نکنیم ممکن است در هر بار اجرای الگوریتم دستورات گوناگون و متفاوتی اجرا شوند و نتایج متفاوتی را شاهد باشیم .
شرط خاتمه الگوریتم : اگر این شرط را رعایت نکنیم انجام عملیات هیچ گاه خاتمه نمی یابد و الگوریتم به مدت نامحدودی اجرا می شود .
-
طراحی الگوریتم برای مسئله :
الگوریتم ها برای حل مسئله نوشته میشوند . مشکل ترین بخش حل مسئله ، طراحی الگوریتم برای آن است . در طراحی الگوریتم ، ابتدا تمام مراحل کلی انجام کار را مشخص میکنیم و با حل هر مرحله اصلی ، کل مسئله حل می شود . تقریبا تمام الگوریتم ها مراحل زیر را دارا هستند :
1- خواندن داده ها
2- انجام محاسبات
3- چاپ نتایج
هر مرحله از الگوریتم با بررسی دقیق ممکن است به بخشهای کوچکتری نیز تقسیم شود . به عنوان مثال ، مرحله انجام محاسبات یک مرحله کلی است که با پرداختن به مسئله ، به روابط ریاضی تبدیل می شود که مسئله را حل می کند . اصولا برای حل یک مسئله و طراحی الگوریتم برای آن ، موارد زیر باید مشخص شوند :
1- تعریف دقیقی از مسئله جهت مشخص کردن نیازمندیهای آن
2- ورودی های مسئله
3- خروجی های مسئله
4- بررسی راه حل های مختلف مسئله
5- رابطه بین ورودی ها و خروجی های مسئله
6- انتخاب یک راه حل مناسب و تهیه الگوریتم برای آن راه حل
7- اشکال زدایی و رفع اشکال الگوریتم
برای آشنایی با حل یک مسئله و طراحی الگوریتم آن ، مثالی را در نظر میگیریم :
دانشگاهی برای هر ترم شهریه ثابتی که در طول تحصیل دانشجو است دریافت می کند .
اگر میزان شهریه ثابت مشخص باشد ، دانشجو در مدت 4 ترم چه مبلغی باید پرداخت کند؟؟
ورودی های مسئله : میزان شهریه ثابت برای هر ترم
خروجی های مسئله : مبلغ شهریه ثابت پرداختی در ازای 4 ترم ( یعنی مبلغ کل )
رابطه بین ورودی ها و خروجی های مسئله :
4 × شهریه ثابت ترم = مبلغ کل
در این مثال ، تشخیص ورودی ، خروجی و رابطه بین آنها خیلی ساده است ولی ممکن است همیشه به این سادگی ها نباشد و مستلزم فرض ها و تسهیلات خاصی باشد .
-
مجری الگوریتم
الگوریتم های نوشته شده می توانند توسط افراد یا ماشین اجرا شوند و منظور از اجرای الگوریتم
دنبال کردن کلیه دستورات الگوریتم و اخذ نتیجه دلخواه است . اگر مجری الگوریتم ماشین باشد آن را کامپیوتر می گویند . مجری الگوریتم بعضی از اعمال را از قبل می داند و بعضی دیگر را
نمی داند . به عنوان مثال ، ممکن است مجری الگوریتم مفهوم جمع و تفریق را بداند و مفهوم باقیمانده یک تقسیم را نداند . لذا نویسنده الگوریتم باید از چیزهایی که مجری الگوریتم می داند آگاه باشد و هیچ گونه فرضی را در مورد مجری الگوریتم منظور نکند .
روش های بیان الگوریتم
الگوریتم ها را می توان به چند صورت مختلف کرد که 3 مورد از آن را بیان می کنیم :
1- بیان الگوریتم با جملات فارسی
2- بیان ریاضی الگوریتم
3- بیان الگوریتم توسط شکل ها
حالا به ترتیب با مثال ذکر خواهیم کرد :
بیان الگوریتم با جملات فارسی
در این روش الگوریتم ها بدون استفاده از نمادهای خاصی ذکر می شوند . به مثال زیر توجه کنید :
الگوریتمی که مجموع دو عدد را محاسبه می کند
1- اولین عدد را انتخاب کرده ، بر روی کاغذ بنویسد
2- دومین عدد را گرفته ، آن را زیر عددی که بر روی کاغذ نوشتید بنویسد
3- دو عدد روی کاغذ را با هم جمع کنید ، زیر آن دو عدد بنویسید
4- سومین عددی که بر روی کاغذ نوشته شد ، مجموع دو عدد است
5- پایان
مثال 2
الگوریتمی که از بین 3 عدد بزرگترین عدد را پیدا می کند .
1- اولین عدد را به عنوان بزرگترین عدد انتخاب کن و روی کاغذ بنویس
2- عدد دوم را با عدد روی کاغذ مقایسه کن ، اگر از عدد روی کاغذ بزرگتر بود ، آن را به عنوان بزرگترین عدد یادداشت کن
3- اگر عدد سوم ، از عددی که به عنوان بزرگترین انتخاب شد ، بزرگتر باشد ، آن را به عنوان بزرگترین عدد یادداشت کن
4- عدد روی کاغذ بزرگترین عدد است
5- پایان
-
بیان ریاضی الگوریتم
الگوریتم هایی که تا کنون مطرح شدند ، به زبان فارسی بیان شدند . نوشتن الگوریتم به زبان فارسی دارای دو اشکال عمده است :
1- الگوریتم ها طولانی می شوند
2- از دستورات الگوریتم تفسیرهای متفاوتی می شود
در این قسمت از آموزش سعی میکنیم مقدماتی را فراهم کنیم که الگوریتم را به جملات ریاضی بیان کنیم . زبان ریاضی زبان دقیق تری نسبت به زبان فارسی است . البته ناگفته نماند بیان ریاضی الگوریتم تنها راه بیان دقیق مراحل الگوریتم نیست و روش های دیگری وجود دارند که در ادامه به آموزش آنها هم خواهیم پرداخت . در بیان ریاضی الگوریتم با نمادهایی سر و کار داریم . این نمادها ، محلهای ذخیره ورودی ها و خروجی های الگوریتم هستند . این نماد ها را متغییر می نامیم . به عبارت دیگر می توان متغییر را این گونه تعریف کرد : متغییر نامی است که به کمیتی داده می شود و مقدار آن ممکن است در طول اجرای الگوریتم تغییر کند . به عنوان مثال ، در الگوریتم مربوط به بزرگترین عدد ، عدد بزرگتر یک عامل مهم است و باید نامی برای آن انتخاب شود . نامگذاری برای متغیر با ترکیبی از حروف a تا z و ارقام 0 تا 9 انجام می شود . نام متغیر باید با یکی از حروف شروع شود . حداکثر طول نام متغیر در این آموزش 6 فرض می شود . نمونه هایی از اسامی متغیرها عبارتند از : find , average , money , m , y , x1 , sum در نامگذاری متغیرها ، تفاوتی بین حروف کوچک و بزرگ وجود ندارد .
-
مثال 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- علامت = به معنی حکم انتساب است و مقدار سمت راست را در متغیر سمت چپ قرار
می دهد .
لینک علامت جهت سمت چپ هست که آپ کردم .
-
بیان الگوریتم توسط شکل ها
همانطور که در مثال های بالا دیدید در بیان ریاضی الگوریتم ، مراحل الگوریتم به صورت
دستور العمل های متوالی تنظیم می شوند . وقتی الگوریتم طولانی باشد و یا پیچیدگی الگوریتم بیشتر شود ، دنبال کردن مراحل الگوریتم دشوار می شود .
بیان الگوریتم توسط شکل ها ، به روش های متفاوتی امکان پذیر است . یکی از این روش ها فلوچارت ( flowchart ) نام دارد که به آن نمودار گردشی نیز می گویند . این روش مورد بررسی قرار می دهیم . در ضمن روش دیگر بیان الگوریتم توسط شکل ها ، نمودار ns است که در مبحث های آینده مورد بررسی قرار می دهیم .
دیگه یواش یواش مراحل ابتدایی داره تموم میشه
-
در ادامه آموزشها میریم سراغ فلوچارت :
برای درک بهتر شکل ها فایل پی دی اف درست کردم . از این لینک دانلود کنین . در ضمن استقبال خیلی کمه دوستان . الگوریتم و فلوچارت یه مبحث خیلی کاربردی و مفیده تو برنامه نویسی .
ALGORITHM BY TSAM.pdf
-
با سلام خدمت دوستان عزیز و گرامی :
بقیه آموزشها رو با هم ادامه میدیم ، برای درک بهتر مطالب یک فایل پی دی اف درست کردم . از این به بعد هم ادامه آموزشها در فایلهای پی دی اف خواهد بود . موفق باشید .
ALGORITHM 3 BY TSAM.pdf
برچسب برای این موضوع
مجوز های ارسال و ویرایش
- شما نمی توانید موضوع جدید ارسال کنید
- شما نمی توانید به پست ها پاسخ دهید
- شما strong>نمی توانید فایل پیوست ضمیمه کنید
- شما نمی توانید پست های خود را ویرایش کنید
-
قوانین انجمن