برنامه نویسی

آموزش الگوریتم و الگوریتم نویسی (قسمت اول)

آموزش الگوریتم و الگوریتم نویسی که پیش نیاز یادگرفتن زبان‌های برنامه نویسی و منطق آن‌هاست.

 

خب یه سلام دیگه به دوستان بایت گیت دنبال کن ( لغت جدید 😐 )

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

پس بیشتر از این سرتون رو درد نمیارم و بریم سراغ الگوریتم و الگوریتم نویسی 🙂

الگوریتم چیست؟

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

هر الگوریتم باید دارای شرایط زیر باشد

  1. ورودی : یک الگوریتم می تواند صفر یا چند ورودی داشته باشد که از محیط خارج تامین می گردد.
  2. خروجی : الگوریتم باید یک یا چند کمیت خروجی داشته باشد.
  3. قطعیت : هر دستورالعمل باید واضح و بدون ابهام باشد.
  4. کارایی : هر دستورالعمل باید قابل اجرا باشد.
  5. محدودیت : در تمام حالات، الگوریتم باید پس از طی مراحل محدودی خاتمه یابد.

 

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

معمولا برای حل یک مسئله، مراحل زیر طی می گردد.

  1. تعریف مسئله بصورت جامع و دقیق (شامل تعریف ورودیها و خروجیها)
  2. بررسی راه حلهای مختلف برای حل مسئله
  3. آزمایش الگوریتم با داده های ورودی و اشکالزدایی آن
  4. تبدیل الگوریتم به یک زبان برنامه نویسی کامپیوتری (مانند C یا Pascal)
  5. وارد کردن برنامه به کامپیوتر و تست و اشکالزدایی آن
  6. استفاده از برنامه

 

چگونه می توانیم الگوریتمها را بیان کنیم؟

الگوریتمها باید برای انسانها قابل فهم و درک باشند و همه بتوانند به راحتی منظور نویسنده الگوریتم را درک کنند

معمولا الگوریتمها به یک زبان طبیعی مانند فارسی یا انگلیسی نوشته می شود.

این مسئله باعث می شود که بعضی ابهامات در درک الگوریتمها پیش آید.

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

از آنجا که زبانهای برنامه نویسی مانند C به زبان انگلیسی خیلی نزدیک هستند، بعض از طراحان از ترکیب زبان C و انگلیسی (که به آن کد شبه C می گویند) برای بیان الگوریتم استفاده می کنند

لازم بذکر است که در گذشته از نمودار گردشی (Flowchart) نیز برای بیان الگوریتمها با استفاده از شکلهای استاندارد استفاده می شد، که تنها برای الگوریتمهای کوچک مناسب بود.

برای مثال:

الگوریتمی بنویسید که ضرایب یک معادله درجه دوم بصورت زیر را دریافت و ریشه های آن را محاسبه و چاپ کند.

ax2 + bx + c = 0

برای حل این مسئله ابتدا باید ضرائب a ، b و c از کاربر دریافت و در خانه های حافظه ذخیره گردند.

برای اینکه بتوانیم بعدا به این خانه های حافظه مراجعه کنیم، به هریک از آنها یک نام نسبت می دهیم. به هریک از این نامها یک متغیر گفته می شود.

دلیل این نامگذاری آنستکه مقادیر ذخیره شده در هریک از این خانه های حافظه می تواند تغییر کند.

گرچه انتخاب نام بعهده خودشماست و می تواند هر چیزی باشد، ولی توصیه می گردد از اسامی بامعنی و متناسب استفاده گردد. این کار سبب می شود که خواندن و درک الگوریتم شما برای سایر افراد نیز ساده گردد.

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

برای دریافت اطلاعات از کاربر از دستور بخوان استفاده می گردد.

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

برای انتساب یک مقدار به یک متغیر از علامت استفاده می شود.

 

پایان قسمت اول 🙂

محمد واحدی

20 سالمه و دانشجوی نرم افزارم.علاقه ی شدیدی به طراحی وبسایت و اپلیکیشن نویسی دارم و تقریبا 3 ساله وب مستر محسوب میشم و علاقه مندم تا آموخته ها و تجربیاتم رو به اشتراک بزارم :)

نوشته های مشابه

1 دیدگاه

  1. ممنوون که بخش الګوریتم هم به سایت اضافه کردین منتظر ادامه ی مباحث هستیم:)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *