Цитата:
Сообщение от dimaua2
вот так прописываю выдает ошибку, написал, как вы показали в чем причина?
|
В знаменателе формулы.
Если Вы заметили, в моей записи аргументом тангенса является некая неизвестная величина z, поскольку в Вашей исходной формулировке задания таковой аргумент отсутствует напрочь.
У Вас же в знаменателе сидит функция tg²ª(a) (здесь вместо x поставлено a). Но! Если аргумент тангенса превышает Pi/2, т.е. 1.57, то тангенс становится отрицательным, а отрицательная величина под знаком логарифма недопустима, отсюда и ошибка.
Тут можно вывернуться так:
tg²ª(a) = (tg²(a))ª = Exp(a*Ln(tg²(a))). Вот теперь, когда под логарифмом мы оставили не тангенс, а квадрат тангенса, то есть положительную величину (значение а=0 у нас обходится), ошибки быть не должно. И нету.
Код:
uses CRT;
var
x,y:real;
begin
clrscr;
x:=3;
while x<=5 do
begin
if x<0 then
y:= Exp((1/5)*Ln(1-Exp(2*x*Ln(5))))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
if x>0 then
y:= -Exp((1/5)*Ln(Exp(2*x*Ln(5))-1))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
y:=0;
writeln('x= ',x:3:2,' Y= ',Y:3:2);
x:=x+0.2;
end;
readln;
end.