PDA

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



fatemeh19
یک شنبه 25 فروردین 1392, 15:04 عصر
سلام
من یه تابع نوشتم بعد آخرش واسه اینکه در صورت موفقیت کار تابع تموم بشه return 0 گذاشتم اما موقع اجرا 0 چاپ میشه چرا؟؟؟

Ananas
یک شنبه 25 فروردین 1392, 15:24 عصر
سلام.
ببینم تابعتو؟

_hamid
یک شنبه 25 فروردین 1392, 15:31 عصر
آره کد رو بذاری بهتره.
تابع ورودی می گیره و خروجی میده.
خروجی یه تابع می تونه 0 باشه یا هرچیز دیگه. اینکه تو دیدی تو بعضی کتاب ها نوشته return 0 می ذارن لزوما نشونه ی موفقیت نیست. اون یعنی اینکه خروجی این تابع 0 باشه.
return 0 یعنی صفر برگردان. یک نوع قرارداد بین برنامه نویس هاست.

fatemeh19
یک شنبه 25 فروردین 1392, 15:53 عصر
int adad_aval(int x)
{
while(r>0 && s<x)
{
r=x%10;
s++;
}
if(r>0)
{
j++;
return 0;
}
return 1;
}

میخوام اول بودن رو بررسی کنه.
ولی نمیخوام عددی رو خروجی بده ،میخوام اگه اول بود شمارنده یکی زیاد بشه اگه نبودم بره آخره برنامه.
من شنیدم اگه برنامه ای موفقیت آمیز باشه 0 برمیگردونه اگه نه 1 ،یه همچین چیزی:لبخند:

smemamian
یک شنبه 25 فروردین 1392, 18:28 عصر
چون مقدار برگشتی int در نظر گرفتی چنین اتفاقی میافته !
فقط یک سوال ! r و s رو دقیقا کجا تعریف کردی که داری ازش استفاده می کنی ؟

fatemeh19
یک شنبه 25 فروردین 1392, 19:17 عصر
چون مقدار برگشتی int در نظر گرفتی چنین اتفاقی میافته !
فقط یک سوال ! r و s رو دقیقا کجا تعریف کردی که داری ازش استفاده می کنی ؟

یعنی الان دقیقا باید چیکارش کنم ؟؟!!
قبلش تعرف کردم!!!

fatemeh19
یک شنبه 25 فروردین 1392, 19:24 عصر
این دیگه درسته ؟؟
int adad_aval(int x)
{
while(r>0 && s<x)
{
r=x%s;
s++;
}
if(r>0)
{
j++;
return (1);
}

return (0);
}

smemamian
یک شنبه 25 فروردین 1392, 22:13 عصر
یا bool در نظر بگیر یا void :

bool adad_aval(int x)
{
//other
}

void adad_aval(int x)
{
//other
}

که در حالت bool مقدار 0 یا 1 رو برمی گردونه که به ترتیب نشان دهنده ی نادرست بودن یا درست بودن هست و در حالت void چیزی برگشت داده نمی شه و کد داخل تابع انجام می گیره .

fatemeh19
دوشنبه 26 فروردین 1392, 07:12 صبح
یا bool در نظر بگیر یا void :

bool adad_aval(int x)
{
//other
}

void adad_aval(int x)
{
//other
}

که در حالت bool مقدار 0 یا 1 رو برمی گردونه که به ترتیب نشان دهنده ی نادرست بودن یا درست بودن هست و در حالت void چیزی برگشت داده نمی شه و کد داخل تابع انجام می گیره .


ممنون این مشکلم حل شد ،حالا یه سوال دیگه وقتی از تابع paw(a,b) تو وِیژوال استودیو استفاده میکنم واسه توان رسوندن کار نمیکنه ،چرا؟؟؟!!!!

smemamian
دوشنبه 26 فروردین 1392, 07:24 صبح
#include <cmath>
pow درسته نه paw .

fatemeh19
دوشنبه 26 فروردین 1392, 07:43 صبح
#include <cmath>
pow درسته نه paw .

منظورم همون بود ،اشتباه تایپی بود :لبخند:کار نمیکنه!!

smemamian
دوشنبه 26 فروردین 1392, 12:14 عصر
یعنی چی کار نمی کنه ؟ پیغام میده ؟ خروی اشتباه میده ؟...

کدتون رو بذارید.

fatemeh19
سه شنبه 27 فروردین 1392, 19:55 عصر
یعنی چی کار نمی کنه ؟ پیغام میده ؟ خروی اشتباه میده ؟...

کدتون رو بذارید.

ممنون ،مشکلم حل شد ،به خاطر متغیر اول بود که باد از نوع float یا double می بود اما من int گذاشته بودم.