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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2018, 23:50   #11
rw61
Пользователь
 
Регистрация: 22.12.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Как насчет начального значения s? Да и k в формуле суммы от 0, а не от 1
первичная сумма равна члену ряда.
при k=0 прога выдаёт ошибку.

решил я вопрос. косяк был в формуле и в прописке факториала

итоговый код, если вдруг, кому будет интересно, выкладываю.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <math>
#include "Primer3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="1,0";
Edit3->Text="30";
Edit4->Text="0,1";
Memo1->Lines->Add("Лабораторная работа 3");
}

int fact (int num)
{
int result = 1, i;
for (i = 2; i <= num; i++)
result *= i;
return result;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ double a = 0.1, b = 1.0, h = 0.1, e = exp(1), y, s, r, t = cos(M_PI / 4), v = sin(M_PI / 4), m;
int k, n = 30;
for (double x = a; x <= b; x += h)
{
y = pow(e, x * t) * cos(x * v);
k = 0;
//Первый член ряда, при k = 0, равен 1, можно сразу присвоить 1 и не нужна функция fact
m = cos(k * M_PI / 4) * pow(x ,k) / fact(k);
s = m;
for (k = 1; k <= n; k++)
{
// Вычисление члена ряда,в зависимости от k
m *= cos(k * M_PI / 4) / cos((k - 1) * M_PI / 4) * x / k;
s += m; // Суммируем
}
r = fabs(y - s);
Memo1->Lines->Add("При x= "+FloatToStrF(x,ffFixed,8,2)
+"\t Y(x)= "+FloatToStrF(y,ffFixed,8,5)
+"\t S(x)= "+FloatToStrF(s,ffFixed,8,5)
+"\t |Y(x)-S(x)|= "+FloatToStrF(r,ffFixed,8,5));
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo1->Clear();

}
Изображения
Тип файла: jpg radio group.jpg (76.7 Кб, 112 просмотров)

Последний раз редактировалось rw61; 10.01.2018 в 00:09.
rw61 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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