کمک:پروژه محاسبه سیگما با سی و سی پلاس پلاس

meray

New Member
سلام من یه برنامه میخوام که بتونه سیگما رو حل کنه به این صورت که دو عدد از کاربر بگیره و اونو محاسبه کنه فرمولش هم به صورت زیره:
کد:
(i=1 تاn) ∑=
(منفی 1 به توان nضرب در xبه توان n)
تقسیم بر nفاکتوریل

اینم چیزی که خودم برای سی پلاس پلاس نوشتم ولی با جواب ها مطابقت نداره:
در ضمن باید با یه حلقه فور ساده نوشته شه
برای زبان سی هم لازمش دارم خودم سی بلد نیستم
کد:
#include <iostream.h>
#include <math.h>
int main()
{
    int n,x,sigma;
    int fact=1;
        cout<<"Hello Dear pleas Enter 2 number: ";
    cin>>n>>x;

    for(int i=1;i<=n;i++)
    {
        fact=fact*i;
        sigma=(((-1)^i)*(x^i))/fact;
    }
    cout<<"The result is : "<<sigma<<endl<<fact;

    return 0;
}
 

the_king

مدیرکل انجمن
C و ++C عملگر توان نداره، عملگر ^ عمل XOR انجام میده، نه توان. برای انجام محاسبه توان از تابع pow
که در math.h یا cmath.h تعریف شده استفاده میشه، مثلا (pow(-1, i عدد 1- را به توان i می رسونه و مقدار حاصل
رو بر می گردونه. برای محاسباتی که تقسیم داخل شون هست و نتیجه احتمالا اعشاری است از متغیر های int
که اعشار رو دور می ریزند استفاده نکنید. از نوع داده اعشاری مثل double استفاده کنید.

حلقه for در C و ++C بسیار شبیه هم اند، تنها تفاوت شان در این است که در ++C می توانید متغیر را در خود
for تعریف کنید :
کد:
for (int i = 1; i <= n; i++)

اما در C نمی توانید و باید قبل از for تعریف اش کرده باشید :
کد:
int i;
for (i = 1; i <= n; i++)
 

meray

New Member
c و ++c عملگر توان نداره، عملگر ^ عمل xor انجام میده، نه توان. برای انجام محاسبه توان از تابع pow
که در math.h یا cmath.h تعریف شده استفاده میشه، مثلا (pow(-1, i عدد 1- را به توان i می رسونه و مقدار حاصل
رو بر می گردونه. برای محاسباتی که تقسیم داخل شون هست و نتیجه احتمالا اعشاری است از متغیر های int
که اعشار رو دور می ریزند استفاده نکنید. از نوع داده اعشاری مثل double استفاده کنید.

حلقه for در c و ++c بسیار شبیه هم اند، تنها تفاوت شان در این است که در ++c می توانید متغیر را در خود
for تعریف کنید :
کد:
for (int i = 1; i <= n; i++)
اما در c نمی توانید و باید قبل از for تعریف اش کرده باشید :
کد:
int i;
for (i = 1; i <= n; i++)
بسیار مچکرم من با سی سرکار ندارم ولی اینطور که پیداست بسیار آسانه
پس احتمالا مشکل این جواب های متناقض همین توانه باشه؟ درسته ؟
میشه یکی زحمت زبان سی رو بکشه واسم
من سی پلاس پلاس بلدم اونمم نه زیاد
خودم رو این کار میکنم
 

the_king

مدیرکل انجمن
بسیار مچکرم من با سی سرکار ندارم ولی اینطور که پیداست بسیار آسانه
پس احتمالا مشکل این جواب های متناقض همین توانه باشه؟ درسته ؟
میشه یکی زحمت زبان سی رو بکشه واسم
من سی پلاس پلاس بلدم اونمم نه زیاد
خودم رو این کار میکنم

کد:
#include <stdio.h>
#include <math.h>
#include <conio.h>

int main()
{
    int i, n, x;
    double sigma = 0, fact = 1;
    printf("Hello Dear please Enter 2 number: ");
    scanf("%d %d", &n, &x);
    for(i = 1; i <= n; i++)
    {
        fact = fact * i;
        sigma += (pow(-1, i) * pow(x, i)) / fact;
    }
    printf("The result is : %g \n", sigma);
    getch();
    return 0;
}
 

جدیدترین ارسال ها

بالا