پیش‌گزارش_و_دستور_کار_جلسه_دوم_کارگاه PDF

Summary

This document is a preliminary report and set of instructions for the second session of a computer programming workshop. It covers the fundamentals of algorithms and flowcharts, including examples and exercises for understanding these concepts.

Full Transcript

‫بسمه تعالی‬ ‫دانشکده مهندسی برق و کامپیوتر‬ ‫کارگاه مبانی برنامه نویسی‬ ‫پیشگزارش الگوریتم و فلوچارت‬ ‫)‪(Algorithm & Flowchart‬‬ ‫پاییز ‪1403‬‬ ‫فهرست‬ ‫الگوریتم ‪3.........................

‫بسمه تعالی‬ ‫دانشکده مهندسی برق و کامپیوتر‬ ‫کارگاه مبانی برنامه نویسی‬ ‫پیشگزارش الگوریتم و فلوچارت‬ ‫)‪(Algorithm & Flowchart‬‬ ‫پاییز ‪1403‬‬ ‫فهرست‬ ‫الگوریتم ‪3..........................................................................................................................................................................‬‬ ‫فلوچارت ‪5.........................................................................................................................................................................‬‬ ‫نمادهای فلوچارت ‪5......................................................................................................................................................‬‬ ‫الگوریتم‬ ‫در زندگي روزمره‪ ،‬انسان با مسائل مختلفي روبروست و برای هر كدام از این مسائل راهحلي را برميگزیند‪.‬همه این مسائل‬ ‫نياز به روشي برای حل كردن دارند و باید با ترتيب خاص و مراحل معيني انجام شوند‪.‬روش انجام كار یا حل مسئله را‬ ‫الگوریتم آن مسئله مينامند‪.‬معموالً برای حل یک مسئله‪ ،‬مراحل زیر طي ميشود‪:‬‬ ‫ تعریف مسئله بهصورت جامع و دقيق (شامل تعریف ورودیها و خروجيها)‬ ‫ بررسي راهحلهای مختلف برای حل مسئله‬ ‫ انتخاب مناسبترین راهحل و تهيه یک الگوریتم برای آن‬ ‫ آزمایش الگوریتم با دادههای ورودی و اشکالزدایي آن‬ ‫ تبدیل الگوریتم به یک زبان برنامهنویسي كامپيوتری‬ ‫ وارد كردن برنامه به كامپيوتر و تست و اشکالزدایي آن‬ ‫ استفاده از برنامه‬ ‫برای بيان الگوریتمها معموالً از زبان طبيعي استفاده ميكنيم‪.‬به بيان دقيقتر‪ ،‬الگوریتم مجموعهای از دستورالعملها‪ ،‬برای‬ ‫حل مسئله ميباشد كه‪:‬‬ ‫ دقيق باشد (برداشتهای متفاوتي از دستورالعملهای آن گرفته نشود)‬ ‫ جزئيات كامل حل مسئله را داشته باشد (در طول اجرای الگوریتم عمليات ناشناخته پيش نيامده و باعث انحراف‬ ‫از مسير و هدف اصلي نگردد)‬ ‫ ترتيب مراحل در آن كامالً مشخص باشد‬ ‫ شرط خاتمه در آن كامالً مشخص باشد (پایانپذیر باشد)‬ ‫مثال‪ :‬الگوریتمي بنویسيد كه دو عدد از ورودی دریافت كرده مجموع دو عدد را محاسبه و چاپ نماید‪.‬‬ ‫‪ -1‬شروع‬ ‫‪ a -2‬و ‪ b‬را بخوان‬ ‫‪ -3‬مجموع ‪ a‬و ‪ b‬را محاسبه و در ‪ sum‬قرار بده‬ ‫‪ sum -4‬را در خروجي چاپ كن‬ ‫‪ -5‬پایان‬ ‫مثال‪ :‬الگوریتمي بنویسيد كه دو عدد از ورودی دریافت كرده محتویات آن دو را با هم جابجا كند‪.‬‬ ‫‪ -1‬شروع‬ ‫‪ a -2‬و ‪ b‬را بخوان‬ ‫‪ a -3‬را در ‪ temp‬قرار بده‬ ‫‪ b -4‬را در ‪ a‬قرار بده‬ ‫‪ temp -5‬را در ‪ b‬قرار بده‬ ‫‪ a -6‬و ‪ b‬را در خروجي چاپ كن‬ ‫‪ -7‬پایان‬ ‫مثال‪ :‬الگوریتمي بنویسيد كه عدد طبيعي ‪ n‬را بهعنوان ورودی گرفته و اعداد فرد كوچکتر یا مساوی ‪ n‬را محاسبه و چاپ‬ ‫كند‪.‬‬ ‫مثال‪ :‬الگوریتمي بنویسيد كه عدد طبيعي ‪ x‬را بهعنوان ورودی گرفته و وارون (مقلوب) آن را محاسبه و چاپ كند‪.‬بهعنوان‬ ‫مثال وارون عدد ‪ 3295‬برابر با ‪ 5923‬است‪.‬‬ ‫‪ -1‬شروع‬ ‫‪ x -2‬را بخوان‬ ‫‪y ← 0 -3‬‬ ‫‪ -4‬تا زمانيكه ‪ x > 0‬دستورات ‪ 5‬تا ‪ 7‬را تکرار كن‬ ‫‪r ← x mod 10 -5‬‬ ‫‪x ← x / 10 -6‬‬ ‫‪y ← y × 10 + r -7‬‬ ‫‪ y -8‬را چاپ كن‬ ‫‪ -9‬پایان‬ ‫فلوچارت‬ ‫معموالً درك یک الگوریتم با شکل راحتتر از نوشتن آن بهصورت متن است‪.‬بنابراین معموالً الگوریتم را با فلوچارت‬ ‫(‪ )Flowchart‬نمایش ميدهند كه نمایش شماتيک و گرافيکي الگوریتم است‪.‬به بيان دیگر‪ ،‬به عالئمي كه الگوریتم را با‬ ‫استفاده از نمادهای تصویری بيان ميكند فلوچارت گفته ميشود‪.‬‬ ‫نمادهای فلوچارت‬ ‫‪.1‬نمادهای شروع و پایان‪ :‬نمادهای شروع و پایان را با دایره یا بيضي نشان ميدهيم‪.‬هنگامي كه قصد دارید نقطه آغاز‬ ‫یا پایان یک فلوچارت را نمایش دهيد باید از نماد دایره یا بيضي استفاده كنيد‪.‬به یاد داشته باشيد كه در فلوچارت‬ ‫تنها باید یک نقطه شروع وجود داشته باشد‪ ،‬اما برنامه ميتواند چندین حالت مختلف برای پایان داشته باشد كه همه‬ ‫آنها به نماد پایان متصل ميشوند‪.‬الزم به ذكر است كه از هر مرحله ميتوان به هر یک از مراحل قبلي غير از نقطه‬ ‫شروع رفت اما از نقطه پایان نميتوان پيکاني خارج كرد‪.‬‬ ‫‪.2‬نمادهای ورودی و خروجی‪ :‬ورودیها و خروجيها را با متوازی االضالع نمایش ميدهيم‪.‬هنگاميكه قصد دارید‬ ‫مقداری را از كاربر دریافت كنيد باید نام آن متغيرها را در عالمت متوازیاالضالع نمایش دهيد‪.‬همچنين نماد‬ ‫متوازیاالضالع در فلوچارت به معني نمایش دستورات خروجي نيز است‪.‬‬ ‫‪.3‬دستورات محاسبهای و انتساب‪ :‬برای دستورات محاسباتي و انتساب از نماد مستطيل استفاده ميكنيم كه‬ ‫پركاربردترین نماد در فلوچارت است‪.‬‬ ‫‪.4‬دستورات شرطی‪ :‬عالمت شرط را با لوزی نمایش ميدهيم‪.‬دستورات شرطي معموالً در یک برنامه كامپيوتری زیاد‬ ‫استفاده ميشوند‪.‬حلقههای تکرار در برنامهنویسي با استفاده از همين نماد نمایش داده ميشوند‪.‬‬ ‫‪.5‬نماد خروجی (بر روی کاغذ)‪ :‬چاپ خروجي بر روی كاغذ با استفاده از چهار ضلعي منحني نمایش داده ميشود‪.‬‬ ‫قالب كلي یک فلوچارت را ميتوان بهصورت زیر نشان داد‪.‬‬ ‫مثال‪ :‬فلوچارتي رسم كنيد كه سه عدد را از ورودی دریافت كرده‪ ،‬مجموع و ميانگين آنها را محاسبه و چاپ كند‪.‬‬ ‫مثال‪ :‬فلوچارتي رسم كنيد كه ‪ N‬عدد را از ورودی خوانده و مجموع آنها را محاسبه و چاپ نماید‪.‬‬ ‫مثال‪ :‬فلوچارتي رسم كنيد كه عدد طبيعي ‪ N‬را از ورودی خوانده و فاكتوریل آن را محاسبه و چاپ نماید‪.‬‬ ‫بهعنوان مثال !‪ 4‬بهصورت زیر محاسبه ميشود‪:‬‬ ‫مثال‪ :‬فلوچارتي رسم كنيد كه یک عدد را از ورودی خوانده و تعداد ارقام غيرصفر آن را چاپ كند‪.‬‬ ‫دستور کار‬ ‫‪ -1‬الگوریتمی بنویسید که ‪ n‬عدد را از ورودی خوانده‪ ،‬عدد ماکزیمم بههمراه اندیس آن را در خروجی‬ ‫چاپ کند‪.‬‬ ‫‪ -2‬الگوریتمی بنویسید که یک عدد در مبنای ‪ 10‬را از ورودی خوانده و معادل آن در مبنای ‪ 8‬را محاسبه‬ ‫و چاپ کند‪.‬‬ ‫‪ -3‬فلوچارتی رسم کنید که عدد طبیعی ‪ n‬را از ورودی خوانده مقسومعلیههای اول آن را نمایش دهد‪.‬‬ ‫‪ -4‬فلوچارتی برای محاسبه مجموع ‪ 20‬جمله اول سری فیبوناچی رسم کنید‪.‬‬ ‫‪ -5‬فلوچارتی رسم کنید که ‪ n‬عدد را از ورودی خوانده‪ ،‬دومین عدد کوچک را در خروجی چاپ کند‪.‬‬ ‫بهعنوان مثال اگر اعداد زیر از ورودی خوانده شوند عدد ‪ 5‬باید در خروجی چاپ شود‪.‬‬ ‫‪10 37 7 12 1 18 5 25 9‬‬ ‫‪ -6‬عملکرد فلوچارت زیر را توصیف کنید‪.‬‬ ‫شاد باشید(‪:‬‬

Use Quizgecko on...
Browser
Browser