Регистрация
Войти
Стать экспертом Правила
Информатика

Какие ошибки в проге? (Задание во вложении) Паскаль выдает "a = NaN, f = NaN"
var x,y,z,k,l,m,n,o,a,f,k1,l1,o1:real;
begin
write('Введите значение х = '); read(x);
write('Введите значение y = '); read(y);
write('Введите значение z = '); read(z);
k: = x/y; k1: = exp(ln(x)*k);
l: = y/(x*z); l1: = exp(ln(l)*(1/3));
a: = abs(k1-l1);
writeln('a = ', a);
m: = a-x;
n: = y-(z/(y-x));
o: = sqr(y-x); o1: = 1+o;
f: = m*n/o1;
writeln('f = ', f);

ОТВЕТЫ
Function sign(x:real):integer;
begin
     if xgt;0 then sign:=1 else if xlt;0 then sign:=-1 else sign:=0;
end;
var x,y,z,k,l,m,n,o,a,f,k1,l1,o1:real;
begin
write(Введите значение х = );read(x);
write(Введите значение y = ); read(y);
write(Введите значение z = ); read(z);
k1:=exp(ln(x)*k);
l:=y/(x*z);
l1:=sign(l)*power(abs(l),1/3);
a:=abs(k1-l1);
writeln(a = , a);
m:=a-x;
n:=y-(z/(y-x));
o:=sqr(y-x);
o1:=1+o;
f:=m*n/o1;
writeln(f = , f);
end.
1.
k := y/x; (а не x/y)

2.
В l1 := exp(ln(l) * (1/3)) берется логарифм от отрицательного числа (т.к. z lt; 0).
Предлагаю написать так:
l1:=exp(ln(abs(l))*(1/3));
if l lt; 0 then l1 := -l1;

29
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам