تعریف الگوریتم
به همراه شما دوستان عزیز در بحث اولیه از آموزش رایگان الگوریتم و فلوچارت به تعریف الگوریتم توجه میکنیم. برای داشتن تعریف جامعی از الگوریتم (Algorithm) بهتر است از فعالیتهای روزمرهی خود شروع کنیم. در زندگی روزمره، شما با مسائل زیادی سر و کار دارید که برای انجام آنها قطعاً باید مراحلی را طی کنید تا به سرانجام برسید.
به این فکر کنید که آیا در زندگی روزمرهی خود روزی را بدون حل مساله گذراندهاید؟ البته که پاسخ این سوال،خیر است. در زندگی، ما با چالشها و مسائلی روبرو هستیم که همهی آنها به نوعی به حل مسئله مربوط میشود. سادهترین و بدیهیترین مثال را درنظر بگیرید که اگر کسی از شما بپرسد الان ساعت چند است؟ دیدن زمان در ساعت شما و گفتن به او نیز نوعی حل مسئله است.
شروع هر صبح آغاز حل مسائل با مراحل مختلف میباشد. بیدار شدن و آماده شدن برای رفتن به مدرسه و دانشگاه و شرکت و غیره. یا ماندن در خانه و انجام کارهای مختلف از قبیل آشپزی و نظافت و غیره. اگر یکی از این مثالها را در نظر بگیرید مانند دستور پخت غذا، دستورالعملها و مراحل را خوانده و آنها را یکی یکی و به ترتیب اجرا میکنید. هیچ مرحلهای نباید خارج از ترتیب خود اجرا شود.
مثلا برای رفتن به دانشگاه در ابتدا حرکت به سمت دانشگاه با وسیلهای یا پیاده انجام میشود و بعد وارد کلاس میشوید به همین ترتیب در تمام فعالیتها دستورالعملهای استاندارد باید به ترتیب اجرا شوند. پس اولین قدم در حل مسائل، نوشتن روشی است که با اجرای یک سری فعالیتهای متوالی ما را به نتایج مورد انتظار برساند. در طول فرآیند حل هر مسالهای فرد سعی میکند تا موارد ضروری را بیابد.
مراحلی که باید به صورت متوالی اجرا شوند. به این ترتیب الگوریتم روشی برای حل مسئله است که با ارائهی رویهی کوچکی یک مسئلهی تکراری را حل میکند. در حالت کلی الگوریتم را میتوان اینگونه تعریف کرد که مجموعهای از قوانین و دستورالعملها که به صورت منطقی و گام به گام برای حل مسئلهای اجرا میشوند تا خروجی دلخواه حاصل شود.
در الگوریتمها ممکن است بیش از یک راه برای حل مسئله وجود داشته باشد، بطور مثال برای رفتن به مدرسه دانشآموزان راههای متفاوتی را انتخاب میکنند، ولی در نهایت همهی آنها به یک مقصد نهایی (مدرسه) میرسند. بنابراین ممکن است بیش از یک الگوریتم برای حل یک مسئله وجود داشته باشد ولی همانطور که انتظار میرود، خروجی یکسان خواهد بود.
ویژگی های یک الگوریتم
- واضح و بدون ابهام: هر کدام از مراحل الگوریتم باید از همه جهات روشن باشد.
- تعریف ورودیها: اگر الگوریتمی میگوید ورودیها را بگیرید، باید ورودیها تعریف شده باشند.
- خروجیهای مشخص: الگوریتم باید به وضوح مشخص کند که چه خروجی به دست میآید و همچنین باید تعریف شود.
- متناهی: الگوریتم باید متناهی باشد، یعنی نباید به حلقه های نامحدود یا مشابه ختم شود.
- امکانپذیر: الگوریتم باید ساده، عمومی و کاربردی باشد، به طوری که بتوان آن را با منابع موجود اجرا کرد.
- مستقل از زبان: الگوریتم طراحیشده باید مستقل از زبان باشد، یعنی باید دستورالعملهای سادهای باشد که بتوان در هر زبانی پیادهسازی کرد و در عین حال خروجی همانطور که انتظار میرود خواهد بود.
انواع الگوریتم
الگوریتم و فلوچارت سه نوع ساختارهای کنترلی زیر را شامل میشوند:
- دستورات پردازشی متوالی: دستورات به ترتیب یکی پس از دیگری قرار می گیرند. در فلوچارتها، این عبارات معمولاً در کادر فرآیند مستطیلی قرار دارند.
- دستورات شرطی: این دستورات به یک تصمیم اشاره دارد. با درستی یا نادرستی شرط، دستوری انتخاب شده و مراحل ادامه پیدا میکند. به این دستورات ساختار انتخاب «اگر-آنگاه» نیز گفته میشود.
- دستورات حلقه: با این دستورات یک یا چندین دستور به طور مکرر بر اساس برخی شرایط که در حلقه وجود دارد، اجرا میشود. در فلوچارتها، یک فلش رو به عقب به وجود یک حلقه اشاره میکند و در اغلب زبانهای برنامهنویسی، ساختارهای “while” و “for” برای حلقهها استفاده میشود. در نظر داشته باشید که شرطی برای خاتمهی حلقه داشته باشید.
مزایای الگوریتم
- الگوریتم نمایش گام به گام از یک راه حل برای یک مسئلهی معین میباشد که درک آن آسان است.
- از آنجایی که در الگوریتم مسئله به مراحل کوچکتر تقسیم میشود به راحتی میتوانیم به برنامهی واقعی تبدیل کنیم.
در لینک زیر پاورپوینت الگوریتم و فلوچارت قرار داده شده که به معرفی کامل الگوریتم و فلوچارت به زبان ساده پرداخته شده است. این پاورپوینت آماده در ۱۷ اسلاید در قالب ppt. یا pptx. با قابلیت ویرایش برای ارائه درسی آماده دانلود میباشد.
تعریف فلوچارت
فلوچارت یک نمایش گرافیکی یا تصویری از یک الگوریتم است که با استفاده از نمادها و اشکال مختلف، مراحل حل مسئله را بیان میکند. نمادهای استانداردی که در فلوچارت استفاده میشود در جدول زیر آورده شده است.
این نمادها قسمت های مختلف یک فلوچارت را تشکیل میدهند که از طریق روابط بین هر بخش، مراحل اجرای دستورالعملها را در رسیدن به نتیجه نهایی نمایش میدهند.
تفاوت بین الگوریتم و فلوچارت
الگوریتم و فلوچارت برای توضیح روند یک برنامه استفاده میشوند که تفاوتهایی نیز دارند. تفاوت اصلی در نگاه اول و شمای کلی آنهاست که الگوریتم مجموعهای از دستورالعملها است. در حالی که یک فلوچارت مراحل یک برنامه را به صورت گرافیکی توضیح میدهد.
میتوانید در جدول زیر به صورت خلاصه تفاوتهای بین الگوریتم و فلوچارت را مشاهده نمایید.
الگوریتم | فلوچارت |
---|---|
دستورالعملهای گام به گام فرآیند به زبان محاورهای | نمایش گرافیکی به صورت نمادها در قالب تصویر |
پیچیده و درک آن دشوار | شهودی و آسان برای درک |
راحتی اشکال زدایی خطاها | دشواری اشکال زدایی خطاها |
زمانبر بودن ایجاد یک الگوریتم | ایجاد یک نمودار در زمان کمتر |
مثال هایی از الگوریتم و فلوچارت
در این قسمت از مبحث آموزش رایگان الگوریتم و فلوچارت مثالهایی ارائه میدهیم تا شما بهتر و ملموستر با روند کار الگوریتم و فلوچارت آشنا شوید.
الگوریتمها دستورالعملهای سادهای هستند که میتوان با زبانهای محاورهای، فلوچارتها، شبه کدها و غیره ارائه کرد. یک الگوریتم شامل استدلال، محاسبات و پردازش داده است. شما میتوانید با دنبال کردن مثالهایی که در این بخش از آموزش رایگان الگوریتم و فلوچارت برایتان ارائه میدهیم به خوبی از عهدهی نوشتن الگوریتم و رسم فلوچارت بربیایید.
قبل از نوشتن یک الگوریتم باید مسئله را به خوبی تجزیه و تحلیل نمایید، ورودیها و خروجیهای آن را تعیین کنید. شما اگر قادر باشید مسئلهای را حل کنید پس میتوانید الگوریتم آن را بنویسید. برای درک بهتر موضوع الگوریتم، اولین مثال را با مثال خیلی ساده زیر شروع میکنیم.
۱- مثال یک: الگوریتم رفتن به مدرسه
- شروع
- بیدار شدن از خواب
- مرتب کردن رختخواب
- شستن دست و صورت
- خوردن صبحانه
- آماده کردن لباس و وسایل لازم برای مدرسه
- پوشیدن لباس و کفش
- سوار تاکسی شدن
- رفتن به مدرسه
- حضور در کلاس
- پایان
در این مثال مشاهده کردیم که یک سری دستورالعملها به ترتیب و پشت سر هم انجام شد تا عمل رفتن به مدرسه انجام شود. طراحی یک الگوریتم مناسب برای حل مسائل، نقش بسزایی در نوشتن کدهای برنامه نویسی آن مسئله دارد. حال با مثال زیر به الگوریتمهای حل مسائل ریاضی و منطقی میپردازیم.
۲- مثال دو: سه عدد را جمع کنید و حاصل جمع آنها را چاپ کنید.
در ابتدا به تجزیه و تحلیل مسئه میپردازیم. در این مسئه قرار است سه عدد را با هم جمع کرده و مجموع آنها را چاپ کنیم. در مرحلهی دوم باید بدانیم چه ورودیهایی برای حل مسئله داشته باشیم در اینجا سه نوع ورودی از نوع عدد خواهیم داشت.
بعد از تعیین ورودی باید خروجی مورد انتظار را تعیین کنیم یعنی مجموع سه عددی که به عنوان ورودی گرفته شده است. و راه حلی که در نظر میگیریم تا به نتیجهی مورد نظر برسیم شامل جمع کردن سه عدد است و این کار را با استفاده از عملگر “+” انجام میدهیم.
در نهایت به طراحی الگوریتم میرسیم. با استفاده از پیشنیازهایی که در بالا تعیین کردیم به طراحی الگوریتم میپردازیم.
الگوریتم جمع کردن ۳ عدد و چاپ مجموع آنها:
- شروع
- سه متغیر عدد صحیح num1، num2 و num3 را به عنوان ورودی بگیرید.
- یک متغیر (sum) عدد صحیح برای ذخیره جمع حاصل از سه عدد را در نظر بگیرید.
- سه عدد را با هم جمع کرده و در متغیر مجموع (sum) قرار دهید.
- مقدار متغیر مجموع (sum) را چاپ کنید.
- پایان
بعد از نوشتن الگوریتم حل مسئله، برنامهنویسان آن را در یکی از زبانهای برنامهنویسی با دستورات مناسب محیط برنامهنویسی انتخاب شده نوشته و اجرا میکنند.
۳- مثال سوم: اعداد یک تا بیست را چاپ کنید.
- متغیری به نام x از نوع صحیح گرفته و مقدار آن را مساوی صفر قرار دهید.
- یک واحد به x اضافه کنید.
- X را چاپ کنید.
- اگر x کمتر از ۲۰ است، به مرحلهی دو برگرد.
- پایان
برای مطالعه بیشتر و آشنایی بیشتر با رسم فلوچارت میتوانید مقاله موجود در لینک زیر را نیز مطالعه کنید.
سخن آخر
از مطالب گفته شده در این پست آموزش رایگان الگوریتم و فلوچارت میتوان به این نتیجه رسید که الگوریتم عمدتاً با استفاده از کلمات، مراحل حل مسئله را با اجرای دستورات گام به گام به پایان میرساند تا ما را به نتیجه و هدف مورد نظرمان برساند. فلوچارت با نمادهای مشخص از طریق نمایش تصویری، نحوهی انجام فرایند منطقی راه حل مسئله را بیان میکند.
امروزه الگوریتمها علاوه بر اینکه در زمینههای مختلف فناوری اطلاعات از قبیل موتورهای جستجو، شبکههای اجتماعی و غیره استفاده میشوند، بخشی از زندگی روزمرهی ما شده است. چرا که بسیاری از کارهای شخصی ما از الگوریتم مشخصی پیروی میکنند.
حتی گاهی اوقات ما بدون آگاهی، از الگوریتم مشخصی استفاده میکنیم. به وضوح میتوان گفت هر چیزی که ما با آن سر و کار داریم به نوعی به الگوریتم مربوط میشود.
پس یادگیری شما از طریق این پست آموزش رایگان الگوریتم و فلوچارت علاوه بر بکارگیری اصول آن در برنامهنویسیهای مختلف، باعث میشود توجه بیشتر و دقیقتری روی فعالیتهای روزمرهتان و نظم دادن به آنها نیز داشته باشید تا با رعایت قوانین و دستورات گام به گام، فعالیتهای خود را با موفقیت به پایان برسانید و به اهداف مورد نظر خود برسید. با جستجو در سایت پیاستور میتوانید الگوریتمهای مختلفی در زمینههای متفاوت و مرتبط با حرفهی خود یافته و استفاده ببرید.