درس سوم و آخر: آشنایی با فلوچارت و نمادهای آن

Familiarity with Flowchart and its Symbols

24 شهریور 1399
فلوچارت و الگوریتم: آشنایی با فلوچارت و نماد های آن (قسمت 03)

آشنایی با فلوچارت ها

اولین فلوچارت (flowchart - به فارسی به «رَوَندنَما» نیز مشهور است) کشیده شده به سال 1945 و آقای John Von Neumann برمی گردد. برخلاف الگوریتم ها، فلوچارت ها از سمبل های نمادین مختلفی برای طراحی راه حل یک سوال استفاده می کند بنابراین در کنار الگوریتم ها یکی دیگر از ابزارهای مناسب برای حل مسئله در برنامه نویسی می باشد. تفاوت اصلی فلوچارت و الگوریتم در بصری بودن فلوچارت ها است و معمولا از فلوچارت ها به عنوان نقشه راه حل برای یک مشکل برنامه نویسی یاد می شود.

مهم ترین مزایای استفاده از فلوچارت ها

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

نمادها در فلوچارت

همانطور که گفتم فلوچارت ها مراحل حل مسئله را به صورت بصری به تصویر می کشند بنابراین برای جلوگیری از درهم آمیزی و بهم ریختگی باید نمادهایی داشته باشیم که هر کدام معنی خاصی را نمایش بدهند. این نمادها به صورت قراردادی تعریف شده و به یک استاندارد در ترسیم فلوچارت تبدیل شده اند. شما می توانید مجموعه ای از این نمادها را در جدول زیر ببینید:

نماد های فلوچارت ها - بسیاری از این نماد ها در پروژه ها استفاده نمی شوند و فقط چند نماد اول هستند که کاربرد دارند
نمادهای فلوچارت ها - بسیاری از این نمادها در پروژه ها استفاده نمی شوند و فقط چند نماد اول هستند که کاربرد دارند
  • Oval (بیضی): از این نماد برای مشخص کردن ابتدا و انتهای فلوچارت استفاده می شود.
  • Parallelogram (متوازی‌الاضلاع): نماینده عملیات های input و output.
  • Rectangle (مستطیل): نماینده پردازش؛ به طور مثال عملیات های حسابی (arithmetic) و دستکاری داده ها.
  • Diamond (الماس یا ذوزنقه): نماینده فرآیند های چند شاخه ای هستند. فرآیند هایی که در آن ها چندین حالت مختلف داریم که با false و true مشخص می شوند. این نماد به عنوان Decision یا «تصمیم» نیز شناخته می شود.
  • Arrows (فِلِش ها): نشان دهنده شارش منطق از یک مرحله به مرحله دیگر هستند.
  • Circle (دایره): به جای خط های طولانی در یک فلوچارت قرار می گیرند. این نماد با نام On-page Connector نیز شناخته می شود.
  • Off-Page Connector: مانند دایره است با این تفاوت که ادامه منطق را به صفحه دیگری منتقل می کند. به عبارتی دقیقا برخلاف On-page Connector است.
  • Predefined Process: به معنی «فرآیند از پیش تعریف شده» و مشخص کننده مجموعه ای از دستورات است که مسئول پردازش خاصی هستند.
  • Comments: با این نماد می توانید در مورد قسمتی خاصی از فلوچارت کامنت بگذارید.

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

تفاوت الگوریتم با فلوچارت

با این حساب و با توجه به توضیحاتی که در جلسه قبل داده شد، می توانیم تفاوت بین الگوریتم ها و فلوچارت ها را در جدول زیر نمایش دهیم:

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

چند مثال ساده

حالا که با فلوچارت ها و الگوریتم ها آشنا شده ایم، بیایید چند مثال ساده از آن ها حل کنیم.

مثال اول: محاسبه مجموع دو عدد

الگوریتم و فلوچارتی را برای محاسبه مجموع دو عدد بنویسید.

برای پاسخ به این سوال ابتدا الگوریتم آن را می نویسیم:

  • مرحله اول: شروع.
  • مرحله دوم: دریافت عدد اول به عنوان ورودی. نام آن را A فرض می کنیم.
  • مرحله سوم: دریافت عدد دوم به عنوان ورودی. نام آن را B فرض می کنیم.
  • مرحله چهارم: A و B را جمع بزنید. این جمع را در متغیر SUM قرار می دهیم.
  • مرحله پنجم: نمایش متغیر SUM.
  • مرحله ششم: پایان.

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

حالا می توانیم فلوچارت آن را به شکل زیر ترسیم کنیم:

فلوچارت ترسیم شده برای مثال اول
فلوچارت ترسیم شده برای مثال اول

مثال دوم: چاپ اعداد ۱ تا ۲۰

الگوریتم و فلوچارتی را برای چاپ اعداد 1 تا 20 بنویسید.

مثل همیشه ابتدا الگوریتم را می نویسیم:

  • مرحله اول: شروع.
  • مرحله دوم: متغیر X را تعریف و برابر 0 قرار می دهیم.
  • مرحله سوم: متغیر X را یک واحد اضافه می کنیم.
  • مرحله چهارم: متغیر X را چاپ می کنیم.
  • مرحله پنجم: اگر مقدار X از 20 کمتر بود، دوباره به مرحله سوم برمی گردیم.
  • مرحله ششم: پایان.

حالا می توانیم فلوچارت آن را به شکل زیر ترسیم کنیم:

فلوچارت ترسیم شده برای مثال دوم
فلوچارت ترسیم شده برای مثال دوم

مثال سوم: نمایش عدد کوچکتر از بین دو عدد

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

مثل همیشه ابتدا الگوریتم را می نویسیم:

  • مرحله اول: شروع.
  • مرحله دوم: دریافت عدد اول و دوم به عنوان ورودی. نام آن را به ترتیب NUM1 و NUM2 می گذاریم.
  • مرحله سوم: اگر NUM1 بیشتر از NUM2 بود (NUM1 > NUM2) می گوییم عدد اول کوچک تر است و در غیر این صورت می گوییم عدد دوم کوچک تر است. در نهایت شرط تمام می شود.
  • مرحله چهارم: پایان.

ترسیم فلوچارت این مسئله نیز ساده است:

فلوچارت ترسیم شده برای مثال سوم
فلوچارت ترسیم شده برای مثال سوم

امیدوارم مفهوم فلوچارت و الگوریتم را فهمیده باشید.

شما در

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

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش فلوچارت و الگوریتم به زبان ساده توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.