Tag Archives: algorithm

فلوچارت Flowchart

فلوچارت یا Flowchart چیست؟

فلوچارت (Flowchart) یا روندنما نوعی دیاگرام است که برای نمایش ترتیب و نحوه‌ی عملکرد گام‌های مختلف یک الگوریتم یا فرایند به کار می‌رود. در نمودار فلوچارت، هر گام بسته به نوع خود با اشکال هندسی مختلفی از قبیل مستطیل، لوزی، متوازی الاضلاع و … نمایش داده می‌شود. ترتیب وقوع گام‌ها با اتصال این اشکال از طریق فلش مشخص می‌شود و در داخل هر شکل توصیفی از آن گام نوشته می‌‌شود.

در واقع فلوچارت با نمایش تصویری آنچه طی یک الگوریتم یا فرایند رخ می‌دهد به درک و تشخیص بهتر نقاط مهم آن کمک می‌کند. امروزه از Flowchart در رشته‌های گوناگون برای مقاصدی نظیر آنالیز، طراحی، مستندسازی و آموزش مراحل مختلف یک الگوریتم یا فرایند کمک گرفته می‌شود.

اشکال مورد استفاده در فلوچارت

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

  • بیضی: برای شروع و پایان یک فرایند (و زیرفرایند) یا برنامه مورد استفاده قرار می‌گیرد. معمولا در داخل بیضی، بسته به موقعیت، واژه‌ی “شروع” (Start)، “پایان” (End) و یا عبارت دیگری که نشان‌دهنده آغاز یا پایان یک فرایند است نوشته می‌شود. از مستطیل با گوشه‌های منحنی نیز برای همین منظور استفاده می‌شود.
  • لوزی: برای تصمیم گیری استفاده می‌شود. در داخل لوزی، شرط مورد نظر نوشته می‌شود و روی فلش‌های منشعب شده از آن، حالات مختلف شرط (معمولا بله Yes و خیر No یا صحیح True و نادرست False) نوشته می‌شود.
  • متوازی الاضلاع: برای ورودی و خروجی داده به کار می‌رود. به عنوان مثال، متن موجود در داخل یک متوازی الاضلاع می‌تواند به صورت موارد روبرو باشد: “مقدار X را از کاربر بگیر.” یا “Y را در خروجی نمایش بده.”
  • مستطیل: برای پردازش یا انجام یک عمل نظیر انتساب مقدار به متغیرها استفاده می‌شود. به عنوان نمونه، متن داخل یک مستطیل ممکن است به این صورت باشد: “یک واحد به X اضافه کن.”

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

در شکل زیر نمونه‌ای از یک فلوچارت برای الگوریتم تشخیص زوج و فرد بودن عدد دریافتی از کاربر (n) نمایش داده شده است. روند کلی این الگوریتم به این شکل است که ابتدا عدد n از ورودی دریافت می‌شود (متوازی الاضلاع اول). سپس باقی‌مانده n بر عدد 2 محاسبه می‌شود و در متغیر r قرار می‌گیرد (مستطیل). در مرحله بعد از مقدار r برای تصمیم‌گیری استفاده می‌شود (لوزی). اگر r برابر با صفر باشد عبارت “n زوج است” و در غیر اینصورت عبارت “n فرد است” در خروجی نمایش داده می‌شود (متوازی الاضلاع دوم و سوم).

فلوچارت الگوریتم تشخیص زوج و فرد بودن عدد
فلوچارتی برای الگوریتم تشخیص زوج و فرد بودن عدد n

ترسیم فلوچارت

هرچند رسم روندنماهای ساده با کمک اغلب نرم‌افزارهای ترسیمی امکان‌پذیر است اما برای ترسیم آسان و حرفه‌ای فلوچارت، نرم‌افزارهای مخصوصی نیز طراحی شده است. Microsoft Visio از مجموعه Microsoft Office از جمله این نرم افزارهاست که به خوبی از ترسیم و ویرایش فلوچارت‌ها برمی‌آید و ابزارهای ویژه‌ای برای این کار در آن تعبیه شده است.

جالب است بدانید برخی از ابزارهای برنامه‌نویسی نظیر Flowgorithm به جای نوشتن کد براساس ساختار یک زبان برنامه نویسی، امکان نوشتن و اجرای برنامه با کمک فلوچارت‌ها را برای کاربر فراهم می‌کنند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

الگوریتم Algorithm

معنی واژه‌ی الگوریتم Algorithm چیست؟

الگوریتم (Algorithm) به مجموعه‌ای متناهی از اعمال گام به گام اطلاق می‌شود که هدفی معین را دنبال می‌کنند.

فرایندی که توسط یک Algorithm انجام می‌شود می‌تواند شامل یک ضرب ساده یا عملی پیچیده نظیر تولید یک میلیون رقم از عدد پی باشد. الگوریتم‌ها می‌توانند ورودی داشته باشند یا نداشته باشند اما باید حداقل یک خروجی داشته باشند. به علاوه باید دقیق و بی ابهام باشند و شروع و پایانی مشخص داشته و پس از طی مراحلی متناهی پایان یابد. گفتنی است ترتیب انجام گام‌های یک الگوریتم نیز مهم می‌باشد لذا اگر دستورالعمل‌ها (اعمال) را به صورت یک لیست در نظر بگیریم باید این اعمال از بالا تا پایین لیست به ترتیب اجرا شوند.

به طور کلی می‌توان تفاوت یک برنامه (Program) و الگوریتم را در این موضوع دانست که ممکن است یک برنامه هیچ نقطه‌ی پایانی نداشته باشد.

لازم به ذکر است این واژه از نام الخوارزمی ریاضیدان، منجم و جغرافیدان ایرانی گرفته شده است. برای بیان یک الگوریتم، روش‌های مختلفی وجود دارد که از مهم‌ترین آن‌ها می‌توان به زبان طبیعی، شبه کد و فلوچارت اشاره نمود. در زبان‌های برنامه نویسی نیز الگوریتم‌ها به شکلی بیان می‌شوند که توسط یک رایانه قابل اجرا باشد.

به عنوان مثال، الگوریتمی را در نظر بگیرید که اعداد زوج و فرد موجود در بازه‌ی بسته 1 تا 100 را تشخیص می‌دهد. اگر به زبان طبیعی این الگوریتم را بیان کنیم می‌توانیم گام‌های زیر را برای آن در نظر بگیریم:

گام اول: اولین عدد (1) را انتخاب کن.

گام دوم: عدد انتخاب شده را بر 2 تقسیم کن.

گام سوم: اگر باقی‌مانده تقسیم برابر با صفر باشد عدد انتخاب شده زوج است در غیراینصورت عدد انتخابی فرد است.

گام چهارم: اگر عدد کنونی کمتر از 100 بود عدد بعدی را انتخاب کن و به گام دوم برو.