Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2018, 01:04   #1
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию Сумма ряда и факториал

День добрый. Прошу помощи экспертов.
Задание
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания (10, 20, 50, 100). n = 30.

S(x) = E(k=0,n) cos(kPi/4)*x^k/k!
Y(x) = e^xcosPi/4*(cos(xsinPi/4)

Полученные результаты не совпадают с пожеланиями в задании. Подскажите,пожалуйста, в чём косяк может быть. Спасибо.
Мой код:
{
double a,b,x,h,Pi,e,y,s,r,f,t,v,m;
int n,k;
Pi=3.14159265359;
e=2,718281828459045;
t=cos(Pi/4);
v=sin(Pi/4);

for (x = a; x<=b; x+=h)
{
y=pow(e,t)*cos(x*v);

for(k=1,f=1; k<=n; k++)
{
f=f*k; //факториал
m=(cos(k*Pi/4)*pow(x,k))/f ; //член ряда
s=s+m; //сумма
r=fabs(y-s);
}
.
Изображения
Тип файла: jpg radio group.jpg (83.3 Кб, 116 просмотров)
rw61 вне форума Ответить с цитированием
Старый 06.01.2018, 10:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания (10, 20, 50, 100). n = 30.
Цитата:
Код:
double a,b,x,h,Pi,e,y,s,r,f,t,v,m;
int n,k;
Pi=3.14159265359;
e=2,718281828459045;
t=cos(Pi/4);
v=sin(Pi/4);
Код:
a=???
b=???
....
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.01.2018, 21:03   #3
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию

да. все значения вводятся через Edit в formCreate
rw61 вне форума Ответить с цитированием
Старый 06.01.2018, 21:09   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
да. все значения вводятся через Edit в formCreate
они вводятся в ДРУГИЕ переменные. а не в те которые используются при вычислениях.
в предыдущем сообщении красным выделены те переменные, значения которых не заданы.
для проверки сделайте вывод этих значений ВО время вычислений.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.01.2018 в 21:11.
evg_m вне форума Ответить с цитированием
Старый 07.01.2018, 21:29   #5
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
они вводятся в ДРУГИЕ переменные. а не в те которые используются при вычислениях.
в предыдущем сообщении красным выделены те переменные, значения которых не заданы.
для проверки сделайте вывод этих значений ВО время вычислений.
значения верно присвоены переменным. проверял.
rw61 вне форума Ответить с цитированием
Старый 07.01.2018, 21:40   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну и покажи где в твоем коде, например, переменной a присваивается значение?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.01.2018, 22:18   #7
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию

в начальном коде я не указывал. хотел кратенько основное выложить

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="1,0";
Edit3->Text="30";
Edit4->Text="0,1";

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
.......
a = StrToFloat(Edit1->Text);
b = StrToFloat(Edit2->Text);
n = StrToInt(Edit3->Text);
h = StrToFloat(Edit4->Text);
......
}
rw61 вне форума Ответить с цитированием
Старый 08.01.2018, 10:07   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
в начальном коде я не указывал. хотел кратенько основное выложить
теперь покажи ВСЕ объявления переменных a,b,n,h
одно из них ты уже показал
Цитата:
Код:
Мой код:
{
double a,b,x,h,Pi,e,y,s,r,f,t,v,m;
int n,k;
а остальные? ведь есть и еще где-то скрытое за ...... double a,b
Цитата:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
.......
a = StrToFloat(Edit1->Text);
Цитата:
они вводятся в ДРУГИЕ переменные. а не в те которые используются при вычислениях.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 08.01.2018 в 10:15.
evg_m вне форума Ответить с цитированием
Старый 08.01.2018, 21:58   #9
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию

evg_m
немного не понимаю, зачем 2 раза инициализировать переменные a,b,n,h.

есть a = StrToFloat(Edit1->Text);
и есть Edit1->Text="0,1";

в любом случае, при инициализации путём double a=0.1, b=1.0,... результат не меняется.
rw61 вне форума Ответить с цитированием
Старый 08.01.2018, 22:44   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Как насчет начального значения s? Да и k в формуле суммы от 0, а не от 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 08.01.2018 в 22:48.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечная сумма и факториал guardi Помощь студентам 11 14.12.2017 20:05
Сумма ряда Vika2016 Общие вопросы C/C++ 2 26.10.2016 17:15
(Си) сумма ряда Nikolay625 Помощь студентам 0 17.06.2014 17:18
Сумма ряда Veina Помощь студентам 0 06.04.2011 19:48
Сумма ряда eKStaSy Помощь студентам 4 25.10.2009 17:41