Другие языки программирования и технологии

207 ошибка (Турбо паскаль)

uses CRT; function Q(a,b:real):real; begin Q:=sqrt(a*a+b*b+exp(2*ln(sin(a*b)))); end; var p,z,x,y:real; begin CLRSCR; writeln('wedite x,y,z'); readln(x,y,z); p:=Q(x,y)+Q(y,z)+Q(z,x); writeln('P=',p:3:4); readln; end. Обьясните как испавить программу, ошибка вылетает в раене функции Кому не сложно напишите текст исправленной программы
ИП
Иван П
516
Логарифм от синуса - ошибка.
Так не может быть задана функция, или надо писать так:
uses CRT;
function Q(a,b:real):real;
begin
Q:=sqrt(a*a+b*b+exp(2*ln(sin(a*b))));
end;
var p,z,x,y:real;
begin
CLRSCR;
writeln('wedite x,y,z');
readln(x,y,z);
if (sin(x*y)<=0) OR (sin(y*z)<=0) OR (sin(x*z)<=0)
then writeln('UNDEFINED')
else begin
p:=Q(x,y)+Q(y,z)+Q(z,x);
writeln('P=',p:3:4);
end;
readln;
end.
Денис Ульев
Денис Ульев
7 165
Лучший ответ
А что, по другому в квадрат никак?

exp(2*ln(sin(a*b)))

Вы же при некоторых значениях переменных обязательно отгребете логарифм отрицательного числа! Что просто воспользоваться стандартной функцией Sqr() религия не позволила? Обязательно надо с извращением?

2 Александр Осипов: Что "UNDEFINED"? Функция определена всегда, это корень квадратный из суммы квадратов, которая не может быть отрицательной.
Значение ошибки 207
Недопустимая операция с плавающей запятой

Тип ошибки 207
Ошибка Turbo Pascal, возникшая в процессе выполнения программы

Описание ошибки 207
Возможные причины сообщения: аргумент функций TRUNC или ROUND не может быть преобразован в целое число, находящееся внутри диапазона типа LONGINT (от -2147483648 до +2147483647); отрицательный аргумент функции SQRT (извлечение квадратного корня) ; аргумент функции LN (логарифм) равен нулю или имеет отрицательное значение; произошло переполнение стека сопроцессора.
у меня программа заработала. 207 ошибка неправильная обработка типа данных ввода (в данном случае тип реальный, а ты вводил целые числа)
когда я ввел дробные числа, к примеру 1.0 2.0 1.0 то был получен некий результат.
Нâ скóлькó пóмню обсуждалось тут уже, юзай - wmfix
Erdaulet /
Erdaulet /
154
Самое простое решение: