در مطلب قبلی گفتیم الگوریتم چیست و تعدادی از الگوریتمهای مهم برنامهنویسی را توضیح دادیم. اما پسازآنکه مفهوم یک الگوریتم را بدانیم، سادهسازی آن اهمیت زیادی دارد. اینکه بتوان مراحل را گامبهگام ترسیم کرد و حتی به شکلی سادهتر، آن را به دیگران توضیح داد. فلوچارتها چنین امکانی را به ما میدهند. با ما همراه باشید تا یاد بگیریم فلوچارت چیست و چگونه باید از آن استفاده کرد.
فلوچارت چیست؟
الگوریتمها دارای پیچیدگیهای مختلفی هستند و پیادهسازی کد مربوط به هرکدام ممکن است کوتاه و یا طولانی و شامل دستورات پیچیده باشد. برای فهم بهتر یک الگوریتم برنامهنویسی و نحوه عملکرد آن میتوان از فلوچارت (FlowChart) استفاده کرد. فلوچارت نمایشی گرافیکی از فرایند یک برنامه است و از مجموعه شکلهای قراردادی تشکیل شده که به کمک آنها میتوان دستورات را به ترتیب ترسیم نموده و روند یک الگوریتم را سادهسازی کرد. کشیدن فلوچارت مربوط به قبل از شروع برنامهنویسی است و وابستگی به نوع زبان برنامهنویسی ندارد. فلوچارتها در تعیین روند اجرای دستورات و تعیین ورودی و خروجی برنامه نقش مهمی دارند
نمادهای مهم در رسم فلوچارت چیست؟
گفتیم که برای کشیدن فلوچارت از مجموعه شکلهای قراردادی استفاده میکنیم که هرکدام در نمایش دستورات مختلف یک برنامه نقش دارند. چند نمونه از بارزترین نمادهای فلوچارت را در این بخش معرفی میکنیم:
ترمیناتور (Terminator): که شروع و پایان فرایند را مشخص کرده و به شکل بیضی نشان داده میشود. هر فلوچارت یک ترمیناتور برای شروع و یکی برای پایان دارد.
فرایند (Process): به شکل مستطیل که برای نمایش دستورات معمولی مانند دستورات محاسباتی و انتسابی استفاده میشود.
تصمیم (Decision): تصمیمگیری برای برقراری شرط است و با لوزی نشان داده میشود. این مرحله دو خروجی متفاوت وابسته به پاسخ شرط دارد.
ورودی (Data):ورودیها به شکل متوازی الاضلاع نشان داده میشوند.
سند (Document): برای نمایش خروجی و گزارش نهایی از چهارضلعی منحنی استفاده میشود.
ارجاع به درون برنامه (On-Page Reference): به شکل دایره که حرفی درون آن قرار گرفته نمایش داده میشود و به معنی پایان این مرحله در این فلوچارت و لزوم ادامه آن در فلوچارت دیگری است.
تاخیر یا انتظار (Delay or wait): به شکل یک نیمه بیضی که به معنی انتظار و وقفه در انجام فرایند است.
مثال عملی از تبدیل الگوریتم به فلوچارت
فلوچارتها میتوانند منطق برنامه را به تصویر بکشند و بخشهای چالش برانگیز برنامه را مشخص کنند. وقت آن رسیده که به طور عملی بدانیم فلوچارت چیست و به همین دلیل در این بخش با چند مثال ساده نحوه کشیدن فلوچارت را یاد میگیریم. البته که یک فلوچارت را میتوان به شیوههای مختلف رسم کرد به طوریکه صورت مسئله برای برنامه نویس راحتتر شود.
برنامه ای که 10 بار عبارت Hello World را چاپ کند
شرع فرایند
برای پیاده سازی دستور حلقه ابتدا متغیری درنظر گرفته و مقدار 0 را به آن میدهیم.
سپس عبارت را چاپ میکنیم.
یک واحد به متغیر شمارنده اضافه میکنیم.
چک میکنیم که آیا مقدار جدید شمارنده کمتر از 10 است یا خیر. اگر کمتر بود به مرحله 3 میرویم در غیر این صورت به 6.
پایان
برنامهای که کاربر بتواند به حساب کاربری فیسبوک ورود کند
شروع فرایند
وارد شدن به سایت فیسبوک
رفتن به صفحه اصلی
وارد کردن ایمیل و رمزعبور
بررسی شرط: اگر اطلاعات وارد شده صحیح بود کاربر وارد پروفایل خود شود. در غیر این صورت با نشان دادن پیغام خطا به مرحله 4 بازگردد.
پایان برنامه
معرفی ابزارهای آنلاین برای کشیدن فلوچارت
اولین و سادهترین راه برای کشیدن فلوچارت این است که مسئله خود را دستی بکشید. اما اگر برای انجام تمرینهای خود و داشتن یک طراحی مرتب به ابزارهای مخصوص نیاز دارید، سایتهای زیر میتوانند کار شما را در مدت زمان کوتاهی راه بیندازند. این سایتها رایگان بوده و میتوانید به راحتی از آنها استفاده کنید.
سایت draw.io
این سایت امکان طراحی نمودارهای مختلف را به شما خواهد داد. برای رسم فلوچارت کافی است گزینه مربوط به آن را انتخاب کنید تا قالب آماده برای شما نمایش داده شود. پس از کشیدن فلوچارت میتوانید آن را با فرمتهای PDF، JPEG، SVG و غیره ذخیره (Export) کنید.
سایت gliffy
این سایت نیز امکان طراحی نمودارهای مختلفی از جمله فلوچارت را برای شما فراهم میکند و امکان تعیین اندازه نمودار خروجی را نیز به شما خواهد داد. همچنین امکان Export و انتخاب محل ذخیره را به شما خواهد داد.
سایت creately
این سایتیکی از محبوبترین ابزاهای آنلاین برای طراحی نمودارهای مختلف است. همچنین UI زیبایی دارد و رنگی تازه به طراحی شما میبخشد. انتخاب استایل و پالت رنگی از دیگر امکاناتی است که کریتلی به شما میدهد.
جمع بندی
ممکن است فکر کنید کشیدن فلوچارت برای مسائل پیچیده سخت است، اما فراموش نکنید که فلوچارت در پیادهسازی منطق کلی به شما کمک کرده و میتواند مسائل طولانی را در سادهترین حالت توضیح دهد. کشیدن فلوچارت برای کسانی که تازه به دنیای برنامهنویسی وارد شدهاند اهمیت بیشتری دارد زیرا یکی از پیشنیازهای یادگیری برنامهنویسی است. اگر در شروع مسیر برنامهنویس شدن هستید سون لرن به شما خوشآمد میگوید و مقالهای با عنوان پیشنیازهای یادگیری برنامهنویسی برای شما آماده کرده است.
سلام ممنون از مطالبتون ،مختصر و مفید بود
سایتهایی که معرفی کردین خارجی هست،سایت ایرانی اگر معرفی بفرمایید ممنون میشم
یه کار تحقیقاتی دارم و تا به حال برنامه نویسی نکردم.ممنون میشم راهنمایی بفرمایید،
نازنین کریمی مقدم۱۶ بهمن ۱۴۰۰، ۰۹:۱۲
درود
تا جایی که اطلاع دارم سایت ایرانی برای رسم فلوچارت نداریم... نهایتا میتونید از ماکروسافت ورد استفاده کنید.
۲۰ مهر ۱۴۰۱، ۰۳:۴۱
درود
از نرم افزار
Visio
استفاده کنید
محمد حسین شیری۲۶ آذر ۱۴۰۲، ۰۹:۴۳
سلام از نرم افزار visio استفاده کنید برای رسم فلوچارت
۰۶ دی ۱۴۰۰، ۱۲:۵۳
نسبت به سایتهای دیگه بد نیست
مطلب رو طولا کنید بهتره
سر مطلبها رو بارنگ مخالف مطلب بگزارید
و عکسهای پیشتر پ جزابتری بگزارید
تنوع رنگ بیشتری بدید
یا دو رنگ باشه.
Host سایت رو قویتر کنید
تشکر
نازنین کریمی مقدم۰۶ دی ۱۴۰۰، ۱۳:۴۹
درود ممنون از فیدبکتون
انشالله تا حد امکان در پلتفرم جدید رعایتشون میکنیم.
۲۲ آذر ۱۴۰۰، ۱۹:۱۸
من درکی ندارم از فلوچارت و اگوریتم میتونید منو راهنمایی کنین؟
نازنین کریمی مقدم۲۳ آذر ۱۴۰۰، ۰۶:۲۶
درود
باید با تکرار برطرف بشه و در شروع کار این سردرگمی کاملا طبیعیه. از جزوههای رایگان موجود در نت و کتابهای الگوریتم و فلوچارت (بخصوص آقای جعفرنژاد قمی) استفاده کنید.
روژینا۰۳ آبان ۱۴۰۰، ۰۹:۲۱
ممنونم من خیلی خوب متوجه شدم اگر میشه نمونه و مدلهای دیگه ی فلوچارت رو هم بزارید ممنون?
نازنین کریمی مقدم۰۳ آبان ۱۴۰۰، ۱۳:۲۴
درود
توصیه میکنم به سراغ کتاب الگوریتم و فلوچارت آقای جعفرنژاد قمی برید که خیلی در این زمینه متنوع و اعتیادآوره. در اینترنت pdf اش هم وجود داره.