الگوریتم و فلوچارت (Algorithm And Flowchart) دو نوع مختلف از ابزارهایی هستند که برای شرح فرایند برنامهها مورد استفاده قرار میگیرند. الگوریتم تجزیه و تحلیلی گامبهگام از فرایند مربوطه است، درحالی که در فلوچارت گامهای برنامه بهگونهای تصویری و گرافیکی شرح داده میشوند. الگوریتم و فلوچارت موضوعی مهم و پایهای در آموزش کامپیوتر مقطع متوسطه و دانشگاه به حساب میآید و برای رسیدن به آمادگی لازم برای شرکت در آزمونهای مربوط به این حوزه نیاز به یادگیری نمونه سوالات آن وجود دارد. بنابراین در این مقاله به ارائه نمونه سوالات الگوریتم و فلوچارت با جواب پرداخته شده است.
الگوریتم و فلوچارت چیست؟
الگوریتم و فلوچارت دو نوع از ابزارهایی هستند که برای توضیح فرایند یک برنامه استفاده میشوند. معمولاً فلوچارتها برای شرح ساختار الگوریتم در برنامه کاربرد دارند. الگوریتم و فلوچارت دو ابزار متفاوتی هستند که برای شرح برنامهها به خصوص در برنامه نویسی کامپیوتر مورد استفاده قرار میگیرند. الگوریتم به صورت مرحله به مرحله یک پردازش را تجزیه و تحلیل میکند، در حالی که، فلوچارت مراحل فرایند برنامه را به صورت گرافیکی نشان میدهد. زمانی که روش پیادهسازی برنامه به صورت مرحله به مرحله نوشته میشود، یک الگوریتم به وجود میآید. به عبارت دیگر، میتوان گفت الگوریتم، رویهای برای حل برنامهها به حساب میآید.
در حل مسائل ریاضی یا برنامه نویسی، طراحی الگوریتم اولین مرحله حل مسئله به شمار میرود. یک الگوریتم شامل محاسبات، استدلالها و پردازش دادهها است. الگوریتمها میتوانند با استفاده از زبان انسانی، شبهکدهای برنامه نویسی و فلوچارتها نمایش داده شوند. فلوچارت، نمایشی بصری از الگوریتمها است که با استفاده از نمادها، اشکال و فلشهای گوناگون برای نشان دادن یک فرایند یا برنامه استفاده میشود. با استفاده از الگوریتمها، به راحتی میتوان روش کار فلوچارت را درک کرد. هدف اصلی یک فلوچارت، تجزیه و تحلیل فرایندهای متفاوت است.
چندین نوع طرح گرافیکی استاندارد در فلوچارتها استفاده میشوند که در ادامه برخی از آنها نشان داده شدهاند:
- بیضی: به این شکل «اتصال پایانه» (Terminal Box) در فلوچارتها گفته میشود. بیضی شروع و پایان فرایند برنامه را نشان میدهد. یک فلوچارت با این شکل شروع میشود و پایان مییابد.
- متوازیالاضلاع: این شکل ورودی، خروجی، چاپ و سایر موارد برنامه را نشان میدهد.
- مستطیل: این شکل فرایند و ساختار برنامه را نمایش میدهد. برای مثال مستطیل میتواند انواع وظایف ریاضی از جمله جمع، تفریق، ضرب، تقسیم و سایر موارد را نشان دهد.
- لوزی: این شکل تصمیمات و اهداف برنامه را مشخص میکند. میتوان با استفاده از این شکل شرطهای برنامه را بررسی کرد. لوزی «جعبه تصمیم» (Decision Box) نیز نامیده میشود و معمولاً دو مسیر خروجی دارد، یکی از آنها برای زمانی است که شرط «صحیح» (True) باشد و دیگری برای زمانی است که شرط «نادرست» (False) باشد.
- فلش: با استفاده از این فلش یا پیکان، ارتباطات موجود در برنامه نمایش داده میشوند.
هر کدام از این نمادها، بخش خاصی از فلوچارت را نشان میدهند. به طور خلاصه میتوان گفت که یک فرایند در برنامه میتواند توسط انواع شکلها و پیکانها با سایزها و رنگهای مختلف مشخص شود. در فلوچارت میتوان به راحتی عناصر خاص و رابطه بین آنها را برجسته کرد. در ادامه ابتدا برخی از مثالها از دنیای واقعی برای درک بهتر مفهوم الگوریتم و فلوچارت ارائه شده است.
مثال هایی ساده از الگوریتم ها در دنیای واقعی
پیش از پرداختن به نمونه سوالات الگوریتم و فلوچارت با جواب، ابتدا در این بخش برای درک بهتر این مفاهیم به بررسی برخی از مثالهای ساده از الگوریتمها در دنیای واقعی پرداخته شده است.
اولین مثال طراحی الگوریتم در دنیای واقعی
با استفاده از یک الگوریتم میتوان رفتن به پیکنیک را برنامهریزی و برای آن هدفی طراحی کرد که در ادامه ارائه شده است:
- مرحله اول: شروع
- مرحله دوم: مکان، تاریخ و زمان پیکنیک باید تعیین شود.
- مرحله سوم: فعالیتهایی مشخص میشوند که در پیکنیک باید انجام شوند.
- مرحله چهارم: باید یک وسیله نقلیه برای رفتن به محل پیکنیک و بازگشت تهیه شود.
- مرحله پنجم: افراد در تاریخ تعیین شده به محل پیکنیک میروند.
- مرحله ششم: برنامههایی که برای پیکنیک برنامهریزی شدهاند، در آن مرحله انجام میشوند.
- مرحله هفتم: با استفاده از وسیله نقلیه تهیه شده، افراد پس از پیکنیک به منزل بازمیگردند.
- مرحله هشتم: پایان
دومین مثال طراحی الگوریتم در دنیای واقعی
برای آماده کردن یک نوشیدنی مانند چای یا قهوه میتوان به صورت زیر یک الگوریتم طراحی کرد:
- مرحله اول: شروع
- مرحله دوم: آب برای درست کردن قهوه در ظرف جوشانده میشود.
- مرحله سوم: پودر قهوه به آب جوش اضافه میشود.
- مرحله چهارم: شکر به قهوه اضافه میشود.
- مرحله پنجم: شیر همراه با شکر به قهوه ساخته شده در مرحله قبل اضافه میشود.
- مرحله ششم: همه مواد این قهوه به مدت ۲ دقیقه جوشانده میشوند.
- مرحله هفتم: قهوه در فنجان ریخته میشود.
- مرحله هشتم: پایان
سومین مثال طراحی الگوریتم در دنیای واقعی
در این بخش الگوریتمی برای برنامهریزی گرامیداشت و جشن روز معلم به صورت زیر طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: انتخاب فعالیتهایی که قرار است در روز معلم انجام شوند.
- مرحله سوم: گروههایی از دانشآموزان تشکیل میشوند و هر فعالیت ایجاد شده در مرحله دوم به یک گروه اختصاص داده میشود.
- مرحله چهارم: برای هر یک از گروهها زمانبندی به وجود میآید.
- مرحله پنجم: هر یک از گروهها بر اساس زمانبندیهای ایجاد شده، فعالیتهای خود را تمرین میکنند.
- مرحله ششم: معلم به جشن روز معلم دعوت میشود.
- مرحله هفتم: فعالیتهای برنامهریزی شده در مرحله دوم، انجام میشوند.
- مرحله هشتم: پایان
در ادامه این مطلب به بررسی برخی از نمونه سوالات الگوریتم و فلوچارت با جواب برای برنامه نویسان و علاقهمندان پرداخته شده است.
نمونه سوالات الگوریتم و فلوچارت با جواب
الگوریتم و فلوچارت یکی از پایهایترین مفاهیم برای شروع برنامه نویسی یا هر مسئله دیگری هستند. این مبحث در مقطع دبیرستان، در رشته فنی حرفهای کامپیوتر پایه دهم و همچنین در رشته مهندسی کامپیوتر دانشگاه، در مقطع کارشناسی در کتابهای درسی تدریس میشود و از اهمیت بالایی برخوردار است. از این رو، در این مطلب به بررسی برخی از نمونه سوالات الگوریتم و فلوچارت با جواب پرداخته میشود.
همانطور که پیش از این شرح داده شد، الگوریتمها فرایند یک برنامه را بدون ابهام و با مشخص کردن شروع و پایان آن نشان میدهند. نوشتن یک الگوریتم نیازمند فکر کردن درباره حل مسئله است. الگوریتم میتواند مانند یک برنامهریزی منطقی برای برنامه و حل مسئله عمل کند. به این نکته نیز باید توجه شود که اگر یک الگوریتم در رسیدن به راه حل مورد نظر به برنامه نویس کمک نکند، نوشتن و طراحی آن سودی برای مسئله ندارد. در ادامه این مطلب، نمونه سوالات الگوریتم و فلوچارت در سادهترین سطح ممکن با جواب ارائه شدهاند.
۱. فلوچارت چیست؟ ویژگی های فلوچارت کدامند؟
فلوچارت نمایشی تصویری از الگوریتم است و از اشکال مختلف برای نشان دادن ساختار فلوچارت استفاده میشود. این اشکال با استفاده از پیکانها برای نشان دادن جریانی از عملیات به یکدیگر متصل شدهاند. فهرست هر یک از ویژگیهای فلوچارت در ادامه ارائه شده است:
- فلوچارت دارای روشی ساده برای ارتباط برقرار کردن بخشهای مختلف برنامه با یکدیگر است.
- این روش مستقل از زبان برنامه نویسی است و با هر زبانی میتوان آن را طراحی کرد.
- فلوچارت یکی از کلیدهای اصلی برنامه نویسی صحیح به حساب میآید.
- این روش به برنامه نویس برای طراحی و برنامهریزی سیستمی جدید کمک میکند.
- فلوچارت به صوت کاملاً واضح هر وظیفهای را نشان میدهد که باید در هر سطح از برنامه انجام شود.
۲. الگوریتم چیست؟ ویژگی های الگوریتم کدامند؟
الگوریتم به صورت دنبالهای از دستوالعملها به زبان انسانی ساده تعریف میشود و برای به دست آوردن نتیجهای مطلوب در برنامه مورد نیاز است. الگوریتم به توسعه منطق اساسی یه مسئله کمک میکند و این موضوع باعث میشود که راه حلی مناسب برای برنامه به وجود بیاید. برخی از ویژگیهای الگوریتم در ادامه نمایش داده شدهاند:
- هر مرحله از الگوریتم باید به صورت کاملاً دقیق تعریف شود.
- یک الگوریتم باید شامل بلوکهایی باشد که به حل مسائل به صورت کارآمدتر و منطقیتر کمک میکنند.
- الگوریتم باید مجموعهای از ورودیها را دریافت کند و خروجیهایی مناسب ارائه دهد.
- الگوریتم باید حتماً بعد از تعداد محدودی از مراحل، پایان یابد و دارای انتها باشد.
- یک الگوریتم میتواند از زبان برنامه نویسی کامپیوتر مستقل باشد.
- الگوریتم میتواند پلتفرمی برای نوشتن برنامه ایجاد کند.
۳. الگوریتم و فلوچارت مقایسه طول دو پاره خط و برابر بودن یا نبودن آن ها
برای طراحی الگوریتم و فلوچارت سوال بررسی طول دو پارهخط و برابری و عدم برابری آنها الگوریتم زیر ارائه شده است:
- مرحله اول: شروع
- مرحله دوم: طول دو پارهخط با نامهای l1 و l2 دریافت و پذیرفته میشوند.
- مرحله سوم: اگر l1 و l2 برابر باشند، سپس عبارت «دو پارهخط مساوی هستند.» در خروجی نشان داده میشود.
- مرحله چهارم: اگر l1 و l2 برابر نباشند، سپس عبارت «دو پارهخط مساوی نیستند.» در خروجی نشان داده میشود.
- مرحله پنجم: پایان
در ادامه حل این سوال به عنوان نمونه سوالی از مبحث الگوریتم و فلوچارت با جواب، فلوچارت مرتبط با این سوال طراحی و ارائه شده است:
در ادامه مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب»، قبل از پرداختن به ادامه نمونه سوالات الگوریتم و فلوچارت با جواب، مجموعه آموزشهای مهندسی و علوم کامپیوتر تم آف به علاقهمندان معرفی میشوند.
۴. طراحی الگوریتم و فلوچارتی برای بررسی سن افراد جهت واجد شرایط بودن یا نبودن آنها برای رأی دادن چگونه است؟
در این بخش به عنوان نمونه سوالات الگوریتم و فلوچارت با جواب، شرایط رای دادن افراد بر اساس سن آنها بررسی میشود. افراد بعد از ۱۸ سالگی میتوانند در انتخابات شرکت کنند. ابتدا الگوریتمی متناسب با این سوال طراحی و در ادامه ارائه شده است:
- مرحله اول: شروع
- مرحله دوم: سن افراد توسط برنامه دریافت میشود.
- مرحله سوم: اگر سن فرد مساوی یا بزرگتر از عدد ۱۸ بود، سپس در خروجی عبارت «شما واجد شرایط رای دادن هستید.» چاپ میشود.
- مرحله چهارم: اگر سن فرد کوچکتر از عدد ۱۸ بود، آنگاه در خروجی عبارت «شما واجد شرایط رای دادن نیستید.» چاپ میشود.
- مرحله پنجم: پایان
فلوچارت مربوط به این الگوریتم در ادامه آمده است:
۵. طراحی الگوریتم و فلوچارت برای حل سوال آیا با ۳ عدد می توان یک مثلث قائم الزاویه ساخت؟
جهت بررسی این موضوع که آیا سه عدد میتوانند یک مثلث قائمالزاویه بسازند، نیاز است رابطه فیثاغورس برای این ۳ عدد مورد بررسی قرار بگیرد. اگر h طول وتر مثلث قائمالزاویه باشد و p و b طول دو ضلع دیگر آن، فرمول قضیه فیثاغورس به صورت زیر نوشته میشود:
$$h = sqrt {p^2 + b^2}$$
در ادامه الگوریتمی ارائه میشود که برای حل این سوال طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: سه عدد به عنوان ورودی الگوریتم دریافت میشوند.
- مرحله سوم: اگر $$A^2 = B^2 + C^2$$ باشد، عبارت «مثلت قائمالزاویه است.» در خروجی چاپ میشود.
- مرحله چهارم: اگر $$B^2 = A^2 + C^2$$ باشد، عبارت «مثلت قائمالزاویه است.» در خروجی چاپ میشود.
- مرحله پنجم: اگر $$C^2 = A^2 + B^2$$ باشد، عبارت «مثلت قائمالزاویه است.» در خروجی چاپ میشود.
- مرحله ششم: اگر هیچ کدام از مراحل سوم، چهارم و پنجم برقرار نباشند، «مثلث قائمالزاویه نیست.» در خروجی چاپ خواهد شد.
- مرحله هفتم: پایان
در ادامه حل این سوال از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب»، فلوچارت الگوریتم فوق طراحی و ارائه شده است:
۶. الگوریتم دریافت نام و نمرات یک دانش آموز در پروژه به صورت جدول زیر و طراحی فلوچارت برای آن چگونه است؟
در این سوال قرار است، نام و نمرات دانشآموزی همراه با سطح نمره آن به صورت یک جدول دریافت شود و فلوچارتی برای آن طراحی گردد. در ادامه ابتدا جدولی مشاهده میشود که برای صورت سوال ارائه شده است:
سطح نمره دانشآموز | نمرات به دست آمده دانشآموز |
A | ۸۰ درصد یا بیشتر |
B | ۶۰ درصد یا بیشتر، اما کمتر از ۸۰ درصد |
C | ۴۰ درصد یا بیشتر، اما کمتر از ۶۰ درصد |
بدون سطح نمره (No Grade) | کمتر از ۴۰ درصد |
فلوچارتی که در ادامه مشاهده میشود، برای این سوال طراحی شده که یکی از نمونه سوالات الگوریتم و فلوچارت با جواب است و به عنوان پاسخ آن در نظر گرفته میشود:
تا این بخش از مطلب، به بررسی برخی از سوالات ساده و مفهومی الگوریتم و فلوچارت با جواب پرداخته شد، در بخش بعدی برخی از سوالاتی ارائه شدهاند که ارتباط بیشتری را با برنامه نویسی دارند.
نمونه سوالات الگوریتم و فلوچارت با جواب مرتبط با برنامه نویسی
در این بخش از مطلب برخی از نمونه سوالات الگوریتم و فلوچارت مورد بررسی قرار میگیرند که ارتباط بیشتری با برنامه نویسی کامپیوتری دارند و معمولاً از کدهای آنها نیز به عنوان اولین مثالهای پایه شروع یادگیری برنامه نویسی استفاده میشود. ابتدا در بخش بعدی به بررسی سوالی درباره زوج یا فرد بودن اعداد ورودی پرداخته شده است.
۷. طراحی الگوریتم و فلوچارت تعیین زوج یا فرد بودن عدد N و چاپ خروجی
برای تعیین زوج یا فرد بودن عدد ورودی N و چاپ پاسخ آن در خروجی از الگوریتم زیر استفاده میشود:
- مرحله اول: شروع
- مرحله دوم: عدد N از ورودی خوانده میشود.
- مرحله سوم: در این مرحله، عدد ورودی یعنی همان N بر عدد ۲ تقسیم میشود.
- مرحله چهارم: اگر باقی مانده تقسیم عدد بر عدد ۲ برابر با صفر باشد، عدد زوج است و اگر باقی مانده این تقسیم برابر با عدد دیگری باشد، عدد ورودی N فرد است.
- مرحله پنجم: چاپ خروجی
- مرحله ششم: پایان
فلوچارت مربوط به الگوریتم بررسی زوج یا فرد بودن یک عدد در ادامه آمده است:
۸. طراحی الگوریتم و فلوچارت برای محاسبه سود سپرده بانکی
در این سوال برای مشخص کردن سود سپرده بانکی، ابتدا در ادامه الگوریتمی برای آن طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: مقدار «رقم» (Amount) سپرده موجود در بانک خوانده میشود.
- مرحله سوم: «سالهایی» (Years) خوانده میشوند که سپرده در بانک وجود داشته است.
- مرحله چهارم: «نرخ» (Rate) سود بانکی خوانده میشود.
- مرحله پنجم: سود بانکی با استفاده از معادله «$$Interest = {Amount * Years * Rate over 100}.$$» محاسبه میشود.
- مرحله ششم: سود بانکی در خروجی چاپ میشود.
- مرحله هفتم: پایان
فلوچارت زیر برای شرح بهتر و پاسخ به سوال روش محاسبه سود سپرده بانکی طراحی شده است:
۹. طراحی الگوریتم و فلوچارتی برای روش محاسبه جمع دو عدد ورودی
در این سوال الگوریتم و فلوچارتی برای روش یافتن مجموع دو عدد ورودی داده شده طراحی میشود. ابتدا در بخش بعدی الگوریتم این مسئله ارائه شده است:
- مرحله اول: شروع
- مرحله دوم: عدد ورودی A خوانده میشود.
- مرحله سوم: عدد ورودی B خوانده میشود.
- مرحله چهارم: ایجاد جمع دو عدد داده شده در ورودی A و B، با استفاده از معادله «$$C = A + B$$» انجام میشود.
- مرحله پنجم: مجموع دو عدد A و B در متغیر C ذخیره و در خروجی چاپ میشود.
- مرحله ششم: پایان
در ادامه برای پاسخ کاملتر به نمونه سوالات الگوریتم و فلوچارت با جواب درباره چاپ مجموع دو عدد، فلوچارت زیر طراحی و مشاهده میشود:
۱۰. طراحی الگوریتم و فلوچارتی برای مسئله مشخص کردن بزرگترین عدد صحیح از میان دو عدد صحیح
برای حل مسئله مشخص کردن بزرگترین عدد از میان دو عدد صحیح، ابتدا الگوریتم زیر طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: عدد صحیح A خوانده میشود.
- مرحله سوم: عدد صحیح B خوانده میشود.
- مرحله چهارم: اگر B بزرگتر از A باشد، سپس عدد B چاپ میشود، در غیر این صورت A چاپ خواهد شد.
- مرحله پنجم: پایان
در ادامه فلوچارتی برای درک بهتر الگوریتم بالا و نشان دادن این الگوریتم به صورت گرافیکی و تصویری ارائه شده است:
۱۱. طراحی الگوریتم و فلوچارتی برای محاسبه ریشه های مسئله معادله درجه دوم $$ax^2 + bx + c = 0$$
برای پاسخ به این نمونه سوال و یافتن روش حلی برای محاسبه ریشههای معادله درجه دوم $$ax^2 + bx + c = 0$$، ابتدا الگوریتمی به صورت زیر طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: ابتدا در این مرحله متغیرهای a ،b ،c ،D ،x1 ،x2 ،rp و ip وارد برنامه میشوند.
- مرحله سوم: برای محاسبه ریشه معادله درجه دوم به روش دلتا، ابتدا باید پاسخ فرمول «$$D = b^2 – 4 ac$$» برای معادله درجه دوم محاسبه شود.
- مرحله چهارم: اگر D بزرگتر از صفر بود یعنی معادله دارای دو ریشه است، اگر D با صفر برابر باشد یعنی معادله دو ریشه مثل هم دارد و اگر D کوچکتر از صفر باشد به این معنی است که معادله دارای دو ریشه مختلط است.
- مرحله پنجم: ریشههای معادله در خروجی چاپ میشوند.
- مرحله ششم: پایان
در ادامه فلوچارت این مثال نمایش داده شده است:
۱۲. طراحی الگوریتم و فلوچارت مسئله سری فیبوناچی برای اعداد کوچکتر از ۱۰۰۰
هر یک از گامهای مربوط به الگوریتم حل مسئله سری فیبوناچی برای اعداد کرچکتر از ۱۰۰۰ در ادامه فهرست شدهاند:
- مرحله اول: شروع
- مرحله دوم: ابتدا در این مرحله متغیرهای i ،a ،b و show اعلان میشوند.
- مرحله سوم: در این مرحله مقدار هر کدام از متغیرهای مرحله قبل با ارقام a=0 ،b=1 و show=0 مقداردهی میشوند.
- مرحله چهارم: شرط سری فیبوناچی جهت حل و چاپ شدن خروجی برای مثال، مانند عدد ۱۰۰۰ وارد میشود.
- مرحله پنجم: دو مورد اولیه سری فیبوناچی چاپ میشوند.
- مرحله ششم: در نهایت مراحل زیر در یک حلقه پیادهسازی میشوند:
- $$show = a + b$$
- $$a = b$$
- $$b = show$$
- در هر دور از حلقه یک عدد به مقدار متغیر i اضافه میشود.
- چاپ کردن متغیر show
- مرحله هفتم: پایان
در ادامه حل این سوال، فلوچارتی متناسب با الگوریتم طراحی شده فوق، ارائه شده است:
۱۳. طراحی الگوریتم و فلوچارت محاسبه حاصل جمع اعداد ۱ تا ۵۰
در این بخش از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به بررسی روش جمع اعداد صحیح یک تا ۵۰ پرداخته شده است. در ادامه ابتدا مراحل الگوریتم طراحی شده برای این سوال مشاهده میشوند:
- مرحله اول: شروع
- مرحله دوم: در این مرحله ابتدا دو متغیر N = 0 و Sum = 0 تعریف و اعلان میشوند.
- مرحله سوم: سپس در این مرحله، متغیر N با استفاده از رابطه $$N = N + 1$$ محاسبه و تعیین میشود.
- مرحله چهارم: در این مرحله متغیر Sum به وسیله فرمول $$Sum = N + Sum$$ محاسبه شده است.
- مرحله پنجم: یک حلقه بین مراحل سوم و چهارم اضافه میشود و تا N = 50 محاسبه آن ادامه دارد.
- مرحله ششم: خروجی ایجاد شده در متغیر Sum چاپ میشود.
- مرحله هفتم: پایان
در بخش بعدی از حل این سوال، به بررسی و ارائه فلوچارتی برای الگوریتم فوق پرداخته شده است:
۱۴. نمونه سوال الگوریتم و فلوچارت برای یافتن بیشترین قیمت از میان ۱۰۰ عدد و کاهش ۱۰ درصدی آن
جهت طراحی برنامهای که از میان ۱۰۰ عدد بیشترین قیمت را بیابد و آن را ۱۰ درصد کاهش دهد، الگوریتم زیر طراحی شده است:
- مرحله اول: شروع
- مرحله دوم: ابتدا در این مرحله ۱۰۰ عدد مورد نظر سوال خوانده میشوند.
- مرحله سوم: در این مرحله، برای حل سوال، عدد اول با عدد بعد از آن مقایسه میشود، آن عددی که بزرگتر است اندیس max
دریافت میکند.
- مرحله چهارم: حلقه ایجاد شده در مرحله سوم ادامه پیدا میکند تا بزرگترین عدد پیدا شود.
- مرحله پنجم: پس از یافتن بزرگترین عدد با استفاده از مراحل قبلی، به وسیله رابط زیر مقدار ۱۰ درصد از آن کم میشود.
$$prices [max index] = prices [max index] * 0.9$$ - مرحله ششم: مقدار نهایی چاپ میشود.
- مرحله هفتم: پایان
در ادامه فلوچارتی برای تکمیل حل این مسئله، ارائه شده است.
۱۵. طراحی الگوریتم و فلوچارت برای مرتب سازی ۳ عدد چگونه انجام می شود؟
هدف این مسئله دریافت سه عدد به عنوان ورودی برای متغیرهای Y، X و Z است و پس از بررسی، آنها به صورت نزولی مرتبسازی خواهند شد. الگوریتم طراحی شده برای این مسئله در ادامه ارائه شده است:
- مرحله اول: شروع
- مرحله دوم: ابتدا، مقادیر ورودی متغیرهای Y، X و Z دریافت میشوند.
- مرحله سوم: در این مرحله، سه عدد صحیح Y، X و Z خوانده میشوند.
- مرحله چهارم: بررسی میشود که آیا X>Y ،X>Z و Y>Z برقرار است.
- مرحله پنجم: سپس پس از بررسیهای مرحله قبل، ترتیب نزولی ایجاد شده چاپ میشود.
- مرحله ششم: پایان
در بخش بعدی از حل این نمونه سوال، فلوچارت متناسب با آن طراحی و ارائه شده است.
در بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» برای آشنایی بیشتر با الگوریتمها، برخی از الگوریتمهای محبوب که در برنامه نویسی کامپیوتری نیز استفاده فراوانی دارند برای علاقهمندان به این موضوع ارائه شدهاند.
انواع الگوریتم ها کدامند؟
الگوریتمها به صورت گستردهای در زمینه برنامه نویسی کامپیوتر کاربرد دارند. با این حال، میتوان از آنها برای حل مسائل ریاضی و زندگی روزمره نیز استفاده کرد. اما مسئلهای که وجود دارد این است که دقیقاً چه نوع الگوریتمهایی وجود دارند. در این بخش از مطلب سعی شده است مهمترین الگوریتمهایی معرفی شوند که در زمینههای مختلف از جمله برنامه نویسی کامپیوتری مورد استفاده قرار میگیرند. طبق گفته برخی از منابع به طور کلی ۳۲ نوع الگوریتم مهم و حیاتی در علوم کامپیوتر وجود دارند. با اینکه پیچیدگیهای زیادی در الگوریتمها موجود است، به طور کلی میتوان آنها را بر اساس عملکردشان به شش نوع اساسی تقسیم کرد که در این بخش مورد بررسی قرار میگیرند. ابتدا در ادامه فهرستی از این الگوریتمها ارائه شده است:
- «الگوریتم بازگشتی» (Recursive Algorithm)
- «الگوریتم تقسیم و حل» (Divide and Conquer Algorithm)
- «الگوریتم برنامه نویسی پویا» (Dynamic Programming Algorithm)
- «الگوریتم حریصانه» (Greedy Algorithm)
- «الگوریتم جستجوی فراگیر» (Brute Force Algorithm)
- «الگوریتم عقبگرد» (Backtracking Algorithm)
در بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت» به بررسی الگوریتمهای بازگشتی پرداخته شده است.
- مقاله پیشنهادی: معرفی الگوریتم های مجانبی، حریصانه و برنامه نویسی دینامیک — به زبان ساده
بررسی الگوریتم بازگشتی برای نمونه سوالات الگوریتم و فلوچارت چیست؟
الگوریتم بازگشتی روشی برای حل مسائل است که در آن، مسئله به صورت مکرر به چند زیرمسئله تقسیم میشود و تا زمانی که مسئله به طور کامل حل شود، این روند ادامه دارد. یکی از مثالهای قدیمی و کلاسیک استفاده از الگوریتم بازگشتی، حل مسئله «برج هانوی» (Tower Of Hanoi) است. بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به بررسی الگوریتم تقسیم و حل اختصاص داده میشود.
بررسی الگوریتم تقسیم و حل برای نمونه سوالات الگوریتم و فلوچارت چیست؟
الگوریتم تقسیم و حل دارای دو بخش است که میتوان با استفاده از آنها، این الگوریتم را توصیف کرد. این دو بخش در ادامه شرح داده شدهاند:
- شکستن مسئله به چند زیرمسئله کوچکتر و مستقل از یک نوع
- پیدا کردن راه حل نهایی از مسئله اصلی، بعد از حل کردن همه زیرمسئلههای ایجاد شده
در ادامه تعدادی از نکتههای کلیدی ارائه شدهاند که در رابطه با الگوریتمهای تقسیم و حل وجود دارند:
- اگر بتوان زیرمسئلهها و زیرساخت حلقه مسئله اصلی را پیدا کرد، میتوان به سرعت مسئله اصلی را به یک مسئله کوچک و ساده تبدیل کرد.
- باید سعی شود که همه راه حلها به مراحل مختلف تقسیم شوند تا فرایند آسانتر شود و مراحل مختلف به راه حلهای متفاوتی نیاز دارند.
- اگر مسائل فرعی به سادگی قابل حل نباشند، حل مسئله اصلی زمان زیادی خواهد برد.
بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به بررسی الگوریتم برنامه نویسی پویا اختصاص دارد.
بررسی الگوریتم برنامه نویسی پویا برای نمونه سوالات الگوریتم و فلوچارت چیست؟
الگوریتم برنامه نویسی پویا عموماً برای حل مسائل بهینهسازی مورد استفاده قرار میگیرد. در این نوع از الگوریتمها، نتایج قبلی برای استفاده در آینده جمعآوری میشوند. مانند الگوریتم تقسیم و حل، این الگوریتم نیز یک مسئله پیچیده را به چندین زیرمسئله سادهتر تقسیم میکند. با این حال، تفاوت قابل توجهی که بین این الگوریتمها وجود دارد، این است که الگوریتم برنامه نویسی پویا به همپوشانی زیرمسئلهها احتیاج دارد ولی الگوریتم تقسیم و حل نیازی به این کار ندارد. در بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به بررسی الگوریتم حریصانه پرداخته شده است.
بررسی الگوریتم حریصانه برای نمونه سوالات الگوریتم و فلوچارت چیست؟
یک روش دیگر برای حل مسائل بهینهسازی استفاده از الگوریتم حریصانه به حساب میآید. این الگوریتم به صورتی کار میکند که همیشه به دنبال بهترین راه حل در هر مرحله بدون در نظر گرفتن بهینهسازی کلی مسئله است. روشی که الگوریتم حریصانه انجام میدهد، شبیه به یک بهینهسازی محلی به نظر میآید. با توجه به محدودیتهایی که الگوریتمهای حریصانه دارند، باید توجه داشت که نکته کلیدی انتخاب الگوریتم حریصانه این است که عواقب آن در آینده در نظر گرفته شوند. در بخش بعدی از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به بررسی الگوریتم بروت فورس پرداخته شده است.
بررسی الگوریتم جستجوی فراگیر برای نمونه سوالات الگوریتم و فلوچارت چیست؟
الگوریتم جستجوی فراگیر راه حلی مستقیم و ساده برای حل مسئله بر اساس توصیف مسئله و تعریف مفهوم آن ارائه میدهد. به طور کلی میتوان گفت که بروت فورس یکی از سادهترین الگوریتمها برای حل مسائل به حساب میآید که همه راه حلها را امتحان میکند و یک راه حل مناسب برای حل مسئله انتخاب میکند. در ادامه این بخش از مطلب «نمونه سوالات الگوریتم و فلوچارت با جواب» به شرح و تعریف الگوریتم عقبگرد یا همان پسگرد پرداخته شده است.
بررسی الگوریتم عقبگرد برای نمونه سوالات الگوریتم و فلوچارت چیست؟
بر اساس روش جستجوی اول عمق بازگشتی (Depth-First Recursive Search)، الگوریتم عقبگرد برای یافتن راه حل مسئله مثل یک پردازش شمارش مانند عمل میکند. زمانی که این الگوریتم نمیتواند راه حل مورد نظر را بیابد، به عقب برمیگردد و مسیری بهتر برای حل مسئله مییابد. الگوریتم عقبگرد برای حل مسائل بزرگ و پیچیده مناسب است و به عنوان یک «روش حل کلی» نیز شناخته میشود. یکی از معروفترین الگوریتمهای پسگرد، مسئله «چند وزیر» (n-Queens) به حساب میآید.
جمعبندی
طراحی الگوریتم و فلوچارت یکی از مفاهیم بسیار پایهای ساده مورد نیاز برنامه نویسی و ایجاد انواع برنامههای مختلف به حساب میآید و سعی شد در این مطلب به نمونه سوالات الگوریتم و فلوچارت با جواب پرداخته شود. با توجه به بازار کار امروزی، مشخص است که برنامه نویسی یکی از مشاغل محبوب دنیا به حساب میآید، بنابراین، بررسی سوالات الگوریتم و فلوچارت یکی از کلیدیترین موضوعها برای شروع یادگیری طراحی ایجاد یک برنامه است.
با مطالعه سوالهای موجود در این مطلب میتوان آمادگی کافی برای حل سوالات الگوریتم و فلوچارت مقطع دبیرستان و کارشناسی به دست آورد. همچنین در این مطلب به بررسی مفهوم الگوریتم و فلوچارت و اشکال مورد نیاز برای طراحی یک فلوچارت نیز پرداخته شده است و در نهایت برخی از مهمترین انواع الگوریتمهای برنامه نویسی توضیح داده شدند. ویدیوهای آموزشی نیز برای یادگیری بیشتر مفاهیم مرتبط با الگوریتم و فلوچارت در این مطلب برای دانشجویان و دانشآموزان معرفی شدهاند.