Регистрация Вход
Информатика 1 курс Annatar

Вычислить сумму положительных значений Sin(fi) на интервале
[а, b] с заданным шагом. Цикл с предусловием. Выполнить в Lazarus

Ответы:

unit ZadanieGUIpr036unit1;

mode objfpc}H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

a,b: real;

h: real;

public

end;

var

Form1: TForm1;

implementation

R *.lfm}

TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

Процедура-обработчик "OnClick" кнопки "Вычислить"}

var

x: real;

y: real;

s: real;

begin

repeat

if not TryStrToFloat(Edit1.Text,a) then

begin

MessageDlg(Ошибка ввода!,mtError,[mbOk],0);

a:= 0;

Edit1.Text:= 0,00;

end;

if not TryStrToFloat(Edit2.Text,b) then

begin

MessageDlg(Ошибка ввода!,mtError,[mbOk],0);

b:= 1;

Edit2.Text:= 1,00;

end;

if not TryStrToFloat(Edit3.Text,h) then

begin

MessageDlg(Ошибка ввода!,mtError,[mbOk],0);

h:= 0.1;

Edit3.Text:= 0,1;

end

else

if (h <= 0) then

begin

MessageDlg(Значение шага вычислений не может быть нулевым или отрицательным!,mtError,[mbOk],0);

h:= 0.1;

Edit1.Text:= 0,1;

end;

if a >= b then

begin

MessageDlg(Значение правой границы должно быть больше значения левой гриницы!,mtError,[mbOk],0);

a:= 0;

b:= 1;

Edit1.Text:= 0,00;

Edit2.Text:= 1,00;

end

else

break;

until false;

s:= 0; Установка переменной в начальное состояние}

x:= a; Присвоение аргументу значения левой границы вычислений }

while x <= b + h/2 do цикл с условием}

begin

y:= sin(x);

if y > 0 then Условие для поиска положительных значений}

s:= s + y; Вычисление формулы}

x:= x + h; Приращение аргумента}

end;

Label4.Caption:=Сумма: + FloatToStrF(s,ffFixed,8,2);;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

a:= 0;

b:= 1;

h:= 0.1;

Edit1.Text:= FloatToStrF(a,ffFixed,8,2);

Edit2.Text:= FloatToStrF(b,ffFixed,8,2);

Edit3.Text:= FloatToStrF(h,ffFixed,8,2);

end;

end.

2
Отв. дан Examplez
Для написания вопросов и ответов необходимо зарегистрироваться на сайте