Задание состоит в том, чтобы написать программу вывода графиков функции 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;
}
//---------------------------------------------------------------------------
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Есть ли какая-то возможность забрать элемент из std::list одновременно удаляя его (не вызывая отдельно два метода front и pop_front)? Если такого метода...
cpp- ругается на цикл где if: expected unqualified-id before '->' token, не нравится Sprite