Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls, ExtCtrls, Spin;
Type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: ТВutton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
SpinEdit1: TSpinEdit;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Var
Form1: TForm1;
Implementation
{$R *.DFM}
procedureTForm1.FormCreate(Sender: TObject);
Begin
SpinEdit1.text:='3'; // початкове значення N
Edit1.text:='0.1'; // початкове значення Xn
Edit2.text:='2.0'; // початкове значення Xk
Memo1.Clear;
Memo1.Lines.Add('Лабораторна робота №5 - Циклічний алгоритм');
end;
procedure TForm1.Button1Click(Sender: TObject);
varxn,xk,x,h,c,s,y,al,del:extended;
n,k:integer;
Begin
n:=StrToInt(SpinEdit1.Text);
xn:=StrToFloat(Edit1.Text);
xk:=StrToFloat(Edit2.Text);
ifCheckBox1.Checked then
Memo1.Lines.Add(‘Исходные дані: n=’+IntToStr(n)+
' Xn='+FloatToStrF(xn,ffFixed,6,1)+
' Xk='+FloatToStrF(xk,ffFixed,6,1));
h:=(xk-xn)*0.1; // крок h
x:=xn;
repeat // цикл по x
з:=-x*x*0.5;
S:=1;
forдо:=1 to n do
Begin
s:=s+c*(2*k*k+1);
з:=-c*x*x/((2*k+1)*(2*k+2));
end;
Y=(1-x*x*0.5)*cos(x)-0.5*x*sin(x);
ifCheckBox2.Checked then
ifCheckBox3.Checked then
Begin
al:=s-y; // абсолютна погрішність
del:=abs((s-y)/y)*100; // відносна погрішність
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(у,ffFixed,6,3)+
' A='+FloatToStrF(al,ffFixed,6,3)+
' D='+FloatToStrF(del,ffFixed,6,0)+'%');
End
Else
Begin
al:=s-y;
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(у,ffFixed,6,3)+
' A='+FloatToStrF(al,ffFixed,6,3));
End
Else
ifCheckBox3.Checked then
Begin
del:=abs((s-y)/y)*100;
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(у,ffFixed,6,3)+
' D='+FloatToStrF(del,ffFixed,6,0)+'%');
End
Else
Memo1.Lines.Add('x='+FloatToStrF(x,ffFixed,6,2)+
' S='+FloatToStrF(s,ffFixed,6,3)+
' Y='+FloatToStrF(у,ffFixed,6,3));
x:=x+h;
untilx>xk;
end;
End.
7. Виконання індивідуального завдання:
По вказівці викладача виберіть своє індивідуальне завдання. Створіть додаток і протестуйте його роботу.
Індивідуальні завдання:
У завданнях з №1 по №15 необхідно вивести на екран таблицю значень функції Y(x) і її розкладання в ряд S(x) для значень x від
до
з кроком
. Близькість значень S(x) і Y(x) у всьому діапазоні значень x вказує на правильність обчислення S(x) і Y(x).

№
|
|
| S(x)
| n
| Y(x)
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
|
|
|
|
|
0.1
|
0.5
|
|
|
|
|
0.1
|
0.8
|
|
|
|
|
0.1
|
|
|
|
|
Вимоги до оформлення звіту :
Звіт повинен містити:
1.Тему та мету лабораторної роботи.
2. Завдання на лабораторну роботу.
3.Текст програми.
4.Відповідь на контрольні запитання.
Контрольні запитання:
1. Що таке відкладка? .
2. В чому полягають синтаксичні помилки відкладки? .
3. Що таке логічні помилки ?.
4. Яким чином складаються тести? .
5. Що таке текст ?.
6. Що робить клавіша F8? .
7. Що являє собою компонент SpinEdit, його дії? .
Лабораторна робота №6.
Тема: Розв‘язування задач з циклічним обчислювальним процесом табулювання функції та з заданим числом повторень.
Мета:оволодітипрактичними навиками розробки та програмуванн обчислювального роцесу циклічної структури табулювання функції, отримання навиківпо створенню головного меню.