Mam napisać program w C++ Builder 6.
Napisz program obliczający pole pod wykresem funkcji \(\displaystyle{ y=x^2+4}\) metodą prostokątów oraz trapezów dla przedziału \(\displaystyle{ \left\langle 0;10\right\rangle}\) z dokładnością \(\displaystyle{ 0,1}\)
METODA TRAPEZÓW :
Kod: Zaznacz cały
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
float func(float x)
{
return (x*x+4);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float xp, xk, dx, calka;
int i, n;
n = 100;
xp = 0 ;
xk = 10;
calka = 0;
dx = (xk - xp) / n;
for (i=1; i<=n; i++)
{
calka += func(xp + i * dx);
calka = (calka + (func(xp) + func(xk)) / 2) * dx;
}
calka *= dx;
Form1->Edit1->Text = calka;
Form1->Edit1->Text=AnsiString().FormatFloat("0.#", calka); //zaokraglanie do 1 miejsca po przecinku
}
//---------------------------------------------------------------------------
Jak dodać żeby tylko wyświetlało 1 liczbę po przecinku i jak naprawić ten program, żeby działał poprawnie?