ابتدا پاسخ تمرینی که در پست قبلی گفته شد را توضیح می دهیم.
برای عوض کردن محتویات دو متغیر، بدون استفاده از متغیر کمکی کافی است به شکل زیر عمل کنیم.
فرض کنیم که متغیر x=5 و متغیر y=3 است.حال باید:
x← y+x
با انجام عملیات بالا مقدار x از 5 به 8 تغییر می کند.سپس باید:
y← x-y
و با این کار مقدار y از 3 به 5 تغییر می کند.سپس باید:
x← x-y
و با این کار نیز مقدار x از 8 به 3 تغییر می کند.
دیدیم که با سه عملیات ساده توانستیم محتویات دو متغیر را عوض کنیم.
الگوریتمی بنویسید که نشان دهد عددی عدد تام است یا نه؟
عدد تام چیست؟عدد تام یا کامل عددی است که مجموع مقسوم علیه های یک عدد برابر خود عدد شود
البته خود عدد را نباید در جمع حساب کنیم.به عنوان مثال:
مقسوم علیه های عدد 6 برابر است با:1-2-3-6.
اگر اعداد 1 و 2 و 3 را با هم جمع کنیم، جواب برابر است با 6.پس نتیجه می گیریم که عدد 6 یک عدد
کامل است.همانطور که مشاهده کردید عدد 6 را جمع نکردیم.
حالا میخواهیم الگوریتمی بنویسیم که عددی را از کاربر دریافت کند و نشان دهد که این عدد تام است یانه.
1- شروع
2- n را بگیر.
3- 1← i و 0← sum
4- اگر i
5- R←n%i
6- اگر R=0.برو به خط 7 وگرنه برو به خط 8.
7- sum←sum+i
8- i←i+1 و برو به خط 4.
9- اگر sum=n. بنویس"عدد تام است." وگرنه
بنویس "عدد تام نیست."
10-پایان
توضیح الگوریتم
در خط 2 ابتدا عددی را از کاربر دریافت می کنیم و در خط 3 به متغیر هایی تعریف می کنیم و
به آن ها مقدار هایی می دهیم.در خط 4 شرطی را در نظر می گیریم.
*هیچ عددی از نصف خودش بیشتر به جز خود عدد، عددی بخش پذیر ندارد.
از خط 5 تا خط 7 یک حلقه دیگر در نظر می گیریم.اگر دقت کرده باشید این الگوریتم دارای حلقه های
تو در تو است.پس از تمام شدن حلقه و خارج از آن در خط 9 شرطی را برسی می کنیم و طبق آن
شرط یکی از پیام های عدد تام است و یا عدد تام نیست را چاپ می کنیم.
بیشتر از این بحث را طولانی نمی کنیم و در آینده نمونه سوال هایی از الگوریتم و فلوچارت را در
انجمن مطرح می کنیم و به برسی آنها می پردازیم.