Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 1

.docx
Скачиваний:
15
Добавлен:
04.04.2018
Размер:
92.7 Кб
Скачать

Задание:

Написать программу (Windows-приложение в Delphi) для вычисления полинома по схеме Горнера (см. свой вариант таблице 1.5).

Отладить программу, используя тестовый пример.

4

Код:

var

Form2: TForm2;

a:array [0..50] of real;

n,i,l,x:integer;

P:real;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

n:=memo1.lines.count;

x:=strtoint(edit2.text);

for i:=0 to n-1 do

a[i]:=strtofloat(memo1.Lines[i]);

P:=a[n-1]; //последний

i:=n-2; //предыдущий

while i>=0 do begin

P:=P*x+a[i];

i:=i-1;

end;

edit1.text:=floattostr(P);

end;

end.

Результат:

Блок схема

Начало

Ввод {ai}1÷n,n,x

P=an, i=n-1

a0=x

P=ai+xP

a0=x

i=0

i=i-1

a0=x

-

Вывод P

Конец

Задание:

Написать программу для аппроксимации функции, заданной в виде таблицы (таблице 1.1) и представленной в описании работы, в соответствии с условием своего варианта (таблице 1.2 – 1.4). Оформить интерполяционный метод как процедуру-реакцию на событие onClick в Windows-приложении. Для организации ввода исходных данных функции, заданной в виде таблицы, использовать объекты класса TMemo.

Произвести отладку программы.

x

0

0.3

0.6

0.9

1.2

1.5

1.8

2.1

y

1.763

1.936

2.264

2.561

2.758

3.067

3.298

3.401

2

0.62

линейная в явном виде ()

Код

var

Form3: TForm3;

n,i:integer;

x,y:array of extended;

k,b,a:extended;

z:real;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

n:=memo1.lines.count;

setlength(x,n);

setlength(y,n);

z:=strtofloat(edit2.text);

for i:=0 to n-1 do begin

x[i]:=strtofloat(memo1.lines[i]);

y[i]:=strtofloat(memo2.lines[i]);

end;

i:=0;

while z>x[i] do begin

i:=i+1;

end;

k:=(y[i]-y[i-1])/(x[i]-x[i-1]);

b:=-x[i-1]*k+y[i-1];

a:=z*k+b;

edit1.Text:=floattostr(a);

end;

end.

Результат:

Блок схема:

{xi}Ni,{yi}N,z

i=0

a0=x

i=i+11

a0=x

z>xi

k=(y[i]-y[i-1])/(x[i]-x[i-1]); b=-x[i-1]*k+y[i-1]; y=k*z+b

+ -

Вывод a

Конец

Соседние файлы в папке Лабы