VisualZombi
25-11-2013, 13:18
Program rgr_maximus;
Uses crt;
type massive=array[1..10] of real;
var b,x,y,a,da,underln : real;
i,N,aN:integer;
ms:massive;
procedure func(b: real; { Функция для вычисления методом Ньютона }
var fb,dfb: real);
begin
fb:=exp(-b)+b*b-2; { Сама функция }
dfb:=-1*exp(-b)+2*b { Ее производная }
end;
procedure newton(var b: real); { Метод Ньютона }
const tol = 1.0E-6;
var fb,dfb,db,b1: real;
begin
repeat
b1:=b;
func(b,fb,dfb);
db:=fb/dfb;
b:=b1-db;
until abs(db)<=abs(tol*b)
end; { конец по Ньютону }
{ Главная программа }
BEGIN
clrscr;
writeln('Введите следующие значения:');
write(' x = '); readln(x);
write(' aNach = '); readln(aN); { a начальноe}
write(' da_shag= '); readln(da); {шаг}
write(' аN= '); readln(N); {количество а }
b:=x;
newton(b);
writeln('Результат вычисления по Ньютону: b=',b);
a:=aN;
for i:=1 to N do
begin
underln:=x*x+b*b;
if underln=0 then writeln('Ошибка: ln(0)') else
y:=a*x*x*x*x+b*ln(underln);
ms[i]:=y;
writeln('a=',a,' y=',ms[i]);
a:=a+da
end;
write(' Для выхода из программы нажмите клавишу Enter');
readln;
END.
Uses crt;
type massive=array[1..10] of real;
var b,x,y,a,da,underln : real;
i,N,aN:integer;
ms:massive;
procedure func(b: real; { Функция для вычисления методом Ньютона }
var fb,dfb: real);
begin
fb:=exp(-b)+b*b-2; { Сама функция }
dfb:=-1*exp(-b)+2*b { Ее производная }
end;
procedure newton(var b: real); { Метод Ньютона }
const tol = 1.0E-6;
var fb,dfb,db,b1: real;
begin
repeat
b1:=b;
func(b,fb,dfb);
db:=fb/dfb;
b:=b1-db;
until abs(db)<=abs(tol*b)
end; { конец по Ньютону }
{ Главная программа }
BEGIN
clrscr;
writeln('Введите следующие значения:');
write(' x = '); readln(x);
write(' aNach = '); readln(aN); { a начальноe}
write(' da_shag= '); readln(da); {шаг}
write(' аN= '); readln(N); {количество а }
b:=x;
newton(b);
writeln('Результат вычисления по Ньютону: b=',b);
a:=aN;
for i:=1 to N do
begin
underln:=x*x+b*b;
if underln=0 then writeln('Ошибка: ln(0)') else
y:=a*x*x*x*x+b*ln(underln);
ms[i]:=y;
writeln('a=',a,' y=',ms[i]);
a:=a+da
end;
write(' Для выхода из программы нажмите клавишу Enter');
readln;
END.