فلوچارت (روندنما) چیست، آموزش رسم فلوچارت به همراه شکل

زمان مطالعه: حدود 4 دقیقه / 114 گفتگو

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

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

6

فلوچارت (روندنما) چیست؟

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

چگونه الگوریتم خود را به فلوچارت تبدیل کنیم؟

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

توجه: این اشکال قراردادی هستند و این امکان وجود دارد که در منابع مختلف تا حدودی متفاوت باشند.

علامت‌های شروع و پایان ⇐ دایره

از شکل دایره می‌توانید برای نمایش نقاط شروع و پایان فلوچارت استفاده کنید.
از شکل دایره می‌توانید برای نمایش نقاط شروع و پایان فلوچارت استفاده کنید.

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

علامت ورودی (دریافت کن) ⇐ متوازی‌الاضلاع

از علامت متوازی‌الاضلاع برای دستورات ورودی و دریافت متغیرها استفاده کنید.
از علامت متوازی‌الاضلاع برای دستورات ورودی و دریافت متغیرها استفاده کنید.

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

دستورات محاسباتی و انتساب ⇐ مستطیل

از علامت مستطیل برای انجام محاسبات و یا دستورات انتساب استفاده کنید.
از علامت مستطیل برای انجام محاسبات و یا دستورات انتساب استفاده کنید.

یک برنامه‌ی کامیپوتری پر از دستورات محاسباتی و انتساب (Assign) است، بنابراین احتمالا به دفعات فراوان از تصویر مستطیل در فلوچارت خود استفاده خواهید کرد!

علامت شرط ⇐ لوزی

4
برای ایجاد دستورات شرطی در فلوچارت خود می‌توانید از علامت لوزی استفاده کنید. (حلقه‌های تکرار نیز به کمک همین علامت ایجاد می‌شوند)

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

علامت خروجی (نمایش بده) ⇐ چهارضلعی منحنی

برای نمایش دستورات خروجی میتوانید از یک چهارضلعی منحنی‌دار استفاده کنید.
برای نمایش دستورات خروجی میتوانید از یک چهارضلعی منحنی‌دار استفاده کنید.

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

قالب کلی یک روندنما به صورت زیر است:

Flowchart
طرح کلی یک روندنما

مثال: الگویتم و فلوچارتی بنویسید که عمل ضرب دو عدد طبیعی a*b را به کمک عملیات جمع محاسبه کرده و نمایش دهد.

  1. شروع
  2. a , b را دریافت کن.
  3. pr=a
  4. i=2
  5. pr=pr+a
  6. i=i+1
  7. اگر i<=b به مرحله‌ی ۵ برو
  8. pr را نمایش بده
  9. پایان

می‌توانید فلوچارت این الگوریتم را در تصویر زیر مشاهده کنید.

7
روندنمای مثال بالا

مثال: الگوریتم و فلوچارتی بنویسید که اعداد زوج کوچکتر یا مساوی عدد طبیعی N را نمایش دهد.

  1. شروع
  2. عدد N را دریافت کن
  3. اگر N==1 آنگاه پایان
  4. K=2
  5. K را نمایش بده
  6. K=K+2
  7. اگر K<=N آنگاه به مرحله‌ی ۵ برو
  8. پایان

می‌توانید فلوچارت این الگوریتم را در تصویر زیر مشاهده کنید.

روندنمای مثال بالا
روندنمای مثال بالا

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

همچنین برای اینکه بهتر با مفهوم فلوچارت (روندنما) آشنا شوید تمرین‌های زیر را انجام دهید:

  • الگوریتم و فلوچارتی بنویسید که سه عدد Third , Second, First را از ورودی دریافت کرده، محتویات آن‌ها را جابجا نموده و حاصل را در خروجی چاپ کند.
  • الگوریتم و فلوچارتی بنویسید که عددی را از ورودی دریافت کرده، قدر مطلق عدد را در خروجی چاپ کند.
  • الگوریتم و فلوچارتی بنویسید که ضرایب یک معادله درجه دوم را از ورودی دریافت کرده، ریشه‌های آن را محاسبه در خروجی چاپ کند. (قرارداد: sqrt(x)=√x و pow(a,b)=a∧b )
  • الگوریتم و فلوچارتی بنویسید که یک عدد در مبنای ۱۰ دریافت کرده و مبنای ۲ آن‌را محاسبه و چاپ کند. (راهنمایی: از تقسیم‌های متوالی استفاده کنید)
  • الگوریتم و روندنمایی بنویسید که حاصل جمع زیر را محاسبه کند. (n>=0)
    Picture1
  • الگوریتم و روندنمایی بنویسید که تا زمانی که کاربر عدد منفی وارد نکرده است از او یک عدد گرفته و آنرا چاپ کند.

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

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

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

در یک قدمی حرفه‌ای شدن هستید!

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

درحال حاضر هزینه‌ی عضویت ویژه ۱۹,۰۰۰ تومان است و با یکبار پرداخت به تمام آموزش‌های پریمیوم سایت دسترسی خواهید داشت.

شما یک گام جلوتر از دیگران باشید! اگر به آی‌تی و تکنولوژی علاقه‌مندید و دوست دارید سریع‌تر در این زمینه پیشرفت کنید، همین حالا به جمع ۲۳۶۶ عضو همیار آی‌تی بپیوندید، دسترسی به تمام آموزش‌های پریمیوم، دریافت جدیدترین آموزش‌های کاربردی مرتبط با آی‌تی و استفاده از مشاوره‌ی رایگان، برخی از مزایای عضویت در سایت هستد، شما نیز به کاربران همیار پیوسته و همین حالا وارد دنیای حرفه‌ای‌ها شوید... من هم می‌خواهم عضو ویژه‌ی همیار شوم

114 گفتگو

در بحث‌‌ پیرامون این مقاله شرکت کنید!

  1. Avatar ناشناس گفت:

    سلام..الگوریتم روش دم کردن چای به روش روندنما رو میشه بگید؟🙏🏻⚘

  2. Avatar امیر گفت:

    باسلام
    لطفا فلوچارت مسأله های داده شده برای تمرین از جملهx5/5! + !x_ x3/3 را نمایش دهید

  3. Avatar حدیثه گفت:

    سلام میخواستم بدونم چطور باید فلوچارت وضو گرفتن را بنویسیم

  4. Avatar رومینا گفت:

    سلام میخواستم بدونم چطور میتوان فلوچارت دم کردن چای را رسم کرد؟

  5. Avatar Mehdi گفت:

    سلام،ببخشید به این دو سوال من جواب میدید، ممنون

    ۱- فلوچارت تغییر رمز کارت با خود پرداز
    ۲- روندنمای الگوریتمی بنویسید که با داشتن ۳ زاویه، مشخص میکند که مثلث ما قائم الزاویه است یا خیر؟؟

  6. Avatar Mim گفت:

    یا مثلا این مسوله جوابش چی می شه :
    اعداد زوج ۱ تا ۱۰۰ را چاپ کنید.
    اعداد فرد ۱ تا ۱۰۰ را نزولی چاپ کنید.

    1. Avatar فرشاد گوهری گفت:

      فکر می‌کنم با خوندن آموزش الگوریتم‌نویسی بتونید این سوال رو خودتون پاسخ بدید.
      https://www.hamyarit.com/5482/algorithm/

  7. Avatar Mim گفت:

    سلام خسته نباشید و ممنون از مطالب بسیار خوبتون…
    میخواستم ببینم چجوری میتونیم دستور حلقه رو فلوچارتش رو بنویسیم؟ یا سوال دومم اینه که چجوری باید دوتا پایان در فلوچارت بگذاریم؟

    1. Avatar فرشاد گوهری گفت:

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

  8. Avatar امیر حسام وفایی گفت:

    سلام خیلی بدرد خورد من باغ کتاب میرم امتحان دارم ممنون

  9. Avatar mona گفت:

    سلام
    می خواستم بدونم تو فلوچارت به جای استفاده از دوعملیات چه کاری باید انجام داد؟

    1. Avatar فرشاد گوهری گفت:

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

  10. Avatar ناشناس گفت:

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

    1. Avatar فرشاد گوهری گفت:

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

    2. Avatar ناشناس گفت:

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

    3. Avatar فرشاد گوهری گفت:

      سلام دوست عزیز، می‌تونید عکسش در یکی از سایت‌های آپلود عکس آپلود کنید و لینکش رو اینجا قرار بدید تا دوستانی که در این زمینه اطلاعات دارند نظرشون رو بگن.

  11. Avatar عارف گفت:

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

    1. Avatar فرشاد گوهری گفت:

      خواهش می‌کنم دوست گرامی، موفق باشید

  12. Avatar عارف گفت:

    سلام. تشکر از مطالب مفیدتون. 🌹 بیزحمت اگر امکان داره منابع کتابی برای مبحث فلوچارت معرفی کنید. برای پایان نامه م نیاز دارم. ممنون میشم. 🌹

  13. Avatar عارف گفت:

    سلام تشکر از مطالب مفیدتون. بیزحمت امکان داره کتابی رو در این باره معرفی کنید برای پایان نامه نیاز به منابع کتابی در مورد الگوریتم و فلوچارت دارم ممنون میشم از راهنمایی تون.
    🌹 بی

    1. Avatar فرشاد گوهری گفت:

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

  14. Avatar مهسا گفت:

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

    1. Avatar فرشاد گوهری گفت:

      سلام دوست گرامی، کافیه فرآیندها رو با برنامه‌ای مثل Rational Rose یا Visual Paradigm طراحی کنید.
      اگر هم میخواین یه صورت دستی رسم کنید کافیه الگوریتم برنامتون رو مرحله به مرحله تبدیل به فلوچارت کنید، فلوچارت‌ها همین اشکال قراردادی هستند که در این آموزش ارائه شدند.

  15. Avatar رویا گفت:

    سلام sumیعنی چه؟

    1. Avatar فرشاد گوهری گفت:

      سلام دوست گرامی
      Sum به معنی “جمع” یا “مجموع” هست.

  16. Avatar مهیار گفت:

    میشه لطفا جواب اینهم بدین فلوچارتی رسم کنیدکه حاصلضرب دو عدد دلخواه را محاصبه کند

  17. Avatar D: گفت:

    اها فهمیدم مشکل راه حلم کجاست. یه کم ک فکر کردم دیدم اینطوری ک من نوشتم، L رو تقسیم بر ۲ میکنه و اگه باقیمونده صفر بود کل S رو یعنی زوج و فردو باهم نشون میده ولی من این تصور برام ایجاد شد ک چون زوج ها توی S هستن پس اگه بنویسم S رو نشون بده زوج ها رو نشون میده. کلا فردها رو از یاد برده بودم :۰

  18. Avatar D: گفت:

    سلام ممنون از سایت خوبتون. یه سوال داشتم. اون سوالی ک گفته بود الگوریتم اعداد زوج کوچکتر یا مساوی عدد طبیعی N، من از مرحله ۴ به بعد یه طور دیگه حل کردم نمیدونم درسته یا نه و اگه غلطه لطفن بگید ایرادش کجاست ممنون میشم.
    ۵.L=k+1
    ۶.اگر L<=N برو به ۵
    ۷.S=L/2
    ۸.اگر باقیمانده ۰ بود S را نشان بده.
    و یه سوال مهم دیگه اینکه آیا مسائل الگوریتم فقط یک راه حل خاص دارن یا نه میشه از راه های مختلفی رفت.

    1. Avatar فرشاد گوهری گفت:

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

    2. Avatar ناشناس گفت:

      نمیدونم

    3. Avatar ناشناس گفت:

      سلام

  19. Avatar ماریا گفت:

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

    1. Avatar ناشناس گفت:

      سلام..الگوریتم روش دم کردن چای به روش روندنما رو میشه بگید؟🙏🏻⚘

  20. Avatar ELHAM گفت:

    ببخشید فلوچارت نهنگ رو رسم میکنید من برای پایان نامه ام میخوام بلدنیستم

  21. Avatar ELHAM گفت:

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

  22. Avatar sara گفت:

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

    1. Avatar فرشاد گوهری گفت:

      سلام، مفاهیم الگوریتم و فلوچارت خیلی گسترده هست و فکر نمیکنم بشه داخل کامنت به خوبی شرحش داد، توصیه می‌کنم در ابتدا این ۲ آموزش رو با دقت مطالعه کنید و مثال‌ها رو ببینید، بعد اگر ابهام یا سوالی داشتید بپرسید تا راهنمایی‌تون کنم:
      https://www.hamyarit.com/5482/algorithm/
      https://www.hamyarit.com/5583/flowchart/

  23. Avatar مهدیه گفت:

    سلام ممنون میشم ازطریق ایمیل فایلی بفرستم راهنماییم بفرمایید درقالب فلوچارت چطور بیارمش .

    1. Avatar فرشاد گوهری گفت:

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

  24. Avatar Baran گفت:

    سلام وقت بخیر میخوام یه فلوچارت برای سیستم حسابداری سنتی و سیستمی تهیه کنم
    باید چکار کنم؟

    1. Avatar فرشاد گوهری گفت:

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

  25. Avatar reza گفت:

    سلام لطفا یه کمکی راجب این سوال کنید
    فلوچارتی رسم کنید که مقدار صحیحی از ورودی بگیرد و رقم های صفر ان را حذف کند

  26. Avatar نگین گفت:

    واقعا عالی بود مرسی بابت توضیحات خیلی خوبتون

  27. Avatar لیلی گفت:

    ممنونم بابت توضیحات تصویریتون عالی بود

  28. Avatar وحید گفت:

    سلام و دورود
    برای ساخت بازی در موتورهایی مثل unity و… چه میزانتسلط بر زبان برنامه نویسی لازم است؟

    1. Avatar فرشاد گوهری گفت:

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

  29. Avatar sirwan گفت:

    الگوریتم و فلوچارتی که تعداد nعدد را بگیرد واعداد منفی وسپس اعداد مسبت را به دست اورد،لطفا واسم حل کن،لطف کن شمارتو هم بده

  30. Avatar farnaziii گفت:

    سلام میشه لطفا الگوریتمای پیچیده تری رو مثال بزنید و توضیح بدید

    1. Avatar فرشاد گوهری گفت:

      سلام
      نمونه مثالهای زیر رو بررسی کنید:
      https://www.hamyarit.com/9947/test-your-algorithm-knowledge/
      در اون صفحه یک سری سوال از آسان به سخت مرتب شده و کاربران سعی میکنند بهش جواب بدن.
      شما هم دانش خودتون رو محک بزنید.

  31. Avatar Amir گفت:

    میخام ی فروچارت بکشم ک بررسی کنه که عدد بر ۵ یا مثلا ۳ بخش پذیره نمیدونم چیکار کنم. لطفا راهنمایی کنین

    1. Avatar فرشاد گوهری گفت:

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

  32. Avatar ناشناس گفت:

    سلام میشه ی الگوریتمی بنویسید ک از عدد یک تاصد چاپ کنه؟؟؟

    1. Avatar فرشاد گوهری گفت:

      برای حل این سوال کافیه یک حلقه در نظر بگیرید و مقدار شمارنده رو در حلقه چاپ کنید، با هربار اجرای این حلقه ۱ واحد به شمارنده اضافه شده و مقدارش در خروجی چاپ میشه، بدین ترتیب الگوریتمی دارید که ار عدد ۱ تا ۱۰۰ رو برای شما چاپ می‌کنه.

  33. Avatar ناشناس گفت:

    با سلام تو این پارگراف فکر میکنم اشتباه تایپی هستش

    هنگامی که قصد دارید، مقداری را از کاربر یا جایی در خارج از برنامه دریافت کنید باید نام آن متغیرها را در علامت لوزی نمایش دهید.

    از کلمه لوزی استفاده کردین در صورتی که فکر میکنم کلمه متوازی الاضلاع درست باشه
    ممنون از زحماتی که برای بروزرسانی سایت میکشید..موفق باشید

    1. Avatar فرشاد گوهری گفت:

      بله درسته، ممنون از توجه و دقتی که داشتید، اشتباه از جانب ما بود، برطرفش کردیم دوست عزیز.

  34. Avatar ناشناس گفت:

    سلام و عرض خسته نباشید لطفاااا سوال منو جواب بدیددددددددد
    الگوریتم ساخت کیکک

  35. Avatar مهدیار گفت:

    سلام میشه لطفا سوال منو جواب بدید

    الگوریتم پختن کیک

    1. Avatar فرشاد گوهری گفت:

      در صفحه‌ی آموزش الگورریتم پاسختون رو دادم دوست عزیز.
      https://www.hamyarit.com/5523/how-to-write-an-algorithm/

  36. Avatar MAHDI گفت:

    سلام لطفا رسم الگوریتم رابه من کامل توضیح دهید

    1. Avatar فرشاد گوهری گفت:

      سلام، در این آموزش:
      https://www.hamyarit.com/5523/how-to-write-an-algorithm/
      نحوه‌ی نوشتن الگوریتم گفته شده دوست عزیز، آموزش رو مطالعه کنید اگر متوجه نشدید سوال بپرسید دوستان راهنمایی خواهند کرد.

  37. Avatar محدثه مظفري گفت:

    سلام وقتتون بخیر ! لطف میکنین راهنماییم کنین،
    ۱:
    فلوچارتی رسم کنید که یک عدد طبیعی را از ورودی خوانده اعداد زوج کوچک تر از ان را به ترتیب نزولی چاپ کند؟
    فلوچارتی رسم کنید که یک عدد صحیح را از ورودی خوانده و مشخص کند که عدد مثبت صفر یا منفی است؟

    1. پشتیبانی همیار آی تی پشتیبانی همیار آی تی گفت:

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

  38. Avatar نرگس گفت:

    سلام لطفا فلوچارت عددمبنای ۱۰روبه مبنای ۲رو بگین چطوری میشه رسم کرد لطفا جوابش رو برام ایمیل کنیدممنون

    1. Avatar فرشاد گوهری گفت:

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

      ۱. شروع
      ۲. a را دریافت کن
      ۳. b = 0
      ۴. I = 0
      ۵. d = 0
      ۶. d = a % 2
      ۷. b = b + d * 10^I
      ۸. I = I + 1
      ۹. a = a \ 2
      ۱۰. اگر a=!0 برو به ۶
      ۱۱. b را چاپ کن
      ۱۲. پایان

  39. Avatar ناشناس گفت:

    سلام ببخشید یه سوال داشتم
    فلوچارتی رسم کنید کهxوn رابخواند
    ومقدار
    !xⁿ/n
    رامحاسبه وچاپ کند
    ببخشین میشه توضیحش بدین برام

    1. Avatar فرشاد گوهری گفت:

      سلام، سعی می‌کنم تا حد امکان ساده توضیح بدم، هرجا رو متوجه نشدید بپرسید دوست عزیز.

      برای نوشتن الگوریتم این معادله کافیه اون رو به دو بخش تقسیم کنید و اون مقادیر رو بر هم تقسیم کنید، به این شکل که یک حلقه تعریف کنید و برای شمارنده‌ی حلقه از ۱ شروع کنید به شمارش تا n و در هر بار اجرای حلقه، مقدار x رو درون خودش ضرب کنید و برای محاسبه‌ی فاکتوریل هم از عدد ۱ شروع کنید، در هربار اجرای حلقه ۱ واحد بهش اضافه کنید و اون رو هم درون خودش ضرب کنید، در نهایت این دو مقدار رو بر هم تقسیم کنید تا جواب معادله‌ی مورد نظرتون به دست بیاد.

  40. Avatar امین گفت:

    سلام
    ممنون بابت راهنماییتون
    دیشب رفتم متاسفانه به نتیجه‏ ای نرسیدم
    اگه زحمتی نیست میشه مثل همین نمونه هایی که آوردین این رو (دریافت ۵۰ عدد و گرفتن واریانس آنها) هم توضیح بدین
    پررویی بنده رو ببخشید…

    1. Avatar فرشاد گوهری گفت:

      سلام، خواهش می‌کنم.
      کدوم قسمت الگوریتم رو متوجه نشدید دوست عزیز؟
      اون چیزی که براتون نوشتم الگوریتمش به زبان بسیار ساده هست، اما اگر خود شبه کدش رو احتیاج دارید می‌تونید اینطوری بنویسید:

      def naive_variance(data):
          n = 0
          Sum = 0
          Sum_sqr = 0
          
          for x in data:
              n = n + 1
              Sum = Sum + x
              Sum_sqr = Sum_sqr + x*x
           
          variance = (Sum_sqr - (Sum*Sum)/n)/(n - 1)
          return variance
      
  41. Avatar ناشناس گفت:

    سلام من سوالی داشتم اگه بتونین زود جواب بدین ممنون میشم مرسی فاوچارتی رسم کنید که ضرایب یک معادله درجه دوم را از ورودی دریافت ریه های ان را محاسبه در خروجی چاپ کنین

    1. Avatar فرشاد گوهری گفت:

      سلام
      الگوریتم معادله‌ی درجه ۲ به این صورت میشه دوست عزیز:

      ۱) شروع
      ۲) مقادیر a و b و c را از کاربر دریافت کن
      ۳) مقدار b۲-۴ac را در D قرار بده (منظور از D دلتا هست)
      ۴) اگر D<0 چاپ کن معادله جواب ندارد و به مرحله‌ی ۷ برو.
      ۵) اگر D=0 مقدار b/2a- را چاپ کن و به مرحله‌ی ۷ برو.
      ۶) اگر D>۰ مقدار b+√D/2a- و b-√D/2a- را چاپ کن و به مرحله‌ی ۷ برو.
      ۷) پایان

  42. Avatar امین گفت:

    بله
    همینطوره

    1. Avatar فرشاد گوهری گفت:

      خب طبق فرمول واریانس:

      Σ(X-μ)۲/N

      • در ابتدا باید یک آرایه‌ی ۵۰تایی درست کنید و به کمک حلقه هر ۵۰ عدد رو از کاربر دریافت و در آرایه درج کنید.
      • در مرحله‌ی بعد میانگین این مقادیر رو به دست بیارید (تمام خانه‌های آرایه رو با هم جمع کنید و تقسیم بر کل تعداد ۵۰) و داخل یه متغیری مثلا با اسم avg بریزید میانگین رو.
      • در گام بعدی مجددا تک تک خانه‌های آرایه رو با کمک یک حلقه پیمایش کنید و مقدار هر خانه رو منهای مقدار avg کنید و مقدار به دست آمده رو به توان ۲ برسونید (در خودش ضرب کنید) و حاصل رو در متغیری به نام sum قرار بدید و در هربار اجرای حلقه حاصل به دست آمده رو با sum قبلی جمع کنید.
      • در پایان مقدار sum رو تقسیم بر تعداد اعداد (۵۰) کنید تا جواب واریانس به دست بیاد.

      من سعی کردم الگوریتمش رو تا حد توانم ساده توضیح بدم دوست عزیز، اما یه کمی پیچیده هست، بخونید اگر جاییش رو متوجه نشدید بپرسید تا بیشتر توضیح بدم.

  43. Avatar امین گفت:

    سلام بزرگوار
    بابت آموزشتون تشکر
    میشه لطف کنین فلوچارت دریافت ۵۰ عدد واریانس رو هم بگین…
    باز هم تشکر

    1. Avatar فرشاد گوهری گفت:

      سلام، خواهش میکنم.
      لطفا واضح‌تر توضیح بدید دوست عزیز، منظورتون الگوریتمی هست که واریانس ۵۰ عدد رو محاسبه کنه؟

  44. Avatar sasan گفت:

    سلام آقا فرشاد…تمرین بالا که برای کاربری به اسم سحر الگوریتمشو نوشتی فکر کنم باید یه شرط هم برای منفی و مثبتهای بین معادله بزاری

    1. Avatar فرشاد گوهری گفت:

      بله درسته، من یادم رفت شماره‌ی جمله رو چک کنم، احسنت به شما بابت این دقت بسیار عالی که دارید.
      ممنون که اطلاع دادید دوست عزیز.

  45. Avatar ناشناس گفت:

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

    1. Avatar فرشاد گوهری گفت:

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

  46. Avatar سحر گفت:

    با عرض سلام و خسته نباشید
    من دانشجوی ترم اول کامپیوتر هستم تمام آموزشهایی که شما گذاشتین مطالعه کردم ولی خودم تنهایی نمیتونم الگوریتم و فلوچارت بنویسم میخوام خوب یاد بگیرم ولی هر کاری میکنم هیچی نمی تونم حل کنم…از طرفی هم چند تا سوال استادمون داده که برای همین هفته باید حل کنم….هیچ کسم نیست یادم بده خواهش میکنم کمکم کنید یاد بگیرم

    1. Avatar فرشاد گوهری گفت:

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

    2. Avatar ناشناس گفت:

      مثلا یکی از سوالاتی که باید حل کنم همین تمرینی که خودتون گذاشتید که حاصل جمع معادله sumرا بدست آوریده…من نمیدونم کی باید شمارنده بزارم یا متغیر تعریف کنم یا مثلا چه شرطی بزارم…ممنونم از اینکه کمک میکنید

    3. Avatar فرشاد گوهری گفت:

      خواهش می‌کنم.

      شما باید اول از هر چیزی به سوال دقت کنید، ما ۲ تا مجهول در این سوال داریم، مقدار X و مقدار n مسلما این دو عدد از کاربر دریافت میشه و تا وقتی اونها رو نداشته باشیم قادر به حل مسئله نیستیم، پس در اولین گام شما باید این مقادیر رو از کاربر دریافت کنید تا بتونید ادامه‌ی مسئله رو حل کنید.

      بعد از انجام این مرحله میتونید خودتون یک حلقه ایجاد کنید و به تعداد n بار تکرارش کنید،‌ یا اینکه به جای این روش از فرمول خود معادله استفاده کنید، معمولا وقتی دارید الگوریتم و فلوچارت می‌نویسید باید از روش اول و موقعی که برنامه‌ی واقعی می‌نویسید از فرمول استفاده کنید.

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

      شرطش هم بسیار سادست، فقط کافیه به سوال دقت کنید، چون n بار باید تکرار بشه پس قاعدتا شرط میشه مقدار شمارنده کوچیک‌تر یا مساوی با n، مثلا اگر اسم شمارنده‌ی شما count باشه شرطش میشه count<=n این یعنی تا وقتی که شمارنده هنوز به مقدار n نرسیده دستورات رو تکرار کن (ضمن اینکه مقدار شمارنده 1 واحد در هربار اجرا افزایش پیدا میکنه)الگوریتم و فلوچارت، پایه و اساس و منطق برنامه‌نویسی هستن و شاید یه کمی درکشون احتیاج به زمان گذاشتن بیشتری داشته باشه، سعی کردم تا حد ممکن واضح توضیح بدم، اگر جاییش رو متوجه نشدید بپرسید.

    4. Avatar سحر گفت:

      من اینجور نوشتم
      ۱-شروع
      ۲_nوxرا دریافت کن
      ۳-count=1
      ۴-اگرcount<=nباشد (!(X^ (2*N- 1))/ (2N-1)) را درsum قرار بده
      ۵- در غیر اینصورت count+1=countوبه مرحله۴ برو
      ۶-sumرا چاپ کن
      ۷- پایان
      نمیدونم درسته یا نه؟ببخشید میتونم آدرس ایمیل شما رو داشته باشم

    5. Avatar فرشاد گوهری گفت:

      اگر فلوچارتش رو برای خودتون رسم کنید فک میکنم خیلی ساده‌تر بتونید تحلیلش کنید، اما جواب این سوال به این شکل میشه:
      ۱) شروع
      ۲) X و n را دریافت کن
      ۳) count=1
      ۴) اگر count<=n باشد (!(X^ (2*N- 1))/ (2N-1)) را در sum قرار بده در غیر اینصورت به مرحله‌ی 6 برو 5) count=count+1 و به مرحله‌ی 4 برو 6) sum را نمایش بده 7) پایانمیتونید از طریق این ایمیل با من در ارتباط باشید: ***

    6. Avatar فرشاد گوهری گفت:

      در تصحیح این الگوریتم، من فراموش کردم مثبت و منفی بودن جملات رو چک کنم.
      شما باید در هر بار اجرای حلقه چک کنید اگر جمله‌ی شماره‌ی زوج بود مقدارش رو منفی کنید و با sum جمع بزنید.
      ممنون از دوست عزیزمون sasan که به این نکته دقت کردن.

    7. Avatar سحر گفت:

      ممنونم از لطفتون مزاحمتون میشم

  47. Avatar راتین گفت:

    خیلی آموزنده بود ممنون. خیلی جاه برای خروجی هم دایره میذارند . من بار اولم بود ۴ضلعی منحنی دیدم. چرا؟

    1. Avatar فرشاد گوهری گفت:

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

  48. Avatar .... گفت:

    سلام چطور میشه این الگوریتم رو به عکس تبدیل کرد؟؟؟؟
    خواهشا زود جواب بدید

    1. Avatar فرشاد گوهری گفت:

      سلام، اگر منظورتون از عکس فلوچارت هست، طبق آموزش زیر میتونید الگوریتم برنامه‌هاتون رو به فلوچارت تبدیل کنید:
      https://www.hamyarit.com/5583/flowchart/
      آموزش الگوریتم به همراه شکل هست.

  49. Avatar امیر حسین گفت:

    سلام . استاد ما گفته فلوچارت برای مراحل لباسشویی مثل دور چرخش دما

    1. Avatar فرشاد گوهری گفت:

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

  50. Avatar Leyla گفت:

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

    1. Avatar فرشاد گوهری گفت:

      سلام، اول الگوریتمش رو بنویسید.
      مثلا برای وضو گرفتن اینجوری میشه:

        ۱. شروع
        ۲. شستن صورت
        ۳. دست راست
        ۴. دست چپ
        ۵. مسح سر
        ۶. پای راست
        ۷. پای چپ
        ۸. پایان

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

  51. Avatar kia گفت:

    سلام وقتتون بخیر میشه راهنمایی کنید فلوچارتی که تعداد صفرهای یک عدد رو محاسبه کنه

    1. Avatar ناشناس گفت:

      خیلی جالب و اموزنده بود
      خیلی خوشم اومد

  52. Avatar حمیدرضا گفت:

    سلام میشه چند تا فلوچارت برای کلاس دهم بهم بگین چون فردا امتحان دارم خواهشا

  53. Avatar Pariya گفت:

    ممنون از پاسختون.من فقط زنجیره ارزش رو دارم .نه متاسفانه الگوریتم ندارم .میشه شما لطف کنید و منو راهنمایی کنید

    1. Avatar ناشناس گفت:

      بله

  54. Avatar Pariya گفت:

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

    1. Avatar فرشاد گوهری گفت:

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

  55. Avatar mahya گفت:

    فلوچارتی رسم کنید که طول عرض مستطیل رااز ورودی دریافت کرده و محیط و مساحت آنرا چاپ کند

    1. Avatar فرشاد گوهری گفت:

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

  56. Avatar یکتا گفت:

    سلام با تشکر از شما
    با کمک شما تونستم مشکلی را حل کنم
    ممنون عالی بود

  57. Avatar ... گفت:

    سلام لطفا فلوچارت دم کردن چای را هم توضیح دهید ممنون

    1. Avatar ناشناس گفت:

      لطفا شستن ظرف ها رو هم الگوریتم و هم فلوچارت رو بگید
      خواهش میکنم زود جواب بدین

    2. Avatar ساناز گفت:

      الگوریتمش اینجور میشه:

      ۱) شروع
      ۲) ریختن مایع ظرفشویی
      ۳) تمیز کردن ظرف با مایع ظرف شویی
      ۴) باز کردن آب
      ۵) آب کشیدن ظرف ها
      ۶) خشک کردن ظرف ها
      ۷) پایان

      فلوچارت رو هم به همین ترتیب بکش، تک تک مراحل رو داخل مستطیل قرار بده و با فلش به ترتیب به هم وصل کن.

  58. Avatar ایمان گفت:

    با سلام و سپاس فراوان از زحمات ارزنده ی شما
    مطالب سایت خیلی عالی و مفید است فقط من در یک الگوریتم در این مقاله گیر کرده ام یعنی آن را متوجه نشده ام.اگر میشه در پاسخ بنده به صورت ساده مرحله به مرحله ی آن را تفسیر کنید یا پاسخ را به ایمیل بنده بفرستید.لطفا زیاد توضیح دهید.ممنونم.
    الگوریتم این است: مثال: الگویتم و فلوچارتی بنویسید که عمل ضرب دو عدد طبیعی a*b را به کمک عملیات جمع محاسبه کرده و نمایش دهد.
    عمل ضرب دو عدد به کمک عملیات جمع یعنی چه؟اگر میشه مفهوم ریاضی آن را توضیح دهید.اصلا مگه میشه حاصل ضرب دو عدد را به کمک عملیات جمع محاسبه کرد؟لطفا یک توضیح کامل درباره ی ضرب دو عدد به کمک عملیات جمع بدهید و اینکه لطفا بگید چرا از متغیر pr و i استفاده کردید؟ و این دو متغیر مخفف چی هستند؟
    با سپاس فراوان

    1. Avatar فرشاد گوهری گفت:

      سلام دوست عزیز، سعی می‌کنم مرحله به مرحله جواب سوالاتتون رو بدم:

      عمل ضرب دو عدد به کمک عملیات جمع یعنی چه؟
      یعنی از طریق جمع حاصل ضرب دو عدد رو پیدا کنید:
      به عنوان مثال ۵*۳ یعنی ۵ بار عدد ۳ رو با خودش جمع کنید، به این صورت: ۳+۳+۳+۳+۳ که حاصلش میشه ۱۵.
      یا مثلا برای ۳*۶ یعنی ۳ بار عدد ۶ رو با خودش جمع کنید: ۶+۶+۶ که حاصل میشه ۱۸.

      اینکه لطفا بگید چرا از متغیر pr و i استفاده کردید؟
      متغیر pr برای نگهداری مجموع این اعداد هست، هر بار که حلقه میچرخه عدد اول، یعنی a با خودش جمع میشه و به این متغیر اضافه میشه.
      متغیر i هم شمارنده‌ی حلقه هست، که به تعداد عدد دوم تکرار میشه، یعنی b بار.

      این دو متغیر مخفف چی هستند؟
      متغیر pr مخفف Plural به معنای مجموع، چندگانه.
      متغیر i هم شمارنده هست، معمولا در برنامه‌نویسی واقعی برای حلقه‌ها از متغیرهای i ، j و k استفاده میکنن برنامه‌نویس‌ها (هرچند هیچ الزامی درش نیست و یه جور عرفه)
      (البته همونطوری که میدونید انتخاب اسم متغیرها کاملا دلخواه هست و این اسامی هم به صورت کاملا دلخواه انتخاب شدن، هر چیز دیگه‌ای میتونستن باشن)

      سعی کردم به زبان ساده براتون توضیح بدمش دوست عزیز، هر جاش رو متوجه نشدید بپرسید تا براتون بگم

    2. Avatar نرگس گفت:

      دوست عزیز در ریاضیات چیزی ب اسم ضرب تفریق و تقسیم وجود خارجی نداره فقط جمع تعریف ذاتی داره بقیه عملیات از رو جمع گرفته شدند
      a×b یعنی b روa بار با خودش جمع کنی
      a_b یعنی a رو با b_ جمع کنی
      a÷b یعنی a رو اونقدر با b_جمع بزنی ک به صفر یا یه عدد منفی برسی
      امتحان کن

    3. Avatar فرشاد گوهری گفت:

      با سپاس از توضیحات شما کاربر گرامی.