Форум программистов, компьютерный форум CyberForum.ru

Рекурсия, разложение в ряд Тейлора функции cosx не работает - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель на функцию-член http://www.cyberforum.ru/cpp-beginners/thread696062.html
Доброго времени суток, возникла следующая ситуация: Приведу пример: class A { public: void a() { cout << "hello!"; }; }; class B { public: void b(void (*pfunc)()) { pfunc(); };
C++ Как в связном списке обратиться к элементу по адресу как в связном списке обратиттся к элементу по нужному адресу? Добавлено через 46 минут как в связном списке обратится к нужному элементу? http://www.cyberforum.ru/cpp-beginners/thread696059.html
C++ Действие для кнопки при инициализации класса
Предположим есть класс Button #include "string.h" class Button { public: Button(); int x,y; String text; virtual void Action();
Односвязный список, поменять значения местами C++
пробую написать сортировку выборкой int selectionSort() { ListNode< NODETYPE > *currentPtr = firstPtr; sort(currentPtr); } int sort(ListNode < NODETYPE > *current) {
C++ Удалить из файла все числа меньше заданного http://www.cyberforum.ru/cpp-beginners/thread696040.html
Удалить из файла все ЧИСЛА меньше заданного. Соответственно у нас два файла 1 и 2 txt, и во втором редактировынный первый)))
C++ Как отсортировать двумерный массив по возрастанию методом пузырька? Напишите пожалуйста код. Нигде не могу найти( подробнее

Показать сообщение отдельно
Bull
Сообщений: n/a
13.11.2012, 04:19     Рекурсия, разложение в ряд Тейлора функции cosx не работает
Помогите, пожалуйста, ничего не понимаю, как факториал рекурсивно считать понял, а cos x через ряд Тейлора рекурсивно не доходит. Полазил по форуму, но ни работающего кода, ни доступных объяснений не нашёл. Прошло 2 месяца учёбы, я всё рекурсию написать не могу. Скоро зачёт, ай нид хелп!
Вот что-то накидал, но, как мне кажется, это бред, выдаёт чёрти что, знак второй и последующий разы менять не хочет, может дело в while?

C++
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
// Recurse.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <windows.h>
#include <string.h>
 
extern float END = 0.000001;
 
double teylor();
void logo ();
float inputvalue();
void manager();
float x, result, coef, coefbef;
float n, VAL, LASTVAL;
float z, i;
float summ;
float d;
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    logo();
    inputvalue();
    manager();
}
 
void logo ()
{
    printf("Рекурсия. Ряд Тейлора. Косинус.\n");
}
float inputvalue()
{
    printf("Введите икс, от которого будет посчитан косинус.\n");
    scanf("%f", &x);
    return x;
}
float teylor(float x, float summ, float n)
 {
    
    n=1;
    
    d=(-1);
    summ=1;
    z=(x*x)/(n*(n+1));
    LASTVAL=1;
    VAL=LASTVAL*z;
    while ((fabsf(VAL-LASTVAL))>END)
        VAL=LASTVAL;
        coefbef=coef;
        summ=summ+coef*n;
        n=n+2;
        
        coef=z*d*(x*x)/((n)*(n+1));
        VAL=LASTVAL*z;
        return teylor(x, summ+coef*z, n+2);
    
}
 
 void manager ()
 {
    result=teylor(x, summ, n+2);
    printf("%f %f %f", VAL, LASTVAL, result);
 }
Буду очень признателен тем, кто поможет!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru