5 / 5. 2

فهرست مطالب

فهرست مطالب

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

الگوریتم محاسبه فاکتوریل ، الگوریتمی است که بتواند یک عدد را از کاربر بگیرد و فاکتوریل آن عدد را محاسبه کند.

فاکتوریل در تعریف به معنای حاصلضرب یک عدد در تمام اعداد کوچکتر از آن (به غیر از صفر ) می باشد.

برای مثال: فاکتوریل عدد 7 برابر است با :

5040=1*2*3*4*5*6*7

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

حالا بیایید، الگوریتم محاسبه فاکتوریل را بنویسیم و در هر مرحله جدول دیباگ را تکمیل کنیم.

1- الگوریتم محاسبه فاکتوریل یک عدد

  • مرحله اول

مرحله اول دریافت ورودی می باشد. یعنی عددی که می خواهیم فاکتوریل آن را محاسبه کنیم. سپس، این عدد را در یک متغیر دلخواه مثل n قرار می دهیم(مثلا n=7).

حالا جدول دیباگ آن را به این شکل رسم می کنیم:

الگوریتم محاسبه فاکتوریل یک عدد
شکل 1- دریافت عدد از کاربر و نگهداری آن در متغیر N
  • مرحله دوم

 تعریف یک شمارنده که این شمارنده، قادر است اعداد 1 تا 7 را در خودش نگه دارد. اسم این متغیر را c می گذاریم و مقدار اولیه آن 1 است.

*نکته: اگر میخواستیم اعداد 0 تا 7 را بشماریم، آنگاه باید مقدار C را صفر می گذاشتیم.

همچنین مانند مرحل قبل، جدول دیباگ را تکمیل می کنیم:

الگوریتم محاسبه فاکتوریل
شکل 2- تعریف یک شمارنده با استفاده از تعریف متغیر C
  • مرحله سوم

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

*نکته: اگر مقدار اولیه این متغیر را صفر بگذاریم، خروجی الگوریتم شما همیشه صفر خواهد بود.

مقدار اولیه R برابر یک است (یعنی R=1) و آن را مانند شکل زیر در جدول دیباگ اضافه میکنیم:

شکل 3- تعریف یک متغیر برای نگهداری نتایج ضرب ها
  • مرحله چهارم
  • متغیر R را در C ضرب می کنیم، حاصلضرب را در متغیر R می ریزیم.
  • به C یک واحد اضافه می کنیم، اگر C بزرگتر از N بود به مرحله پنجم برو، در غیر اینصورت، قدم 1 رو دوباره اجرا کن..

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

حالا بیایید این مرحله را بیشتر بررسی و جدول دیباگ را با دقت و مرحله به مرحله تکمیل کنیم:

  • دور  اول

زمانیکه وارد دور اول حلقه در مرحله چهارم می شویم، N=7 ،C=1 وR=1 می باشد.

حالا طبق قدم اول(در بالا به آن اشاره شد)، R*C و نتیجه را در R میریزیم و سپس به C، یک واحد می کنیم.

چون C در مرحله قبل برابر با 1 بوده است پس در پایان دور اول به آن یک واحد اضافه می کنیم که می شود 1 .

شکل 4- مرحله چهارم: دور اول
  • دور  دوم

در این دور،R*C می کنیم. از انجایی که در پایان دور اول مقدار R برابر با یک و مقدار C برابر با 2 بود پس 2=2*1. نتیجه را در R میریزیم و به C یک واحد اضافه می کنیم که می شود C=3.

الگوریتم محاسبه فاکتوریل
شکل 5- مرحله چهارم: دور دوم
  • دور  سوم تا هفتم

حالا دورهای قبلی را انقدر تکرار می کنیم تا C بزرگتر از N شود. آنگاه میرویم به مرحله پنجم.

شکل 6- مرحله چهارم: دور سوم تا هفتم
  • مرحله پنجم

از آنجا که در پایان دور هفتم مرحله چهارم، مقدار c برابر با 8 شده است و 8 از N بزرگتر است پس مرحله چهارم به پایان میرسد و وارد مرحل پنجم می شویم.

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

حالا شما الگوریتمی بنویسید که یک عدد را بگیرد و حاصل جمع اعداد 1 تا آن عدد را محاسبه کند. همچنین جدول دیباگ آن را رسم کنید.

مطالب مرتبط و تکمیلی: