PDA

View Full Version : سوال: محاسبه سری e^x با استفاده از متد های سازنده



mohammad_king62
یک شنبه 12 اردیبهشت 1389, 15:21 عصر
سلام دوستان
من برنامه سری e^x ( منظورم e به توان x ) رو با استفاده از کلاس و متد های سازنده (constructe) می خوام این برنامه رو با استفاده از توابع بازگشتی در c نوشتم ولی نیاز به این برنامه در #c دارم .
این برنامه به دو متد (تابع) فاکتوریل و توان هم نیاز دارد . اگر دوستان منو راهنمایی کن ممنون می شم .

اَرژنگ
یک شنبه 12 اردیبهشت 1389, 15:43 عصر
سلام دوستان
من برنامه سری e^x ( منظورم e به توان x ) رو با استفاده از کلاس و متد های سازنده (constructe) می خوام این برنامه رو با استفاده از توابع بازگشتی در c نوشتم ولی نیاز به این برنامه در C#‎ دارم .
این برنامه به دو متد (تابع) فاکتوریل و توان هم نیاز دارد . اگر دوستان منو راهنمایی کن ممنون می شم .
چرا سری؟ احتیاجی که در یک متد سازنده باشد نیست.
در هر متدی میتونه باشد. کد سی ‌تان را بفرستید شاید ایده بگیریم که واقعا به چی نیاز دارید، چونکه ما در سی‌شارپ از کلاس Math برایه حساب e^x و خیلی چیزهایه دیگر استفاده میکنیم.

موضع اصلی که به این نیاز دارد چیه؟

mohammad_king62
یک شنبه 12 اردیبهشت 1389, 17:05 عصر
ممنون که راهنمایی کردید ولی مشکل من اینه که باید این برنامه توسط متد های سازنده نوشته بشه و از متدهای فاکتوریل و توان هم بهره ببره

Amir Oveisi
یک شنبه 12 اردیبهشت 1389, 19:14 عصر
این برنامه رو با استفاده از توابع بازگشتی در c نوشتم

کدتون رو قرار بدید اینجا (در غیر اینصورت پستتون تمرین دانشجویی محسوب میشه و بر اساس قوانین باید حذف بشه)

اَرژنگ
دوشنبه 13 اردیبهشت 1389, 02:59 صبح
ممنون که راهنمایی کردید ولی مشکل من اینه که باید این برنامه توسط متد های سازنده نوشته بشه و از متدهای فاکتوریل و توان هم بهره ببره
استفاده از متدهایه سازنده برایه اینکار به عقل جور در نمیاد. دلیلی برایه این شرط وجود دارد؟
کلی مثال فاکتوریل تویه همین تالار ریخته.
حتی اگر این تمرین دانشجویه باشد، روشهایه اشتباه را یاد میده، اگر هم که نیست روشهایه بهتری برایه بدست آوردن e^x وجود دارند. منتها اگر دلیل شرایط گفته میشه میتونیم درست راهنمائی کنیم.
راهنمائی بیشتر در این حالتی که سوال بیان شده ممکن نیست و روشهایه اشتباه را ترویج میده.

mohammad_king62
دوشنبه 13 اردیبهشت 1389, 08:35 صبح
long fact (int n){
long f = 1;
int i ;
for (i=1;i<=n;i++)
f*=i;
return f;
}
float tavan (float a,int b){
int i;
float t=1;
for(i=1;i<=b;i++)
t=t*a;
return t;
}
int main{
float sum=0,x,p;
long q;
int i;
cout<<"pleas enter numbers:" ;
cin>>x;
sum=1;
for(i=1;i<=10;i++){
p=tavan(x,y);
q=fact(i);
sum=sum+p/q;
cout<<"e(x)="<<sum;
return 0;
}این هم کد برنامه که براتون گذاشتم . حالا این رو با استفاده از کلاس و متد های سازنده در C#‎ می خواستم بنویسم .

exlord
دوشنبه 13 اردیبهشت 1389, 09:02 صبح
1 - تو متد main متغیر y از کجا میاد؟؟
2 - متد main اصلا چیکار میکنه ؟؟ من متوجه نشدم ...
به هر حال کدی که نوشتی معادلش تو C#‎ این میشه ...

public class Power
{
public Power()
{
float sum = 0, p ,x;
long q;
int i;
Console.WriteLine("pleas enter numbers:");
x = float.Parse(Console.ReadLine());
sum = 1;
for (i = 1; i <= 10; i++)
{
p = tavan(x, y);
q = fact(i);
sum = sum + p / q;
}
Console.WriteLine("e(x)=" + sum);
}

private float tavan(float a, int b)
{
int i;
float t = 1;
for (i = 1; i <= b; i++)
t *= a;
return t;
}

private long fact(int n)
{
long f = 1;
int i;
for (i = 1; i <= n; i++)
f *= i;
return f;
}

}

mohammad_king62
دوشنبه 13 اردیبهشت 1389, 09:27 صبح
ممنون از راهنماییتون اون y هم متغیر i هسته که من اشتباه نوشته بودم

اَرژنگ
دوشنبه 13 اردیبهشت 1389, 11:17 صبح
[
public class Power
{
public Power()
{
float sum = 0, p ,x;
long q;
int i;
Console.WriteLine("pleas enter numbers:");
x = float.Parse(Console.ReadLine());
sum = 1;
for (i = 1; i <= 10; i++)
{
p = tavan(x, y);
q = fact(i);
sum = sum + p / q;
}
Console.WriteLine("e(x)=" + sum);
}

private float tavan(float a, int b)
{
int i;
float t = 1;
for (i = 1; i <= b; i++)
t *= a;
return t;
}

private long fact(int n)
{
long f = 1;
int i;
for (i = 1; i <= n; i++)
f *= i;
return f;
}

}این روش استفاده از متدهایه سازنده به شکل عوارض جانبی درست نیست.
حداقل در یک متد مقدار را به شکل پارامتر گرفته و از جوابش استفاده کنید.