Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
5 / 5 / 2
Регистрация: 24.01.2015
Сообщений: 39
1

Нужно исключить ситуацию, когда cos(x)=0

24.01.2015, 22:15. Показов 1121. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Нужно исключить ситуацию, когда cos(x)=0, вроде как написал все правильно, но не выходит.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program pr_10_1;
uses crt;
var a,x,k,d,b:real;
function calc(a,x: real): real;
begin
calc:=(sin(x+PI/6)/cos(x+PI/6))/(sqrt(a+sin(x+0.123)));
end;
begin
clrscr;
write('Input a?->');
readln(a);
write('Input x?->');
readln(x);
k:=cos(x+PI/6);
d:=a+sin(x+0.123);
if (k=0) or (d<=0) then
writeln('Error') else
writeln('Result = ',calc(a,x):1:4);
writeln('cos(',x:1:4,'+pi/6)= ',k:1:4);
readln;
end.
Прогон:

Input a?->0
Input x?->1.04719755
Result = 870888617.3185
cos(1.0472+pi/6)= 0.0000
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2015, 22:15
Ответы с готовыми решениями:

Где здесь ошибка, заранее спасибо. Условие:Вычислить значение суммы cos(x)+cos(cos(x)+.+cos(cos(.cos(x).) n раз
Sub max3() Dim s As Double Dim n, i, t, j As Integer n = Cells(1, 1) x = Cells(1, 2) s = 0 t...

Массив: В методе merge ошибка : он некорректно обрабатывает ситуацию, когда один из массивов полностью выбран.
Задача: Метод Merger.merge(...) реализован с небольшой ошибкой - он корректно сливает, но...

Когда нужно использовать структуры, когда классы, а когда словарь?
Хеллоу. Не могу понять, когда, что, нужно использовать. Допустим мне нужно получить объект,...

Когда перед ELSE не нужно ставить точку с запятой, а когда нужно?
Когда перед ELSE не нужно ставить точку с запятой, а когда нужно?

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.01.2015, 10:10 2
Лучший ответ Сообщение было отмечено vahundos как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program pr_10_1;
uses crt;
var a,x,k,d,b:real;
function calc(a,x: real): real;
begin
calc:=sin(x+PI/6)/cos(x+PI/6)/sqrt(a+sin(x+0.123));
end;
begin
clrscr;
write('Input a?->');
readln(a);
write('Input x?->');
readln(x);
if(cos(x+PI/6)=0)or(a+sin(x+0.123)=0) then write('Значение функции не определено')
{но ввести такие a,x не реально}
else write('Result = ',calc(a,x):0:4);
readln;
end.
0
5 / 5 / 2
Регистрация: 24.01.2015
Сообщений: 39
25.01.2015, 13:03  [ТС] 3
Выходит тоже самое. Если ввести а=0 и х=1.04719755, то cos буде равен нулю (как показано на скрине в первом посте)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.01.2015, 13:06 4
Цитата Сообщение от vahundos Посмотреть сообщение
то cos буде равен нулю
С какой это стати?
А выведите результат без округления
Pascal
1
writeln('cos(',x:1:4,'+pi/6)= ',k);
1
25.01.2015, 13:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2015, 13:06
Помогаю со студенческими работами здесь

Рекурсия. Вычислить рекурсивно функцию вида y=cos(x)+cos(x^2)+cos(x^3)+...+cos(x^n).
У меня задание вычислить рекурсивно функцию вида y=cos(x)+cos(x^2)+cos(x^3)+...+cos(x^n). Но мне...

Нужно добавить исключительную ситуацию
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Даны два числа, поменять их местами, предусмотреть ситуацию, когда числа не введены
1) Даны два числа. Поменять их местами. Предусмотреть ситуацию, когда числа не введены. Кнопка...

Составить программу. Вычислить y=cos x+cos 2x+cos 3x+.+cos 30x
Составить программу. Вычислить y=cos x+cos 2x+cos 3x+...+cos 30x


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru