الگوریتم یکی از راههای حل مسئله با روشهای ریاضی و منطقی است، این روش برای نخستین بار توسط خوارزمی (دانشمند ایرانی) مورد توجه قرار گرفت، در حال حاضر اساس اجرای بسیاری از برنامههای کامپیوتری روش خوارزمی است، نام الگوریتم نیز به احترام این دانشمند و از کلمهی الخوارزمی گرفته شده است.
در این آموزش قصد داریم با زبانی ساده مفهوم الگوریتم را برای شما شرح دهیم و مثالهایی کاربردی از الگوریتم را در زندگی روزمره با هم بررسی کنیم، پس از آن چند الگوریتم ریاضی را با هم بررسی کرده و در پایان نیز با برخی از الگوریتمهای پرکاربرد علم کامپیوتر آشنا خواهیم شد.
همانطوری که گفته شد، اساس اجرای بسیاری از برنامههای کامپیوتری، الگوریتم میباشد، طرح اصلی خیلی از نرمافزارهایی که در حال استفاده از آنها هستیم ابتدا توسط الگوریتم و فلوچارت (روندنما) ایجاد و سپس به برنامه و در نهایت به زبان کامپیوتر تبدیل میشود، بنابراین اگر میخواهید برنامه نویس خوبی شوید و از پس حل مسائل مختلف برآیید باید به خوبی با مفهوم الگوریتم آشنا بوده و بتوانید طرح و ایدهی خود را در قالب الگوریتم و فلوچارت پیادهسازی کنید.
شاید با دیدن تصویر بالا پیش خود فکر کنید که میخواهیم برای شروع آموزش الگوریتمنویسی شما را با تعداد زیادی محاسبات ریاضی گیج کننده درگیر کنیم، باید بگوییم که اصلا اینطور نیست!
برای شروع احتیاجی به این محاسبات پیچیده نداریم، هرچند که باید بدانیم اساس کار برنامههای کامپیوتری بر مبنای همین محاسبات پیچیده است.
“دونالد کنوت“ یکی از دانشمندان بزرگ علوم کامپیوتر میگوید: علم کامپیوتر چیزی جز مطالعهی الگوریتمها نیست.
راه حل مسائل پیچیده و بزرگی که بر سر راه یک برنامه نویس پیش میآیند، تسلط بر الگوریتمهاست؛ زیرا با نوشتن یا تصور یک الگوریتم منطقی میتوان بر تمام مسائل غلبه کرد.
برای نوشتن یک الگوریتم مناسب باید سه عامل اصلی را در صورت مسئله شناسایی کنیم:
- مقادیر معلوم: اطلاعاتی که در اختیار ما قرار داده شده و باید به کمک آنها به حل مسئله بپردازیم (دادهها)
- خواستههای مسئله: نتایجی که در اثر انجام محاسبات بر روی دادههای مسئله حاصل میشود (مقادیر مجهول)
- عملیات محاسباتی: دستورات و روابط منطقی که برای رسیدن به خواستههای مسئله بر روی دادهها و مقادیر مجهول انجام میشود.
به عنوان مثال فرض کنید وزن مقداری سیب و قیمت هر کیلوگرم از آن به ما داده شده است، از ما خواسته میشود قیمت کل سیبها را محاسبه کنیم.
در این مثال:
دادهها: وزن سیبها (W) و قیمت هر کیلوگرم سیب (P)
خواستهها: محاسبهی قیمت کل سیبها (T)
عملیات محاسباتی: قیمت کل = وزن سیبها * قیمت هر کیلوگرم
مراحل حل مسئله به صورت زیر است:
T=W×P
الگوریتم چیست؟
الگوریتم مفهومی است که مسائل را با استفاده از دستورالعملهای پشت سرهم و به کمک تحلیلهای ریاضی و منطقی مورد بررسی قرار داده و راه حل مناسبی برای آن ارائه می کند، الگوریتم به ما کمک میکند مراحل حل مسئله را به زبان رایانه نزدیکتر کرده و در نهایت آن را به کدهای قابل فهم کامپیوتر تبدیل کنیم.
همچنین تعریفی که برای الگوریتم در ویکیپدیا ارائه شده است:
مجموعهای متناهی از دستورالعملها است، که به ترتیب خاصی اجرا میشوند و مسئلهای را حل میکنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است. شیوه محاسبه معدل در مدرسه، یکی از نمونههای الگوریتم است.
حال بیایید یک نمونه الگوریتم که مطمئنا بسیاری از ما تا بهحال طبق آن عمل کردهایم را به هم بررسی کنیم.
به عنوان مثال فرض کنید میخواهیم مراحل رفتن به دانشگاه را به صورت مرحله به مرحله بنویسیم!
- شروع
- بیدار شدن از خواب
- شستن دست و صورت
- خوردن صبحانه
- پوشیدن لباس مناسب
- برداشتن وسایل مورد نیاز (کتاب و …)
- خروج از خانه
- رفتن به دانشگاه
- ورود به کلاس
- پایان
چیزی که واضح است این دستورات باید به ترتیب انجام شوند، در غیر اینصورت امکان بروز خطا وجود دارد، الگوریتمهای کامپیوتری نیز به همین صورت هستند، در صورتی که ترتیب اجرای دستورات آنها به درستی در نظر گرفته نشود احتمال تولید خروجی نامعتبر بسیار بالا خواهد رفت.
حال یک مثال سادهی دیگر از الگوریتمها را با هم بررسی میکنیم، فرض کنید قصد داریم الگوریتم پخت کیک را بنویسیم، مراحل نوشتن این الگوریتم به شکل زیر خواهد بود:
- شروع
- تهیهی آرد
- تهیهی شکر
- تهیهی تخممرغ
- تهیهی آب
- مخلوط کردن، آرد، شکر، تخممرغ و آب
- ریختن محتویات در ظرف مخصوص
- قرار دادن ظرف در فر یا مایکروویو
- روشن کردن حرارت
- صبر کردن تا پخت کامل کیک
- خارج کردن کیک از فر
- برش کیک به قطعات دلخواه
- پایان
همانطور که در این مثال نیز به خوبی مشخص است، تمام مراحل کار، با جزئیات کامل، به صورت گام به گام نوشته شده است، مهمترین نکته برای نوشتن یک الگوریتم خوب رعایت همین موضوع ساده است، شما باید تمام فرایند انجام یک کار را به صورت مرحله به مرحله بنویسید.
مثال کاربردی از الگوریتمها در برنامهنویسی
فرض کنید قصد داریم برنامهای ایجاد کنیم که یک عدد را دریافت کرده و در صورت فرد بودن عدد عبارت Fard و در صورت زوج بودن عبارت Zoje را چاپ کند، مراحل این الگوریتم به شرح زیر است:
- عدد را دریافت کن
- عدد را تقسیم بر ۲ کن
- اگر باقی مانده برابر با ۱ بود عبارت Fard را نمایش بده در غیر این صورت عبارت Zoje را نمایش بده.
- پایان
جالب است بدانید، راههای زیادی برای نوشتن یک الگوریتم وجود دارد، آنهم الگوریتمی که دقیقا یک نتیجهی یکسان را در پی داشته باشد، آیا میتوانید چند پاسخ دیگر نیز برای سوال بالا بنویسید؟ الگوریتمهای نوشتهشدهی خود را در بخش دیدگاهها به ما و سایر کاربران نشان دهید!
نکات مهمی که باید در نوشتن الگوریتم به آنها توجه داشته باشید
رعایت این موارد برای نوشتن یک الگوریتم صحیح لازم و ضروری است:
- مراحل را به ترتیب و پشت سر هم بنویسید (اجرا از بالا به پایین)
- قدمهای ضروری را در نظر گرفته و آنها را در طرح خود به کار ببرید.
- از بیان جزئیات بیهوده پرهیز کرده و سعی کنید تا حد امکان مراحل را ساده و در عین حال کامل بنویسید.
- از زبانی ساده برای نوشتن الگوریتم استفاده کنید، طوری که افراد مختلف برداشت متفاوتی از آن نداشته باشند.
- هر الگوریتم تنها یک نقطه شروع دارد که اولین دستورالعمل از آن شروع میشود، ولی میتواند چندین پایان داشته باشد.
- الگوریتم باید جامع باشد، طوری که در حالتهای خاص نیز نتیجهی مناسب را به شما بدهد.
- اولویت عملگرهای ریاضی را هنگام نوشتن طرحتان در نظر داشته باشید (به عنوان مثال محاسبه حاصل ضرب نسبت به محاسبه حاصل جمع در اولویت است)
به یاد داشته باشید، نمادهای ریاضی که از آنها برای حل الگوریتم استفاده میکنید باید در صفحه کلید رایانه شما نیز وجود داشته باشند! خیلی از نمادهای ریاضی (مانند خط کسری، توان و…) را نمیتوانید بر روی کیبورد خود بیابید در نتیجه اجازه ندارید برای نوشتن الگوریتم از آنها استفاده کنید.
فرض کنید میخواهید عبارت زیر را به صورت قابل فهم برای رایانه (به صورت الگوریتم) بنویسید:
شما نمیتوانید این عبارت را با استفاده از کیبورد رایانهی خود بنویسید، در نتیجه باید آن را به صورت زیر ایجاد کنید:
توصیهی همیار آی تی: فرض کنید رایانه مانند کودکی است که چیزی نمیداند و شما میخواهید مراحل حل یک مسئله را برای او توضیح دهید، باید سعی کنید تمام نکات ضروری را به صورت مرحله به مرحله برای او بنویسید تا مطابق دستورالعملهای شما پیش برود و در نهایت به نتیجهی مورد نظر برسد.
اگر جزئیات بیهوده را در مراحل قرار دهید باعث گیج شدن او خواهید شد، همچنین اگر توضیحات کامل نباشد به نتیجهی دلخواه نخواهید رسید، رایانه ما فعلا فقط چهار عمل اصلی را میشناسد و شما باید با استفاده از آنها مراحل حل مسئله را برای او توضیح دهید، برای نشان دادن اولویتها میتوانید از پرانتز کمک بگیرید.
چگونه یک الگوریتم بنویسیم؟
یک الگوریتم شامل تعدادی از دستورات است:
- دستورات ورودی
- دستورات خروجی
- دستورات محاسباتی
- دستورات شرطی
- دستورات تکرار
در ادامه به صورت کامل با تمام این حالات آشنا میشویم:
دستورات ورودی
این دستورات برای دریافت دادههای ورودی استفاده میشوند، شما میتوانید یک نام اختصاری را به متغیرهای ورودی تخصیص دهید. (بخوان، دریافت کن، بگیر و… جزو این نوع دستورات میباشند)
دستورات خروجی
این دستورات برای نمایش نتایج الگوریتم یا نمایش پیامهای مورد نیاز به کار میروند (نمایش بده، چاپ کن و… از جمله دستورات خروجی هستند)
مثال: الگوریتمی بنویسید که اعداد مثبت کوچکتر از ۶ را نمایش بدهد.
- شروع
- اعداد ۱، ۲، ۳، ۴، ۵ را نمایش بده.
- پایان
مثال: الگوریتمی بنویسید که یک عدد را از کاربر دریافت کرده و آنرا در خروجی نمایش دهد.
- شروع
- N را دریافت کن.
- N را نمایش بده.
- پایان
(در این مثال N یک متغیر است که مقدار ورودی در آن ذخیره میشود)
دستورات محاسباتی
این دستورات نحوهی ارائه و محاسبات دستورات را با فرمولهای ریاضی بیان کرده و به زبان ریاضی نیز نوشته میشوند که شامل ۳ جز اصلی میباشد:
- متغیر
- عملگرهای محاسباتی
- عملوندهای محاسباتی
متغیر: عنوانهایی متشکل از حرف و عدد که مقدار آنها قابل تغییر است (a, b, n, s2 …)
عملگرهای محاسباتی: عملگرهای ریاضی از پیش تعریف شده در دستگاه الگوریتم (+ , – , * , / , % , =)
عملوندهای محاسباتی: اعداد و عباراتی که محاسبات بر روی آنها انجام میشود (شامل اعداد و متغیرها)
معرفی عملگرهای مورد استفاده در نوشتن الگوریتم:
( ) پرانتز ⇐ برای نشان دادن اولویت انجام مجاسبات استفاده میشود.
× یا * ضرب ⇐ برای ضرب دو یا چند عبارت استفاده میشود.
/ تقسیم ⇐ برای تقسیم کردن عبارات استفاده میشود.
% باقیمانده ⇐ برای نشان دادن باقیمانده تقسیم دو عدد از علامت درصد استفاده میشود.
+ جمع ⇐ برای جمع کردن دو عبارت استفاده میشود.
– تفریق ⇐ برای تفریق کردن دو عدد استفاده میشود.
توجه: از این به بعد هنگام نوشتن الگوریتم، از علامت تساوی (=) با عنوان انتساب استفاده میکنیم، اگر بخواهیم نتایج حاصل از یک عبارت یا ورودی را در یک متغیر ذخیره کنیم از این علامت استفاده خواهیم کرد.
مثال: حاصل عبارت ۲*۵ را در متغیر P ذخیره کنید.
- شروع
- P=2*5
- پایان
توجه داشته باشید: حق تقدم را در استفاده از عملگرهای ریاضی رعایت کنید!
اولویت عملگرهای ریاضی به ترتیب زیر است:
- پرانتز
- ضرب، تقسیم و باقیمانده
- جمع و تفریق
اگر در یک سطر اولویتها یکسان باشند عملیات به ترتیب از چپ به راست انجام خواهد شد.
مثال: الگوریتمی بنویسید که دو عدد را از کاربر دریافت کرده و حاصل ضرب آن ها را نمایش دهد.
- شروع
- a و b را دریافت کن.
- zarb=a*b
- zarb را نمایش بده.
- پایان
مثال: الگوریتمی بنویسید که میانگین ۳ عدد را محاسبه کرده و نمایش دهد.
- شروع
- اعداد a , b , c را دریافت کن.
- ۳/(a+b+c) نمایش بده.
- پایان
حال که تا حدودی با نحوهی نوشتن و دستورات ورودی، خروجی و محاسباتی در الگوریتمها آشنا شدیم، وقت آن است که وارد مفاهیم حرفهای و شیرینتر الگوریتمها شده و یاد بگیریم چگونه میتوان الگوریتم دستورات شرطی را نوشت.
آموزش نوشتن الگوریتم دستورات شرطی
یکی از پرکاربردترین دستوراتی که در برنامهنویسی استفاده میشوند، دستورات شرطی میباشند، در این دستورات ابتدا شرط (شرطها) بررسی شده و در صورت صحیح بودن آنها دستور (دستورات) خاصی اجرا میشود. قالب کلی دستورات شرطی به شکل زیر است:
اگر شرط برقرار بود آنگاه دستوری خاص را انجام بده، در غیر اینصورت دستور دیگری را انجام بده.
با یک مثال ساده شروع میکنیم: اگر تلفنهمراه شارژ نداشت، شارژر را به آن متصل کن. در این مثال شرط ما داشتن یا نداشتن شارژ است، اگر شرط برقرار باشد دستور اجرا میشود. همانگونه که دیدید میتوانیم بخش “در غیر این صورت” را از دستور حذف کنیم، در این حالت اگر شرط برقرار نباشد دستور خاصی اجرا نمیشود و ادامه الگوریتم از سر گرفته میشود.
از چه دستوراتی میتوانیم در شرط استفاده کنیم؟
شما از دستورات خاصی میتوانید در قسمت شرطی الگوریتم خود استفاده کنید، که شامل موارد زیر میشوند:
- عملگرهای مقایسهای (کوچکتر، بزرگتر، مساوی، نامساوی و…)
- عملگرهای منطقی (and, or, not)
عملگرهای مقایسهای
عملگرهای مقایسهای که میتوانید در نوشتن الگوریتم شرطی خود از آنها استفاده کنید شامل دستورات زیر مشوند:
- == عملگر تساوی مثال ۴ == ۴
- =< عملگر بزرگتر مساوی مثال ۱ =< 5
- => عملگر کوچکتر مساوی مثال 5 => 1
- < عملگر بزرگتر مثال ۲ < 3
- > عملگر کوچکتر مثال ۴ > 2
- =! عملگر نامساوی مثال ۲ =! ۳
- شروع
- N را دریافت کن.
- اگر ۰ =< N آنگاه “Mosbat” را نمایش بده، در غیر اینصورت “Manfi” را نمایش بده.
- پایان
مثال: الگوریتمی که دو عدد را دریافت کند و نشان دهد میانگین آنها بزرگتر یا مساوی ۲۰ است یا خیر.
- شروع
- a و b را دریافت کن
- sum=a+b
- ave=sum/2
- اگر ave >= 20 آنگاه “Yes” را چاپ کن
- اگر ave < 20 آنگاه “No” را نمایش بده
- پایان
مثال: الگوریتمی بنویسد که ۳ عدد را دریافت کرده و بزرگترین را در میان آنها بیابد.
- شروع
- a, b, c را دریافت کن.
- max=a
- اگر b > max آنگاه max=b
- اگر c > max آنگاه max=c
- max را نمایش بده.
- پایان
عملگرهای منطقی
اگر بخواهیم چند شرط و مقایسه را با هم ترکیب کنیم باید از عملگرهای منطقی استفاده کنیم، که شامل دستورات زیر میشوند:
- and: عملگر “و” منطقی (and منطقی) این عملگر شرطها را بررسی میکند و اگر تمام آنها درست باشند دستورات شرط برقرار میشود، اما اگر تنها یکی از شرطها برقرار نباشد، دستورات شرط اجرا نخواهند شد.
- or: عملگر “یا” منطقی (or منطقی) این عملگر شرطها را بررسی میکند و اگر تنها یکی از آنها نیز درست باشد دستورات شرط برقرار میشود، فقط در صورتی که هیچ کدام از شرایط برقرار نباشد دستورات اجرا نمیشود.
- not: عملگر “نقیض” این عملگر تمام دستورات را نقض میکند، یعنی عبارات صحیح غلط و عبارات غلط صحیح میشوند.
مثال: عدد ۱ را به عنوان مقدار صحیح (True) و عدد ۰ را به عنوان مقدار نادرست (False) در نظر بگیرید. در این صورت:
- ۱ و ۱ و ۰ و ۱ ⇐ مقدار غلط ⇐ به دلیل وجود ۰ و and منطقی.
- ۱ یا ۰ یا ۰ یا ۰ ⇐ مقدار صحیح ⇐ به دلیل وجود ۱ و or منطقی.
- not 1 ⇐ مقدار غلط ⇐ ۱ مقدار صحیح را داشت ولی به خاطر وجود عملگر not نقض شده و معکوس میشود.
- ۱ و ۱ و ۱ ⇐ مقدار صحیح ⇐ چون تمام مقادیر صحیح هستند پس مقدار and منطقی صحیح میشود.
- ۰ یا ۰ ⇐ مقدار غلط ⇐ چون تمام مقادیر غلط هستند or منطقی نیز غلط میشود.
مثال: الگوریتمی بنویسید که دو عدد را دریافت کرده و مشخص کند مجموع آن دو عدد بین ۰ تا ۲۰ هست یا خیر.
- شروع
- m و n را دریافت کن.
- sum=m+n
- اگر sum>0 و sum<20 آنگاه چاپ کن “Yes” در غیر اینصورت “No” را چاپ کن.
- پایان
(همانگونه که مشاهده میکنید در دستور شرط از and منطقی “و” استفاده کردیم، بدین ترتیب برای اجرای دستور باید هر دو شرط همزمان برقرار باشد، با اینکار توانستیم بازهی اعداد را مشخص کنیم)
آیا تا بهحال به این فکر کردهاید چگونه باید یک دستور را به تعداد زیاد تکرار کنید، بهعنوان مثال فرض کنید قصد داریم الگوریتمی بنویسیم که اعداد ۱ تا ۱۰۰۰۰ را به ترتیب نمایش دهیم، مطمئنا در چنین حالتی نمیتوان بهتعداد ۱۰۰۰۰ بار یک دستور تکراری را نوشت، اینجاست که الگوریتمهای تکرار (حلقهها) به کمک برنامهنویس میآیند.
آموزش الگوریتم دستورات تکرار (حلقهها)
دستور تکرار (حلقه) از ۴ بخش اصلی تشکیل میشود:
- شمارنده: متغیری عددی که تعداد دفعات تکرار را کنترل میکند و مقدار آن در هر بار اجرای حلقه افزایش یا کاهش مییابد.
- مقدار اولیه: مقداری که قبل از شروع حلقه برای شمارنده تعیین میشود.
- شرط حلقه: شمارنده را کنترل کرده و پایان تکرار (خروج از حلقه) را مشخص میکند.
- دستورات حلقه: دستورات مورد نظر ما که در حلقه اجرا (و تکرار) میشوند.
مثال: الگوریتمی بنویسید که عدد ۱۰ را ۱۰۰ بار نمایش دهد.
- شروع
- count=1
- “۱۰” را نمایش بده
- count=count+1
- اگر count<=100 به مرحلهی ۳ برو
- پایان
توضیح مثال بالا: پس از شروع الگوریتم، مقدار اولیهی ۱ را در متغیر count قرار میدهیم، در مرحلهی بعد عدد ۱۰ را یکبار نمایش میدهیم، در مرحلهی ۴ یک واحد به مقدار اولیه اضافه میکنیم و مجددا آن را در متغیر شمارنده (count) قرار میدهیم، سپس بررسی میکنیم اگر شمارنده کوچکتر از ۱۰۰ بود مجددا دستور ۳ (نمایش عدد ۱۰) را تکرار میکنیم، مجددا مراحل را طی میکنیم تا به مرحلهی بررسی شرط برسیم، اگر شرط برقرار بود مجددا دستور اجرا میشود(به مرحلهی ۳ بازمیگردیم)، این فرآیند آنقدر تکرار میشود تا شرط حلقه از حالت برقرار بودن خارج شود (یعنی شمارنده به عدد ۱۰۱ برسد) در این حالت دستور شرط (رفتن به مرحلهی ۳) انجام نمیشود و الگوریتم از اجرای حلقه خارج میشود، نتیجهی این الگوریتم نمایش عدد ۱۰ به اندازهی ۱۰۰ مرتبه است!
مثال: الگوریتمی بنویسید که محیط و مساحت ۱۲ دایره را محاسبه کرده و نمایش دهد.
- شروع
- count=1
- R را دریافت کن
- P=2*3.14*R
- S=3.14*R*R
- S و P را نمایش بده
- count=count+1
- اگر count<=12 آنگاه به مرحلهی ۳ برو.
- پایان
مثال: الگوریتمی بنویسید که اعداد مثبت کوچکتر از ۵۰ را نمایش دهد.
- شروع
- count=1
- count را نمایش بده
- count=count+1
- اگر count<50 به مرحلهی ۳ برو
- پایان
مثال: الگوریتمی بنویسید که اعداد طبیعی کوچکتر از عدد دلخواه N را نمایش دهد.
- شروع
- N را دریافت کن
- count=1
- count را نمایش بده
- count=count+1
- اگر count<N آنگاه به مرحلهی ۴ برو
- پایان
مثال: الگوریتمی بنویسید که مجموع اعداد طبیعی کوچکتر از N را نمایش دهد.
- شروع
- N را دریافت کن
- count=1
- sum=0
- sum=count+sum
- count=count+1
- اگر count<N به مرحلهی ۵ برو
- sum را نمایش بده
- پایان
توضیح مثال بالا: در اینجا count را به عنوان شمارنده و sum را به عنوان مجموعهی اعداد در نظر گرفتیم، در مرحلهی ۵ مقدار شمارنده و مقدار مجموع با هم جمع شده و در sum ذخیره میشوند، سپس یک واحد به شمارنده افزوده میشود پس از آن شرط حلقه بررسی شده و اگر برقرار بود به مرحلهی ۵ بازمیگردیم. حال مقدار جدید شمارنده به حاصل جمعهای قبلی افزوده میشود و مجددا در sum ذخیره میشود، این دستورات تا زمانی که شرط حلقه برقرار باشد (شمارنده به مقدار N برسد) انجام میشود، پس از آن از حلقه خارج میشود و بقیه دستورات اجرا خواهند شد.
مثال: الگوریتمی بنویسید که تا زمانی که کاربر عدد منفی وارد نکرده از او عدد بگیرد و در پایان تعداد اعداد وارد شده را نمایش دهد.
- شروع
- count=0
- N را دریافت کن
- count=count+1
- اگر N>=0 به مرحلهی ۳ برو
- count را نمایش بده
- پایان
توضیح مثال بالا: در این الگوریتم ابتدا یک شمارنده به نام count ایجاد کردیم تا با استفاده از آن تعداد اعداد وارد شده را شمارش کنیم، سپس عدد N را دریافت میکنیم و بلافاصله یک واحد به شمارنده اضافه میکنیم، سپس بررسی میکنیم و اگر عدد وارد شده مثبت باشد (منفی نباشد) مجددا به مرحله ۳ رفته و عدد بعدی را دریافت میکنیم و یک واحد نیز به شمارنده اضافه میکنیم، حال شرط را چک کرده و در صورت برقرار بودن مجددا دستورا اجرا میشوند و در نهایت تعداد اعداد وارد شده (count) نمایش داده میشود.
همانگونه که متوجه شدید شرط این حلقه به شمارنده وابسته نبود و بستگی به این داشت که کاربر چه عددی را وارد کند، از شمارنده (در اینجا count) به عنوان متغیری برای شمارش تعداد اعداد وارد شده استفاده کردیم و در نهایت آنرا به کاربر نمایش دادیم.
در پایان این آموزش شما باید مهارتهای زیر را کسب کرده باشید:
- با مفهوم الگوریتم و کاربرد آن آشنا شده باشید.
- بتوانید برای حل مسائل الگوریتم مناسب را ارائه دهید.
برای درک بهتر این آموزش تمرینهای زیر را انجام دهید:
- دادهها و خواستههای مسئله برای حل یک معادلهی درجه ۲ را بنویسید.
- فرض کنید طول (L)، عرض (W) و ارتفاع (H) یک مکعب مستطیل به شما داده شده و حجم آن (V) را از شما میخواهند، نحوه حل این مسئله را به صورت مرحله به مرحله بنویسید.
- اگر a=5 و b=3 و c=10 باشد حاصل عبارات زیر را بیابید و آنها را در متغیر p ذخیره کنید.
- a-b*c
- a-b)*c)
- c%a
- c/a*b
- الگوریتمی بنویسید که شعاع یک دایره را دریافت کرده و محیط و مساحت آن را نمایش دهد.
- الگوریتمی بنویسید که ۳ عدد را دریافت کرده، سپس کوچکترین و بزرگ ترین مقدار را مشخص کند.
- الگوریتمی بنویسید که نمرات چهار درس ریاضی، فیزیک، زبان و ورزش یک دانش آموز را دریافت کرده، سپس میانگین آنها را محاسبه کند و با توجه به شرایط زیر رتبهی دانشآموز را محاسبه کرده و نمایش دهد.
- میانگین بزرگتر از ۱۸ برابر رتبهی A
- میانگین بین ۱۶ تا ۱۸ و ریاضی بزرگتر از ۱۷ برابر رتبهی B
- میانگین بین ۱۴ تا ۱۶ و ریاضی یا فیزیک بزرگتر از ۱۵ برابر رتبه C
- میانگین کمتر از ۱۲ و ریاضی و فیزیک کمتر از ۱۲ برابر رتبه E
- الگوریتمی بنویسید که مجموع و تعداد اعداد طبیعی مضرب ۳ و کوچکتر از ۱۰۰ را نمایش دهد.
- الگوریتمی بنویسید که مقدار عددی !N (مقدار N فاکتوریل) را برای عدد دلخواه N محاسبه کرده و نمایش دهد.