Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Программа в Турбо Паскале

Автор: Борис Глебов 9.4.2007, 13:55

Задание: Cоставить программу для вычисления значения функции при заданных значениях аргумента. Ввод аргументов осуществить через Const.
y=ln(pi*x^2)/ln3+arccos(7*x)^(1/8) при x=10,05

Вот, что я сделал:

Program Task3;
Const
x=10.05;
Var
y: Real;
Begin
y:=Ln(pi*Sqr(x))/Ln(3)+pi/2-Arctan(Sqrt(Sqrt(Sqrt(7*x)))/Sqrt(1-Sqrt(Sqrt(7*x))));
Writeln(y)
End.


Неработет. Программа нормально работает, только если удалить "1-". Что делать?

Автор: alxdr 10.4.2007, 8:24

1. (7*10.05)^(1/8) == 1.7. К слову, данная точка не входит в область определения арккосинуса, а поэтому в формуле для арктангенса получаем корень квадратный из отрицательного числа. В этом и ошибка.
Кстати arccos можно считать через arctg и без pi/2: arccos(x)=arctg((1-x^2)^(1/2)/x).

Автор: Борис Глебов 15.4.2007, 6:04

Вместо pi/2-Arctan(Sqrt(Sqrt(Sqrt(7*x)))/Sqrt(1-Sqrt(Sqrt(7*x)))) поставил Arctan(Sqrt(1-Sqrt(Sqrt(7*x)))/Sqrt(Sqrt(Sqrt(7*x)))). И всё равно ничего не получается. И опять если убрать "1-", то получается!

Автор: Dimka 15.4.2007, 6:21

Не будет у Вас работать программа, потому что значние данной функции (которую Вы программируете) при х=10.05 будет выражаться комплексным числом, а Paskal комплексные числа по-моему не понимает.

Автор: Борис Глебов 15.4.2007, 6:26

И что мне так и написать в контрольной?

Автор: Dimka 15.4.2007, 6:43

От нас Вы что хотите?
Спросите у препода, нет ли ошибки в задании?
Если нет, то добейтесь, чтобы программа выдавала результат в комплексных числах. Для этого нужно открывать справочник по математике и искать соответствующие формулы.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)