end;
function Ln(k: integer): Real;
var Proizved1, Proizved2: Real;
begin
t:=StrToFloat(Form3.Edit1.Text);
i:=1;
Proizved1:=1;
Proizved2:=1;
repeat
if k<>i then begin
Proizved1:=Proizved1*(t-x[i]);
Proizved2:=Proizved2*(x[k]-x[i]);
end;
i:=i+1;
until i>A;
Ln:=Proizved1/Proizved2;
end;
function Pol( ): Real;
var
Sum: Real;
i: Integer;
begin
i:=1;
Sum:=0;
repeat
Sum:=Ln(i)*Y[i]+Sum;
i:=i+1;
until i>A;
Pol:=Sum;
end;
function Delta( ): Real;
var
Sum: Real;
i: Integer;
begin
i:=1;
Sum:=0;
repeat
Sum:=ABS(Ln(i))*0.0002+Sum;
i:=i+1;
until i>A;
Delta:=Sum;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
i: Integer;
S: real;
begin
A:=StrToInt(Form1.Edit1.Text);
S:=0;
for i:=1 to A do begin
X[i]:=StrToFloat(Form2.StringGrid1.Cells[i,0]);
Y[i]:=StrToFloat(Form2.StringGrid1.Cells[i,1]);
end;
P:=Pol();
Dl:=Delta();
for i:=1 to A do S:=S+Ln(i);
ShowMessage(FloatToStr(S));
Form3.Edit3.Text:=FloatToStr(P);
Form3.Edit2.Text:=FloatToStr(Dl);
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.visible:=false;
Form2.visible:=true;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
Close;
Form2.Close;
Form1.Close;
end;
end.
unit Unit6; //AboutBox
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TAboutBox = class(TForm)
Panel1: TPanel;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
Comments: TLabel;
Image1: TImage;
BitBtn1: TBitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
{$R *.dfm}
end.
Приложение 2. Блок-схема программного средства:
Приложение 3. Блок-схема алгоритма вычисления (третий модуль)
Приложение 4. Тесты – наборы проверочных данных – для проверки правильности работы программы.
Первый проверочный набор.
В первом открывшемся окне, в пустое поле вводим цифру 6.
Во втором открывшемся окне, представленную таблицу заполняем согласно представленным ниже данным.
X | 1 | 2 | 3 | 4 | 5 | 6 |
Y | 7 | 8 | 9 | 7 | 8 | 9 |
В третьем окне вводим: Х=13, и должны получить результат Y= –10 442.
Эти результаты получились из приведенных ниже расчетов:
Результатом должно стать число – 10 442.
Второй проверочный набор.
Второй проверочный набор является более простым вариантом, не требующим математического подтверждения. Он представляет собой аргументы и их квадраты.
В первом окне вводим число 4.
Во втором вводим в строчку Х числа 1, 2, 4, 5, а в строчку Y числа 1, 4, 16, 25, являющиеся квадратами этих аргументов. Этот набор данных представлен в таблице ниже:
X | 1 | 2 | 4 | 5 |
Y | 1 | 4 | 16 | 25 |
Тогда в третьем окошке вводим любое число, квадрат которого Вам известен, например, число 3, и в окошке «Результаты» должны получить число 9, в окошке «Погрешность вычисления» получаем погрешность, которая появляется при вычислении функции данным методом (интерполяционным полиномом Лагранжа). Можно взять и любое другое число.
Список литературы
1. Фокс Дж. Программное обеспечение и его разработка. М.:Мир, 1985. - 368 с.
2. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ: Пер. с англ. - М.: Мир, 1999. - 424 с.
Иванов А.Г., Карпова А.В., Семик В.П., Филинов Ю.Е. Объектно-ориентированная среда программирования. Системы и средства информатики. Вып.2. М.: Наука, 1991.
Программирование. Специальный выпуск по объектно-ориентированному программированию. № 6, 1990.
Объектно-ориентированный подход технологии программирования/ Иванов А.Г., Пятницкий А.А, Филинов Ю.Е. – СПб.: Питер, 2003. – 443 с.: ил.
Макаров А.А. Лукашин Ю.П. Объектно-ориентированный подход в программировании. – М.: Финансы и статистика, 2000. – 356 с.