مطالب کمک آموزشی پودمان الگوریتم کاروفناوری نهم
الگوریتم چیست؟
الگوریتم روشی گام به گام برای حل مسئله است. به هر دستورالعملی که مراحل انجام دادن کاری را با زبانی دقیق و با جزئیات کافی بیان نماید، به طوری که ترتیب مراحل و شرط خاتمۀ عملیات در آن کاملاًمشخص شده باشد، "الگوریتم"گویند.
برای حل هر مسئله فرد باید بتواند:
1 مسئله را به طور شفاف شرح دهد.
2 در صورت نیاز، مسئله را به چند مسئله کوچکتر تقسیم کند.
3 برای هر زیرمسئله راه حل مرحله به مرحله ایجاد کند.
ویژگی های الگوریتم
استفاده از زبان ساده، دقیق و قابل فهم:این ویژگی سبب می شود تا در انجام دستورالعمل ها همواره یک برداشت یکسان حاصل شود، در غیر این صورت برداشت های متفاوت سبب خواهد شد تا دستورالعمل ها نتایج متفاوتی را به وجود آورند. زبان الگوریتم نیز می تواند یکی از زبان های گفتاری و نوشتاری مانند فارسی، انگلیسی و ... باشد.
استفاده از جزئیات کافی:این ویژگی سبب می شود تا دستورالعمل ها به طور کامل اجرا شوند. وجود موارد نامشخص یا ارائه دستورالعمل ها به صورت کلی و مبهم سبب مخدوش شدن نتایج خواهد شد.
ترتیب انجام دستورالعمل ها:یکی از ویژگی های مهم یک الگوریتم است؛ اگر این کار به درستی انجام نشود، پیش بینی نتیجه کار مشخص نخواهد بود. در یک الگوریتم ترتیب انجام عملیات با استفاده از شماره گذاری دستورالعمل ها از بالا به پایین انجام می شود که البته در صورت نیاز می توان ترتیب اجرای دستورالعمل ها را نیز تغییر داد.
شروع و پایان الگوریتم:در یک الگوریتم باید شروع دستورالعمل ها مشخص باشد. هر الگوریتم یک نقطه شروع دارد که به عنوان اولین دستورالعمل از آن استفاده می شود، به علاوه پایان الگوریتم نیز باید تعیین شود. به هر حال الگوریتم باید در زمانی دلخواه و تحت شرایطی یا شرایط داده شده خاتمه پذیرد. یک الگوریتم می تواند بیش از یک نقطه پایان داشته باشد.
نکته: اگر در حل مسائل سه عامل اصلی را به دقت مشخص کنید، طراحی یک الگوریتم کار زیاد دشواری نخواهد بود. اگر مقادیر معلوم، خواسته های مساله، فرمولها و روابط ریاضی و منطقی بین آنها را به درستی تعیین کنید، نوشتن الگوریتم های مختلف آسانتر خواهد شد.
جامع بودن:الگوریتم باید به شکلی طراحی شود که با توجه به صورت مساله و مفروضات آن در تمام حالتها از جمله حالت های خاص یا داده های ورودی متفاوت نتایج مناسب و صحیحی را ایجاد کند و بهتر است در یک الگوریتم از دستورات اضافه که سبب افزایش حجم الگوریتم می شود خودداری نمایید چرا که این کار الگوریتم را شلوغ کرده و باعث سردرگمی می شود.
می توان الگوریتمرا به یک ماشین تشبیه کرد که مقادیر معلوم را دریافت کرده، روی آنها محاسباتی را انجام می دهد و در پایان خواسته های مساله ( مجهولات ) را ارائه می دهد. شما هر روز از الگوریتم استفاده میکنید اما به صراحت در مورد گامهای الگوریتمبه صورت جداگانه، فکر نمی کنید. مثلا راه اندازی اتومبیل، پوشیدن لباس یا دنبال کردن دستور پخت یک غذا همه با استفاده از یک الگوریتمکه شامل چند مرحله کار است انجام می شود.
فکر الگوریتمیتوانایی درک، اجرا، ارزیابی و ایجاد الگوریتم است. برای فکر کردن الگوریتمی، باید صبور و کوشا باشید تا بتوانید کار را مرحله به مرحله دنبال کنید و آن را نیمه کاره نگذارید.
دلایل اهمیت الگوریتم به شرح زیر است:
• الگوریتم"چگونگی"انجام یک کار خاص را بیان می کند.
• اگر یک الگوریتم به خوبی نوشته شود، می توان به جای یک مسئله، آن را برای انجام گروهی از مسائل استفاده کرد.
• وجود یک الگوریتمبدان معنی است که یک وظیفه به طور بالقوه می تواند خودکار باشد مثلا به طور خودکار به وسیله کامپیوتر انجام شود.
• وقتی الگوریتمکارها را به رباتها بدهید می توانید انسانها را از انجام کارهای تکراری، وقت گیر، خسته کننده یا خطرناک آزاد کنید.
• با خودکارکردن وظیفه ها می توانید کارهای جدید انجام دهید مانند دسترسی به صفحات وب از سراسر جهان در یک چشم به هم زدن.
اگر شما با تفکر دقیق مسئله های یک دامنه را به صورت الگوریتمیکحل کنید توانایی خود را در تجزیه تحلیل و حل مسائل در سایر حوزه ها بیشتر می كنید. الگوریتم یک مسئله را حل نمی کند بلکه شامل چند مرحله برای حل مسئله است که اگر به درستی اجرا شوند، راه حل مسئله را نتیجه می دهند.
شما به طور معمول با مفهوم الگوریتم آشنا هستید و از آن استفاده می کنید، به عنوان مثال وقتی هر روز به مدرسه می روید، اعمالی را به ترتیب و به صورت دقیق و کامل انجام می دهید یعنی ابتدا از خواب بیدار می شوید، دست و صورت خود را می شویید، صبحانه می خورید و سپس لباس مناسب به تن کرده و بعد از برداشتن وسایل و کتاب های مورد نیاز از خانه خارج می شوید؛ مسافتی را طی کرده و به کلاس خود می روید.
اگر هر یک از این اعمال را قبل و بعد از عمل دیگر انجام دهید، هدف مورد نظر که شکل درست به مدرسه رفتن است، انجام نمی شود.
می توان این مراحل را به شکل خلاصه و قابل فهم تری بیان کرد
• بیدار شدن از خواب
• شستن دست و صورت
• خوردن صبحانه
• پوشیدن لباس
• برداشتن کتاب های درسی و دفتر و قلم
• خروج از خانه
• رفتن به مدرسه و ورود به کلاس درس
همه شما روزانه اموری را انجام می دهید که از نظام خاصی پیروی می کنند، مانند روش مصرف داروها تا از بین رفتن کامل علائم بیماری، روش تهیه یک نوع غذای معین، چگونگی رفتن به محل کار، مطالعه موضوعی خاص و تهیه لوازم مورد نیاز روزانه. هر کدام از این امور با روش خاصی انجام می شوند. به نمونه ای از روش مصرف دارو توجه کنید:
تا از بین رفتن کامل علائم روزی سه بار، هر بار یک قاشق چایخوری از این دارو را در یک لیوان آب سرد حل کرده، قبل از غذا میل کنید.
این گونه روش انجام کار را الگوریتمگویند. الگوریتمکه به معنی تشریح دقیق مراحل مختلف و نحوه انجام دادن کار به خصوصی است، از نام ابو جعفر محمد بن موسی الخوارزمیریاضی دان و منجم ایرانی در قرن دوم هجری گرفته شده است.
برای بیشتر پی بردن به مفهوم الگوریتم مثالی را در نظر بگیرید: اگر بخواهید بین تعدادی عدد، بزرگترین آنها را پیدا کنید چگونه عمل می کنید؟ ممکن است پاسخ این باشد که: این کار بسیار ساده است و با نگاهی به مجموعه ای از اعداد می توان بزرگترین آنها را انتخاب کرد. اما این کار همیشه ممکن نیست زیرا اگر تعداد اعداد بسیار زیاد باشد این روش کارساز نخواهد بود.
احتمالا پاسخ این است که یک بار تمام اعداد را از ابتدا تا انتها بررسی می کنیم و در هر لحظه به خاطر می سپاریم که بزرگترین هر گاه به عددی بزرگتر از عددی که به خاطر سپرده ایم برخورد کردیم، آن را به جای عدد قبلی به خاطر می سپاریم و در غیر این صورت، بدون تغییر دادن عدد به خاطر سپرده شده، به بررسی خود ادامه .
این روش را می توان به صورت مجموعه ای از دستورالعمل های منظم بیان کرد.