
03.03.2013, 10:52
|
Прохожий
|
|
Регистрация: 14.02.2013
Сообщения: 17
Репутация: 10
|
|
Я немного изменил код. Заметил пару глупых ошибок. Но почему-то не помогло, рисует график линией простой которая даже через точки не проходит. Помогите кто знает пожалуйста. Вот код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Series, TeEngine, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Chart1: TChart;
Series1: TLineSeries;
Series2: TPointSeries;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
q: array [1..100] of real;
y: array [1..100] of real;
x: array [1..100] of real;
n,i,j:integer;
L,t:real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const t='Введите значение';
begin
n:=strtoint(edit1.text);
for i:=0 to n-1 do //Ввод данных
begin
x[i]:=StrToFloat(InputBox('Ввод X'+IntToStr(i),t,'0'));
y[i]:=StrToFloat(InputBox(Ввод Y'+IntToStr(i),t,'0'));
series2.AddXY(x[i],y[i]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=0 to n-1 do begin //Задание начального значения
q[i]:=1;
end;
if (i<j) and (i>j) then begin //Условие расчета произведения и сам полином
for j:=0 to n-1 do begin
q[i]:=q[i]*(t-x[j])/(x[i]-x[j]); // t - переменная для разложения
end;
end;
L:=0; //Обнуление значения разложения для расчета суммы
for i:=0 to n-1 do begin //Сумма произведений
L:=L+y[i]*q[i];
end;
t:=0; while t<x[n-1]+0.1 do begin //График
series1.AddXY(t,L);
t:=t+0.1;
end;
end;
end.
|