شبهدستور: الفبای نوشتن الگوریتم به زبان خودمان
الگوریتم چیست و چه اجزایی دارد؟
الگوریتم به زبان خیلی ساده، یعنی یک دستورالعمل گامبهگام برای رسیدن به یک هدف. هر الگوریتم از سه بخش اصلی تشکیل میشود: ورودی (چیزی که داریم)، مراحل پردازش (کاری که باید انجام دهیم) و خروجی (نتیجهای که میخواهیم). برای مثال، دستور پخت یک ساندویچ ساده: ورودیها نان، پنیر و خیارشور هستند. مراحل: برش نان، گذاشتن پنیر و خیارشور روی آن و بستن ساندویچ. خروجی هم یک ساندویچ آماده برای خوردن است.
برای نوشتن الگوریتم، از دستورهای ساده مانند «برو»، «بیا»، «اگر»، «تکرار کن» و «نوشتن» استفاده میکنیم. این دستورها به ما کمک میکنند تا کارها را دقیق و بدون ابهام شرح دهیم. به این سبک نوشتن، شبهدستور میگویند چون شبیه دستورهای واقعی کامپیوتر است، اما با زبان خودمان نوشته میشود.
کاربرد شبهدستور در زندگی روزمره
هر روز بدون اینکه متوجه باشیم از الگوریتم استفاده میکنیم. مثلاً وقتی میخواهیم برای مدرسه آماده شویم، یک الگوریتم داریم: مرحله ۱: بیدار شدن؛ مرحله ۲: مسواک زدن؛ مرحله ۳: صبحانه خوردن؛ مرحله ۴: پوشیدن لباس؛ مرحله ۵: بیرون رفتن از خانه. اگر یکی از این مراحل را جابهجا کنیم (مثلاً قبل از مسواک زدن صبحانه بخوریم)، ممکن است کارمان خراب شود! پس ترتیب مراحل در الگوریتم خیلی مهم است.
حالا بیایید یک مثال ریاضی ساده را با شبهدستور بنویسیم: میخواهیم میانگین نمرات سه درس را حساب کنیم. ورودیها سه عدد هستند. مرحله اول: سه عدد را با هم جمع میکنیم. مرحله دوم: حاصل جمع را بر ۳ تقسیم میکنیم. مرحله سوم: نتیجه را نشان میدهیم. این یک الگوریتم خطی است چون دستورها یکی پس از دیگری اجرا میشوند و هیچ شاخه یا شرطی ندارند.
| نوع الگوریتم | ویژگی اصلی | مثال روزمره |
|---|---|---|
| الگوریتم خطی | دستورها به ترتیب و پشت سر هم اجرا میشوند | دستور پخت یک نوشیدنی ساده |
| الگوریتم شرطی | دارای «اگر» و «در غیر این صورت» است | برنامهٔ تماشای فیلم بر اساس باران یا آفتاب |
پرسش و پاسخ برای درک بهتر
پرسش ۱: چرا نمیتوانیم از کلمههای مبهم در شبهدستور استفاده کنیم؟
پاسخ: چون شبهدستور باید دقیق باشد. اگر بگوییم «مقداری آب بریز»، مشخص نیست چه مقدار. اما اگر بگوییم ۲۰۰ میلیلیتر آب بریز، دستور دقیق و قابل اجراست. ابهام باعث میشود نتیجهٔ کار ما با نتیجهٔ دوستمان فرق کند.
پرسش ۲: تفاوت شبهدستور با کدنویسی واقعی چیست؟
پاسخ: شبهدستور برای انسان نوشته میشود، نه کامپیوتر. پس میتوانیم از کلمات فارسی و نمادهای ساده استفاده کنیم. کدنویسی واقعی باید با قواعد سختگیرانهٔ یک زبان برنامهنویسی (مثل پایتون) نوشته شود که کامپیوتر آن را بفهمد. شبهدستور پلی است بین فکر ما و کدنویسی.
پرسش ۳: آیا همهٔ الگوریتمها خطی هستند؟
پاسخ: نه، بعضی الگوریتمها شرطی هستند (اگر این باشد آن کار را بکن) یا حلقهای (تا وقتی که شرط برقرار است تکرار کن). مثلاً الگوریتمهای بازیهای رایانهای پر از شرط و حلقه هستند. اما شروع کار با الگوریتمهای خطی سادهتر است.
خلاصهٔ مهم: شبهدستور به ما کمک میکند تا مسئله را به قدمهای کوچک و دقیق تقسیم کنیم. با سه عنصر اصلی ورودی، پردازش و خروجی، هر کاری را میتوان به صورت الگوریتم نوشت. از دستورهای ساده، نمادهای ریاضی خطی و کلمات شرطی مثل «اگر» استفاده میکنیم. تمرین با مثالهای روزمره بهترین راه برای یادگیری شبهدستور است. به یاد داشته باشید که ترتیب دستورها و دقیق بودن آنها، دو اصل طلایی نوشتن یک الگوریتم خوب هستند.