تالار گفتمان مانشت
[سوال] طراحی و پیاده سازی - خروجی برنامه زیر چیست ؟ - نسخه‌ی قابل چاپ

[سوال] طراحی و پیاده سازی - خروجی برنامه زیر چیست ؟ - uka - 10 شهریور ۱۳۹۳ ۰۵:۱۷ ب.ظ

خروجی برنامه مقابل،به ترتیب از چپ به راست کدامست؟
Void fun(int n){
Printf (“%d”,n);
if(n<=4)
Fun (n+1);
Printf (“%d”,n);
}
Main()
{
Int k=2;
Fun(k);
}
الف)۲ ۳ ۴ ۴ ۳ ۲ ب) ۴ ۳ ۲ ۴ ۳ ۲ ج) ۵ ۴ ۳ ۲ ۵ ۴ ۳ ۲ د) ۲ ۳ ۴ ۵ ۵ ۴ ۳ ۲

RE: خروجی - Morris - 10 شهریور ۱۳۹۳ ۰۵:۲۱ ب.ظ

لطفا کد سوال را به صورت زیر قرار بدید.

کد:
Void fun(int n){
Printf (“%d”,n);
if(n<=4)
Fun (n+1);
Printf (“%d”,n);
}
Main()
{
Int k=2;
Fun(k);
}


RE: [سوال] طراحی و پیاده سازی - خروجی برنامه زیر چیست ؟ - uka - 12 شهریور ۱۳۹۳ ۰۹:۵۵ ق.ظ

(۱۰ شهریور ۱۳۹۳ ۰۵:۲۱ ب.ظ)Morris نوشته شده توسط:  لطفا کد سوال را به صورت زیر قرار بدید.

کد:
Void fun(int n){
Printf (“%d”,n);
if(n<=4)
Fun (n+1);
Printf (“%d”,n);
}
Main()
{
Int k=2;
Fun(k);
}

دقیقا کد اینجور بوده... printf دوم چه وقت اجرا میشه ؟

RE: [سوال] طراحی و پیاده سازی - خروجی برنامه زیر چیست ؟ - ADELZX - 12 شهریور ۱۳۹۳ ۱۰:۵۰ ق.ظ

سلام خب جواب که واضه گزینه الف میشه چرا که ابتدا در هر فراخوانی دستور چاپ اول ابتدا از اول تا آخرین فراخوانی اجرا میشه و آخر سر هم با بالا اومدن از فراخوانی های بازگشتیمون دستور چاپ دوم پشت سرم هم از آخر به اول اجرا میشه .

اما در مورد سوال دومتون :
تابع fun در ابتدا با مقدار ۲ فراخوانی شده حالا به ازای هر باری که اون شرط درسته باشه یک فراخوانی دیگر با مقدار افزایش ۱ برای n اجرا میشه و دستور printf دوم در پشته قرار میگیره، حالا چون با مقادیر از ۲ و ۳ و ۴ برای n ورودی شرط درسته پس باعث میشه ما ۳ تا دستور printf در پشته داشته باشیم.

RE: [سوال] طراحی و پیاده سازی - خروجی برنامه زیر چیست ؟ - uka - 12 شهریور ۱۳۹۳ ۱۲:۳۹ ب.ظ

(۱۲ شهریور ۱۳۹۳ ۱۰:۵۰ ق.ظ)ADELZX نوشته شده توسط:  سلام خب جواب که واضه گزینه الف میشه چرا که ابتدا در هر فراخوانی دستور چاپ اول ابتدا از اول تا آخرین فراخوانی اجرا میشه و آخر سر هم با بالا اومدن از فراخوانی های بازگشتیمون دستور چاپ دوم پشت سرم هم از آخر به اول اجرا میشه .

اما در مورد سوال دومتون :
تابع fun در ابتدا ما مقدار ۲ فراخوانی شده حالا به ازای هار باری که اون شرط درسته باشه یک فراخوانی دیگر با مقدار افزایش ۱ برای n اجرا میشه و دستور printf دوم تو پشت قرار میگیره ، پس با مقادیر از ۲ و ۳ و ۴ شرط درسته که باعث میشه ما ۳ تا دستور printf در پشته داشته باشیم.


مرسی از کمکتون