Top.Mail.Ru
Ответы
Аватар пользователя
5лет
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Информатика Лазарус Метод Ньютона

Как сделать чтобы код заработал в лазарус для формы, он работал по крайней мере для паскаля просто до перекройки, нужна помощь по этому коду.
нам дали задание а как что делать не обьяснили, я и метод этот впервые вижу

вот код:
unit Unit1;

{$mode objfpc}{$H+}

interface

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

type

{ TForm1 }

TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
StaticText1: TStaticText;
procedure Button1Click(Sender: TObject);
private

public

end;

var
Form1: TForm1;
x,x1,x2,dx,x11,x12,eps:real;
i:integer;

implementation

function f1(x: real): real;
begin
f1:=(sqr(x)/10)-x*ln(x);
end;
function f2(x:real): real;
begin
f2:=(x/5)+ln(x)-1;
end;
function Newton(a,b,e:real):real;
begin
if f1(a)*f2(a)>0 then x:=a
else x:=b;
while abs(f1(x))>e do
begin
x:=x-f1(x)/f2(x);
end;
Newton:=x;
end;

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

begin

begin

x1:=-2*pi; {весь интервал для поиска корней}
x2:=2*pi;
dx:=0.1;{шаг движения по интервалу}
eps:=0.001; {точность вычислкения корня}
x:=x1;
i:=0;
while x<=x2 do {движемся слева направо}
begin
x11:=x;
x12:=x+dx;
if F1(x11)*F1(x12)<0 then{если знаки функции на концах малого интервала разные}
begin
i:=i+1; {есть корень}

edit1.text:=FloatToStrf(i,ffFixed,8,7);
end;
x:=x+dx;{к новому интервалу размером 0.1}
end;

end;
end;
end.

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

что-то мне не по глазам: а где Newton-то вызывается?