Гуру паскаля и математики, вопрос к вам: в чем трабл программы? При любом значении выдает минус бесконечность. program one;
var
x, y, a, b, c: real;
begin
write('Введите x: ');
readln(x);
write('Введите y: ');
readln(y);
if (x>0) and (x<>-4) then
begin
a:= y-sqr(abs(x));
b:= x-y/(x+sqr(x)/4);
c:= ln(abs(a*c));
write('ответ: ');
writeln(c);
end
else // если данное, введенное пользователем, не удовлетворяет ограничению
writeln('Нет решений');
end.
126
461
Ответы на вопрос:
Математика:
Подкоренное выражение всегда больше либо равно нулю.
Так как у нас модуль, то в этой части примера решение есть при всех x (модуль убирает минус).
Далее, дробь.
Знаменатель должен быть не равен нулю.
a)
b)
Получается, математические ограничение для х:
Так, с математикой разобрались.
Информатика:
if (x<>0) and (x<>-4) then в 9 строчке
sqr - это возведение в квадрат
sqrt - квадратный корень
(от англ. слов square и square root)
То есть:
a:=y-sqrt(abs(x)); в 11 строчке
И ошибка в 13 строчке:
c:=ln(abs(a*b));
(было c:=ln(abs(a*c);)
Собственно, минус бесконечность выдавало именно из-за ошибки в 13 строчке.
Умножали a на c.
Так как с не было определенно, то c=0.
А значит a*c=0.
Натуральный логарифм от нуля равен минус бесконечности.
Готово!Популярно: Информатика
-
tanya24010205.08.2021 20:57
-
texet102401.09.2020 00:38
-
Roblox201731.01.2020 22:12
-
krikstoon110.12.2022 20:20
-
Ilya256931.03.2023 06:41
-
juhf26.10.2022 19:45
-
54342116.12.2021 19:18
-
лера140524.02.2020 23:33
-
Leska717.03.2023 23:19
-
нипета15.04.2020 23:19