Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Valuh
0 / 0 / 1
Регистрация: 04.07.2010
Сообщений: 70
1

страшная задача

29.10.2011, 20:35. Просмотров 621. Ответов 2
Метки нет (Все метки)

Программа вычисляет огромную формулу:
f(a)=ln⁡(1+sin⁡(a/(a^2+5)) )⋅ln⁡(sin^2⁡(a-1)/(1+a^4 ))- ln⁡((1+sin⁡(a/2))/(3+sin^2⁡a ))
А для вычисления ln и sin используются степенные ряды:
ln⁡(1+z)=z-z^2/2+z^3/3…
sin⁡(z)=z-z^3/3!+z^5/5!…

Муть страшная.

Программу написал вроде правильно, но считает как-то не правильно, можете найти ошибку?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
uses crt;
var a, f : real;
 
function sin(a : real) : real;
var sin : real;
begin
sin:=a - (a*a*a)/(1*2*3) + (a*a*a*a*a)/(1*2*3*4*5) - (a*a*a*a*a*a*a)/(1*2*3*4*5*6*7)
 + (a*a*a*a*a*a*a*a*a)/(1*2*3*4*5*6*7*8*9);
end;
 
function ln(a : real) : real;
var ln : real;
begin
ln:=a - (a*a)/2 + (a*a*a)/3 - (a*a*a*a)/4;
end;
 
begin
clrscr;
 
writeln('введите а*:');
 
readln(a);
 
 
f:=ln(1+sin(a)/(a*a+5))*ln((sin(a-1)*sin(a-1)))/(1+a*a*a*a)-ln(1+sin(a/2))/(3+sin(a)*sin(a));
writeln('функция равна: ');
writeln('f(a)=',f:4);
 
readln;
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 20:35
Ответы с готовыми решениями:

Матрица страшная)
Подскажите, как решить данную матрицу? Если "Правилом треугольника", то почти везде нули... Вообще...

Страшная правда о Windows
=-O Да, стоит порыться в интернете, и становится плохо, если только сидишь не на Ubuntu... Все...

Самая страшная игра!
Какая на ваш взгляд самая страшная игра?

Страшная мысль, или запрос музыка
Собственно, интересно вот что. Какова вероятность выйти по запросу "музыка" в топ10? И какие...

Страшная ошибка при создании процесса
Программа в каталоге, в котором она была вызвана, должна перебирать все имеющиеся файлы и выводить...

2
Puporev
Модератор
56131 / 42988 / 29734
Регистрация: 18.05.2008
Сообщений: 102,026
30.10.2011, 12:00 2
Еще бы знать что было на месте квадратиков....

Добавлено через 15 часов 1 минуту
Интересно, во втором члене формулы
ln⁡(sin^2⁡(a-1)/(1+a^4 ))
не пропущена единица? Вроде должно быть
ln(1+sin^2(a-1)/(1+a^4));
поскольку у нас вычисляется ln(1+z);
если нет 1 в формуле, то мы должны при вычислении вычесть 1, и будет логарифм из отрицательного числа.

Добавлено через 8 минут
Если я правильно думаю, то решение такое.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
uses crt;
function lnx1(z,e:real):real;
var s,t:real;
    k:integer;
begin
if abs(z)<=e then s:=z
else
 begin
  s:=z;
  t:=z;
  k:=1;
  while abs(t)/k>e do
   begin
    k:=k+1;
    t:=-t*z;
    s:=s+t/k;
   end;
 end;
lnx1:=s;
end;
function snx(z,e:real):real;
var s,t:real;
    k:integer;
begin
if abs(z)<=e then s:=z
else
 begin
  s:=z;
  t:=z;
  k:=1;
  while abs(t)>e do
   begin
    k:=k+1;
    t:=-t*z*z/((2*k-2)*(2*k-1));
    s:=s+t;
   end;
 end;
snx:=s;
end;
var a,e,t1,t2,t3,t4,f:real;
    b:boolean;
begin
clrscr;
write('Введите значение a=');
readln(a);
write('Введите точность вычисления для функций e=');
readln(e);
b:=true;
{первый член}
t1:=snx(a/(a*a+5),e);
if t1=-1 then b:=false{если синус=-1, то логарифм 0}
else t1:=lnx1(t1,e);
{второй член}
t2:=sqr(snx(a-1,e))/(1+a*a*a*a);{синус в квадрате}
t3:=lnx1(t2,e);{логарифм}
{третий член}
t4:=snx(a/2,e);
if t4=-1 then b:=false{если синус=-1, логарифм 0}
else t4:=lnx1(t4,e)/(3+sqr(snx(a,e)));
if not b then write('Значение f(a) не определено')
else
 begin
  f:=t1*t3-t4;
  write('f(a)=',f:0:4);
 end;
readln
end.
0
Valuh
0 / 0 / 1
Регистрация: 04.07.2010
Сообщений: 70
31.10.2011, 19:13  [ТС] 3
Спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 19:13

Страшная сказка про ЛУТ и термотрансферную бумагу
В расстройстве полном чуйств своих пейшу я строки ети; не токмо мести позорной пробавляшема, но...

Страшная тайна пропадающей информации или расследование одной ошибки
Товарищи, предлагаю вам принять участие в увлекательном (я надеюсь) расследовании моей проблемы,...

Страшная анимация таблицы, после добавления кодом на View и добавления Constraint-ов
делаю дропдаун, чтобы можно было в любом месте вызвать и он разворачивался из нужной вьюшки....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru