Электростальский форум
Объявления => Другие => Тема начата: Shumaher от 10.11.08, 21:12:59
-
помогите срочно решить задачу по информатике в PASCAL. задачу решил но выдает ошибку. не могу понять что неправильно. помогите если кто то сможет. буду премного благодарен. задание и решенная мною программа в прилагаемом файле
-
я вообще паскаль последний раз запускал лет шесть назад, так что могу ошибаться, но разве так можно указывать: -z ?
и вообще, разве можно выражение в константы записывать?
да и -z/x можно отдельной переменной задать, чтоб с минусами не заморачиваться
-
попробовал задать через другую переменную но все равно в 9 строке выдает что неверная вещественная операция
-
z*(-1) не пробывал?
-
Вроде че-то типа того
Program ex;
const
x=0.00671e5;
y=-0.6023;
var
a,b,c,d,z:real;
begin
z:=sqrt(abs(2-pi));
a:=ln(arctan(-z/x))/ln(10);
b:=1/(a+z)+(x*y/100);
c:=exp(ln(a)/3)+exp(b*ln(2));
d:=sin(c)/cos(c);
writeln(d);
end.
но ругается на
invalid floating-point operation. Недопустимая операция с плавающей запятой. При операции с двумя действительными значениями было получено переполнение или деление на ноль.
в 9 строчке
-
возможно получится заменить real на что-то более широкое... но у меня не компилится тогда.. проверьте у себя на компе
-
возможно получится заменить real на что-то более широкое... но у меня не компилится тогда.. проверьте у себя на компе
Хех, логорифм отрицательного числа........ причем в 2-х местах....
-
если arctan(-z/x) дает отрицательное, то да... я прост оне проверял и не задумывался...
а второй где?
-
если arctan(-z/x) дает отрицательное, то да... я прост оне проверял и не задумывался...
а второй где?
ну если учесть, что а у нас отрицательное, то
c:=exp(ln(a)/3)+exp(b*ln(2));
П.С. по условию там Arcsin :derisive:
-
ну а у нас вообще получается посчитаться не может )
-
кстати да... я там уже кое-че правил согласно условию )
-
Program ex;
const
x=0.00671e5;
y=-0.6023;
var
a,b,c,d,z:real;
function arcsin(x:real):real;
begin
if abs(x)=1 then arcsin:=0
else arcsin:=arctan(x/sqrt(1-sqr(x)))
end;
begin
z:=sqrt(abs(2-pi));
a:=ln(arcsin(-z/x))/ln(10);
b:=1/(a+z)+(x*y/100);
c:=exp(ln(a)/3)+exp(b*ln(2));
d:=sin(c)/cos(c);
writeln(d);
end.
так тоже ругается на плавающую точку )
-
a в одном из 2-х случаев вычисляется, т.к. z из под корня можно с отрицательным знаком вынести, а вот дальше уже :dntknw:
-
а если :
a:=ln( здесь arcsin(-z/x))/ln(10)
модуль воткнуть?
abs, чтоль?
-
ну условие то не такое ))
-
ну условие то не такое ))
ну арксинус может, конечно, равняться -1, но логарифм взять из -1 нельзя
-
ну вообщем если в двух местах поставить модуль, то будет пахать... но это не по условию...
2Shumaher короче скажи преподу, что задача говно )