Разложение ряда S(y) функции

74
23 января 2021, 06:20

Задание состоит в том, чтобы написать программу вывода графиков функции y(x) для аргумента x, изменяющегося от a до b с шагом h (вводится с клавиатуры) и её разложение в ряд S(x). Использовать TChart и Image (зачем-то).

Моих знаний матана сильно не хватает, бьюсь уже вторые сутки, но мне кажется, что я даже задание не смог понять.

Моя попытка (код всего Unit1.cpp, основной код в TForm1::Button1Click):

//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
double fi(double x) {
switch(Form1->ComboBox1->ItemIndex) {
  case 0:
   return 2*x;
  case 1:
   return pow(x,2);
  case 2:
   return x / 3;
 }
 return 0;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if(ComboBox1->Text == "Выберите функцию" ||
    ComboBox1->Text.IsEmpty() ||
    Edit1->Text.IsEmpty() ||
    Edit2->Text.IsEmpty()) {
  MessageBox(0,"Заполните все поля!","Внимание",MB_ICONWARNING);
  return;
 }
 double a, b, h, x, z;
 double y_from_x = 0;
 double s_from_x = 0;
 a = Edit3->Text.ToDouble();
 b = Edit4->Text.ToDouble();
 h = Edit1->Text.ToDouble();
 z = Edit2->Text.ToDouble();
 if(z < 1) x = z;
 else x = sqrt(pow(x,3));
 Series1->Clear();
 y_from_x = M_PI*fi(x)+a*cos(pow(x,3))+b*sin(pow(x,2));
 s_from_x = 0;
 Series1->Add(y_from_x,s_from_x,clBlue);
 for(int i = a; i <= b; i += h) {
  y_from_x = M_PI*fi(x+i)+a*cos(pow(x+i,3))+b*sin(pow(x+i,2));
  Series1->AddX(y_from_x,clBlue);
 }
 for(int i = a; i <= b; i += h) {
  s_from_x = M_PI*fi(i)+a*cos(pow(i,3))+b*sin(pow(i,2));
  Series1->AddY(s_from_x,clGreen);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
 Chart1->Width = Form1->Width - Chart1->Left - 30;
 Chart1->Height = Form1->Height - Chart1->Top - 40;  
}
//---------------------------------------------------------------------------
READ ALSO
Задание по C++, структуры и функции [закрыт]

Задание по C++, структуры и функции [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

112
C++ constructor delegation

C++ constructor delegation

Можно ли в конструкторе, два раза вызвать другой конструктор?

94
Как в stl контейнерах (например std::list) получить и удалить элемент из контейнера за один вызов функции?

Как в stl контейнерах (например std::list) получить и удалить элемент из контейнера за один вызов функции?

Есть ли какая-то возможность забрать элемент из std::list одновременно удаляя его (не вызывая отдельно два метода front и pop_front)? Если такого метода...

110
expected unqualified-id before &#39;-&gt;&#39; token

expected unqualified-id before '->' token

cpp- ругается на цикл где if: expected unqualified-id before '->' token, не нравится Sprite

114