
نوشته شده توسط
M0h@mm@d
دو خط پایین که print یک پیغام میده وخط بعدی برای فراخوانی تابع هست که مقدار ۴ رو شما به آرگومانش دادید.
پس حالا میریم تو تابع.
مقدار ۴ میاد داخل آرگومان k قرار میگیره.
پس حالا مقدار k=4 هست.
خط بعدی تابع میاد بررسی میکنه ایا k بزرگتر از صفره که اینجا شرط برقراره.
پس حالا میریم تو if.
اولیلن خط if میگه بیا مقدار k (که مساوی ۴ است) رو با خروجی خود تابع که این دفعه آرگومانش یکی کم شده(k-1) جمع کن بریز تو result اما ما خروجی تابع رو نداریم یعنی باید بریم تو تابعی که آرگومانش شده ۳.
حالا وارد این تابع شدیم باز شرط رو چک میکنه ایا ۳ که مقدار همون k هست بزرگتر از صفره بله شرط درسته.
میره تو if .
باز اولین خط if میگه بیا مقدار k (که مساوی ۳ هست) رو با خروجی تابعی که آرگومانش اینجا میشه ۲ جمع کن ما حالا خروجی تابع با ارگومان ۲ رو به دست بیاریم .
هی همین طوری می ریم تو تابع هایی که توهم فراخوانی شدن. البته توجه کنییم که داره هی یکی از مقدار ارگومان کم میشه.
زمانی که رسیدیم به ارگومان ۱ دیگه نمی ریم تو تابع چون مقدار k رو یک بگذاریم با ارگومان (k-1) مقدارش میشه صفر یعنی تابعی با ارگومان صفر که دیگه if بر قرار نیست چون(0<0) حالا else برقرار میشه که result=0 میشه حالا به جای تابع با ارگومان صفر عدد صفر بگذار و با ۱ جمع کن که result میشه ۱ حالا پرینت کن ۱ رو .
تابع با ارگومان ۱ مقدار ۱ رو بر می گردونه مقدارش میاد به مرحله قبلی یعنی ۲ رو با ۱ جمع کن چاپش کن بفرس برا تابع مرحله قبلی که ارگومانش ۳ هست.
هی همین طور ادامه پیدا میکنه تا تابعی با ارگومان ۴.
اونجا هم تابع با ارگومان ۳ که مقدارش ۶ هست رو با ۴ جمع و در result قرار میدیم و بعد چاپش می کنیم.
امیدوارم گم راه نکرده باشم.
و توضیحاتم به دردتون بخوره.
موفق باشید.