Показать сообщение отдельно
Старый 19.12.2013, 20:02   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от felarl Посмотреть сообщение
Буду благодарен за помощь!
Легко. Всё правильно, кроме того, что в ТЕЛЕ обеих функций аргументом должно быть d, а не x. Раз уж в заголовке стоит d. С учетом этого и еще пары мелких поправок:
Код:
uses Crt;

const
 a=0.4;
 b=2;
 e=0.001;

var
 x: real;

function f1(d: real): real;
begin
 f1:=(d-2)*(d-2)*2*d-1;
end;

function f2(d:real): real;
begin
 f2:=6*d*d-16*d+8;
end;

begin
 Clrscr;
 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;
 Writeln ('x= ',x:0:5,'   f(x)= ',f1(x):0:12);
 Readln
end.
Результат работы программы:
Код:
x= 0.14536           f(x)= -0.000002649617
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070