Задание: написать и отладить программу, которая выводит таблицу значений функций S(x) для х изменяющихся в интервале от x1 до x2 с шагом h.
.
Форма приложения приведена на рисунке 3.1.
Рисунок 3.1 – Форма приложения
Текст программы:
Unit LabRab_3;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls;
Type
TForm1=class(TForm)
Memo1:TMemo;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1:TEdit;
Edit2:TEdit;
Edit3:TEdit;
Edit4:TEdit;
procedure FormСreate(Sender: TObject);
procedure Button1Сlick(Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1:TForm1;
Implementation
Uses Math;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:= ’0’;
Edit2.Text: = '2';
Edit3.Text:= '5';
Edit4.Text:= '0,25';
Memo1.Clear;
Memo1.Lines.Add('Результаты ст. гр. 107218 Юртаева Т.А.');
Procedure TForm1.Button1Click(Sender: TObject);
Var
x1, x2, x, h, a, s: extended;
N, k, c: integer;
begin
xl:= StrToFloal(Edit1.Text);
Memo1.Lines.Add('x1 = ' + Edit1.Text);
x2:= StrToFloat(Edit2.Text);
Memo1.Lines Add('x2 = ' + Edit2.Text);
N:= StrToInt(Edit3.Text);
Memo1.Lines.Add(‘N = ' + Edit3.Text);
h:= StrToFloat(Edit4.Text);
Memo1.Lines.Add(‘H = ' + Edit4.Text);
x:= x1;
Repeat
s:= 0;
for k:=1 to N do
begin
if (k mod 2) = 0 then c:= 1 else c:= -1;
a:= c * Power(x, k) / k;
s:= s + a;
end;
Memo1.Lines.Add('npи x = ' + FloatToStrF(x, ffFixed, 6, 2) + #9 +
|
|
' сумма = ' + FloalToStrF(s, ffFixed, 6, 2));
x:= x+h;
until x>x2;
end;
end.
Послe отладки программы составьте тест (N=2, X1=0,X2 = 1, h=3), установите курсор на первый оператор (N:=), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую отладку программы и проследите, как меняются все переменные в процессе выполнения.