روندنما یا فلوچارت: نقشه راه بصری الگوریتمها
۱. فلوچارت چیست و چه اجزایی دارد؟
روندنما یا فلوچارت شکلی از نمودار است که مراحل یک الگوریتم را با استفاده از شکلهای مختلف (مانند بیضی برای شروع و پایان، یا فلش برای جهت) نشان میدهد. در واقع فلوچارت مانند یک نقشهٔ راه عمل میکند که به شما میگوید از کجا شروع کنید، چه تصمیماتی بگیرید و در نهایت به کجا برسید. هر شکل در این نمودار معنای مشخصی دارد که در زیر به مهمترین آنها اشاره شده است.
| شکل | نام | کاربرد |
|---|---|---|
| بیضی (⚪ بیضی شکل) | نقطه شروع یا پایان | شروع و خاتمهٔ الگوریتم |
| مستطیل (□) | فرایند | انجام یک عمل یا محاسبه |
| لوزی (◇) | تصمیمگیری | شرط و انشعاب (بله/خیر) |
| پیکان (→) | جهت جریان | نشان دادن ترتیب اجرای گامها |
| متوازیالأضلاع | ورودی/خروجی | خواندن داده یا نمایش نتیجه |
برای مثال فرض کنید میخواهید الگوریتم «شستن دستها» را با فلوچارت نشان دهید: ابتدا شیر آب را باز کنید (مستطیل)، سپس دستها را خیس کنید (مستطیل)، صابون بزنید (مستطیل)، سپس بشویید (مستطیل) و در نهایت شیر را ببندید (مستطیل). اما اگر یک تصمیم اضافه کنیم: «آیا دستها تمیز شدند؟» (لوزی) - اگر پاسخ «بله» باشد (پیکان) به مرحلهٔ بستن شیر میرویم و اگر «خیر» باشد دوباره به مرحلهٔ صابون زدن بازمیگردیم. همین منطق ساده، پایهٔ تمام فلوچارتهاست.
۲. گامهای طراحی یک فلوچارت ساده
برای طراحی یک فلوچارت مؤثر، بهتر است مراحل زیر را به ترتیب طی کنید. فرض کنید میخواهیم فلوچارتی برای محاسبهٔ مساحت یک دایره با شعاع ورودی رسم کنیم.
گام اول: شروع را با شکل بیضی علامت بزنید و بنویسید «شروع».
گام دوم: از متوازیالأضلاع برای دریافت ورودی استفاده کنید: «مقدار شعاع (R) را بگیر».
گام سوم: در یک مستطیل، فرمول محاسبه را بنویسید. فرمول مساحت دایره به صورت زیر است:
گام چهارم: با متوازیالأضلاع نتیجه را نمایش دهید: «مساحت را چاپ کن».
گام پنجم: در بیضی پایانی بنویسید «پایان».
سپس همهٔ شکلها را با فلش به ترتیب به هم وصل کنید. برای تمرین بیشتر، میتوانید شرطی اضافه کنید: «اگر شعاع بزرگتر از صفر نبود، پیغام خطا بده». این کار نیاز به یک لوزی (تصمیم) دارد که در آن سؤال پرسیده میشود: $R \gt 0$؟
۳. کاربرد عملی: فلوچارت در برنامهنویسی و زندگی روزمره
یکی از مهمترین کاربردهای فلوچارت، مرحلهٔ طراحی الگوریتم پیش از نوشتن کد برنامه است. برنامهنویسان حرفهای ابتدا فلوچارت مسئله را روی کاغذ میکشند و سپس آن را به زبانی مانند پایتون یا جاوا ترجمه میکنند. اما فلوچارت فقط به برنامهنویسی محدود نمیشود. مثالهای زیر را ببینید:
- دستورالعمل پخت کیک: اگر مواد اولیه را دارید (لوزی تصمیم) → مرحله مخلوط کردن (مستطیل) → بررسی پخت با خلال دندان (لوزی) → اگر پخته شد (بله) خاموش کنید (مستطیل) و اگر نه (خیر) دوباره بپزید.
- سیستم نمرهدهی مدرسه: نمره دانشآموز را بگیر → اگر نمره $\ge 10$ بود قبول است وگرنه مردود → نتیجه را نمایش بده.
در زندگی روزمره، زمانی که از اپلیکیشن نقشه استفاده میکنید، یک فلوچارت بزرگ در پشت صحنه در حال اجراست: موقعیت فعلی را بگیر، مقصد را بگیر، اگر مسیر مستقیم وجود داشت آن را نشان بده، در غیر این صورت مسیر جایگزین پیدا کن. پس فلوچارت فقط یک ابزار دانشگاهی نیست، بلکه مغز متفکر بسیاری از فناوریهایی است که هر روز با آنها سروکار دارید.
۴. چالشهای مفهومی در یادگیری فلوچارت
۱. چه تفاوتی بین فلوچارت و الگوریتم نوشتاری وجود دارد؟
الگوریتم نوشتاری مانند یک دستور پخت گامبهگام با کلمات است، در حالی که فلوچارت همان دستور پخت را با نمودار و اشکال نشان میدهد. فلوچارت برای درک سریع روابط شرطی و حلقهها [1] بسیار مناسبتر است، زیرا جهت جریان را با فلش میبینید و تصمیمگیری در لوزی به وضوح مشخص است.
۲. چگونه در فلوچارت یک حلقه تکرار را نشان دهیم؟
حلقه [2] با بازگشت فلش به عقب نشان داده میشود. مثلاً در مثال شستن دست، اگر پاسخ «خیر» به «آیا دست تمیز است؟» داده شود، فلش از شاخه «خیر» لوزی به مرحله قبلی (صابون زدن) برمیگردد. این بازگشت همان مفهوم حلقه را ایجاد میکند بدون اینکه نیاز به شکل جداگانهای باشد.
۳. آیا میتوان چند خروجی از یک لوزی داشت؟
بله، اما معمولاً لوزی تنها دو خروجی دارد: «بله» و «خیر» (در شرایط دو حالته). برای شرایط چندگانه (مثل انتخاب بین چند گزینه) میتوان از چند لوزی پشت سر هم یا از نماد «حالت» [3] استفاده کرد که در فلوچارهای پیشرفته دیده میشود.
۵. ساختار یک فلوچارت استاندارد برای محاسبه میانگین
در اینجا یک فلوچارت کامل به صورت متنی توصیف میشود که میانگین سه عدد را محاسبه میکند. شما میتوانید آن را روی کاغذ بکشید:
ورودی: عدد اول، دوم و سوم (متوازیالأضلاع) →
محاسبه: جمع = عدد اول + عدد دوم + عدد سوم (مستطیل) →
محاسبه: میانگین = جمع ÷ ۳ (مستطیل) →
خروجی: نمایش میانگین (متوازیالأضلاع) →
پایان (بیضی)
اگر بخواهیم شرط «عددی منفی نباشد» را اضافه کنیم، قبل از محاسبه یک لوزی قرار میدهیم با شرط $عدد اول \ge 0$ و $عدد دوم \ge 0$ و $عدد سوم \ge 0$. اگر همه بله، ادامه دهید. اگر نه، پیغام خطا بدهید و به شروع برگردید (حلقه).
- فلوچارت یک نقشه راه تصویری برای الگوریتمها است که با اشکال ساده (بیضی، مستطیل، لوزی و فلش) ترتیب گامها را مشخص میکند.
- هر شکل معنای مشخصی دارد: بیضی (شروع/پایان)، مستطیل (فرایند)، لوزی (تصمیم)، فلش (جهت جریان) و متوازیالأضلاع (ورودی/خروجی).
- طراحی فلوچارت شامل پنج گام اصلی: تعیین شروع، دریافت ورودی، انجام محاسبات، نمایش خروجی و پایان است.
- از فلوچارت هم در برنامهنویسی و هم در کارهای روزمره مانند پخت کیک یا سیستم نمرهدهی میتوان استفاده کرد.
- حلقهها در فلوچارت با بازگشت فلش به عقب و تصمیمگیری با لوزی نمایش داده میشوند.
پاورقی
1حلقه (Loop): به مجموعهای از دستورالعملها گفته میشود که تا زمانی که یک شرط خاص برقرار است، تکرار میشوند. در فلوچارت با بازگشت فلش به عقب نمایش داده میشود.
2معادل انگلیسی واژهها: فلوچارت (Flowchart) - الگوریتم (Algorithm) - فرایند (Process) - تصمیم (Decision) - ورودی (Input) - خروجی (Output) - حلقه (Loop) - شرط (Condition).
3نماد حالت (State Symbol): شکلی است که در فلوچارهای پیشرفته برای نمایش چندین حالت مختلف استفاده میشود و معمولاً به شکل مستطیل با اضلاع منحنی است.
منابع الهام: مستندات استاندارد ISO 5807 برای نمادهای فلوچارت، و راهنماهای آموزشی سطح دبیرستان برای طراحی الگوریتم.