PDA

View Full Version : تفسیر عملکرد دو تابع



setayajon
دوشنبه 25 مرداد 1389, 12:17 عصر
[L:عصبانی++:]دو تا برنامه تقريبا شبيه به هم دارم ولي نميدونم به چه دليل خروجي هاي متفاوت دارند؟( در كل يه راهنمايي در مورد كنترل تابع و main ميخوام كه بدونم اول main اجرا ميشه يا توابع؟) 2تا تابع من به صورت زير مي باشد:
1-


doble f(doble x)
{
return x*x-x+1;
}
int main()
{
cout<<f(2);
getch();
}




2-



doble f(doble x)
{
int x*x-x+1;
cout <<a;
return a;
}
int main()
{
f(2);
getch();
}

حامد مصافی
دوشنبه 25 مرداد 1389, 12:31 عصر
كد شما ايراد دارد.
خروجي ها چيستند؟

PC2st
دوشنبه 25 مرداد 1389, 12:37 عصر
در حالت دوم، شما متغیر a را مقداردهی نکرده‌اید:


int a = x*x-x+1;

مصطفی ساتکی
دوشنبه 25 مرداد 1389, 12:42 عصر
دو تا برنامه تقريبا شبيه به هم دارم ولي نميدونم به چه دليل خروجي هاي متفاوت دارند؟( در كل يه راهنمايي در مورد كنترل تابع و main ميخوام كه بدونم اول main اجرا ميشه يا توابع؟) 2تا تابع من به صورت زير مي باشد:
كد اولتون مشكلي نداره.
كد دومتون تو

doble f(doble x)
{
int x*x-x+1;
cout <<a;
return a;
}
اين يعني چي؟
اين عبارت كامپايل نميشه . شما بايستي a تعريف كنيد سپس عبارت x*x-x+1 رو تو a قرار بديد و سپس return a .

Salar Ashgi
دوشنبه 25 مرداد 1389, 14:56 عصر
همانطور که توسط دوستان هم ذکر شد ، مورد اول مشکلی ندارد .
ولی در مورد مورد دوم : اساسا ما در نام گذاری برای متغیر ها قانونی داریم ، مثلا از کلمات کلیدی نمیتوان
بعنوان نام استفاده کرد ، یا مثلا نام متغیر نمیتواند با عدد شروع شود ، یا مثلا در اینجا نام متغیر شما
حاوی عملگر است ، که این درست نیست ، اشکال بعدی شما اینکه، قانونا در C++‎,C قبل از استفاده از متغیر همیشه
باید آنرا تعریف کرد ، متغیر a شما اصلا تعریف نشده !