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

Теперь по задаче.
Прежде всего - мною обнаружена ошибка в условии. Рассмотрим, например, значения функций при х=2.5:
у1=0.9748
у2=-1.0024
Таким образом, при вычислении функции z, подкоренное выражение есть
у1*у1+у2=-0.0523, т.е. оно ОТРИЦАТЕЛЬНО, а значит при выполнении программы неизбежно возникнет ошибка.
Как я предполагаю, скорее всего там опечатка, и под корнем стоит, например, сумма квадратов у1 и у2. Если так, то:
Код:
VAR
 Xmin,Xmax,Dx,x:Real;
 i,N:Integer;

Function Y1(x1:Real):Real;
begin
 if x1<=5 then Y1:=(x1*x1*3+x1*2)/2/Exp(x1)
 else Y1:=x1*5+x1*x1*Cos(x1);
end;

Function Y2(x2:Real):Real;
 begin
  Y2:=Y1(x2)*2*Cos(x2)*Cos(x2)*Cos(x2);
 end;

Function Z(x3:Real):Real;
 begin
  Z:=SQRT(SQR(Y1(x3))+SQR(Y2(x3)));
 end;

BEGIN
 Write('Xmin (>=0) = ');
 ReadLn(Xmin);
 Write('Xmax (>5) = ');
 ReadLn(Xmax);
 Write('Dx = ');
 ReadLn(Dx);
 N:=ROUND((Xmax-Xmin)/Dx);
 For i:=0 to N do
  begin
   x:=Xmin+Dx*i;
   WriteLn(x:5:2, Z(x):12:3);
  end;
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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