![]() |
|
Модераторы: bsa |
![]()
|
|
| molodzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Задача:
k изменяется от 0 до бесконечности ((4k+1)! / [(2k)!]^2) * x^2k = =1/2*[(1-4x)^(-3/2) + (1+4x)^(-3/2)] X принадлежит интервалу [-1/4 ; 1/4) Найти мин. k, которое будет удовлетворять условию: abs(правая часть - левая часть) < 10^(-15) Вот код(тока у меня не работает): Код: #include <iostream.h> #include <conio.h> #include <math.h> long double k,x2,x,p,p2,n,znam,znam1,znam2,p3,my_res,p4,p5,p6,p7,p8,sum1,sum2,ch,sravn; long double factorial(long double); main() { k=-1; x2=pow(1/10,15); do { my_res=1; x=-0.25; k=k+1; p=4*k+1; ch=factorial(p); p2=2*k; znam=factorial(p2); znam1=znam*znam; do { x=x+x2; if (2*k>=0) p3=pow(x,2*k); else p3=(1/(pow(x,abs(2*k)))); sum1=ch/znam1*p3; p4=1-4*x; p5=(1/(pow(p4,3/2))); p6=1+4*x; p7=(1/(pow(p6,3/2))); p8=p5+p7; sum2=0.5*p8; sravn=pow(1/10,15); } while ((x<=0.25) && (abs(sum1-sum2)>=sravn)); if(abs(sum1-sum2)<sravn) { cout<<"Sum1="<<sum1; cout<<"Sum2="<<sum2; cout<<"K="<<k; getch(); break; } else continue; } while(abs(sum1-sum2)>=sravn); getch(); } long double factorial(long double n) { if (n==1) {exit(1);} else { my_res=my_res*n; factorial(n-1); } } Помогите, пожалуйста, ее решить! |
|||
|
||||
| zim22 |
|
||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
Первый раз в жизни я вижу такой способ "вычисления" факториала:
Попробуй так:
*********** Наваял код. Ты не написал с каким шагом изменяется x и к. поэтому я выставил 0.1 в 15 степени. Т.е. очень маленький шаг инкремента. Программа будет высчитывать значение лет 5.
Это сообщение отредактировал(а) zim22 - 4.3.2009, 20:59 |
||||||
|
|||||||
| molodzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
zim22, Спасибо большое! Препод на самом деле говорит, что она может целую ночь вычислять)
Тока на моем компиляторе что-то прога не работает(... Можешь мне скинуть свой? |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
||||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
molodzo, а это у тебя компилируется? если да, то какие ошибки выдаёт моя прога?
|
|||
|
||||
| molodzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Вот такие ошибки:
Error: name.cpp(1,2):Unable to open include file 'CMATH.h' Error: name.cpp(4,5):Qualifier 'std' is not a class or namespace name Error: name.cpp(4,7):Identifier expected Error: name.cpp(5,10):Qualifier 'std' is not a class or namespace name Error: name.cpp(5,12):Identifier expected Error: name.cpp(19,23):Call to undefined function 'pow' Error: name.cpp(30,16):Call to undefined function 'abs' Warn : name.cpp(35,2):Parameter 'argc' is never used Warn : name.cpp(35,2):Parameter 'argv' is never used Даже не знаю,что делать... |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
molodzo, так попробуй
|
|||
|
||||
| molodzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Теперь программа начинает работу, но сразу же пишет в досе pow: DOMAIN error
А как она у тебя работает? |
|||
|
||||
| zim22 |
|
||||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
molodzo, прежде чем задавать вопрос, погугли что-ли.
The pow functions compute x raised to the power y. A domain error occurs if x is finite and negative and y is finite and not an integer value. A domain error may occur if x is zero and y is less than or equal to zero. A range error may occur. Поменяй значения, посмотри как прога с ними работает. У меня выдаёт 43.00000. это
поменяй на это:
а это:
на это:
|
||||||||
|
|||||||||
| molodzo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Ребят! Наконец-то установил C++ Builder 2007! Теперь прога ошибок не выдает!
Однако, рез-т тоже не появляется... пробовал добавить в код: Form1->Edit1->Text=k; но он ее не распознает k! А если сделать K глобальной переменной, то выводит 1... как быть? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
molodzo, если у вас есть вопросы по Builder - обращайтесь в соотв.раздел форума
http://forum.vingrad.ru/forum/borland-c++builder.html |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |