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

функция факториала - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление элемента массива http://www.cyberforum.ru/cpp-beginners/thread178711.html
Люди добрые, помогите написать две программы в C++. Текст: 1) Даны две прямые, одна из которых проходит через начало координат и точку (X1 ,Y1 ), а вторая - через точки ( X2 ,Y21 ) и (X3, Y3). Написать программу, вычисляющую синус модуля суммы абсцисс этих точек, если эти прямые параллельны, или тангенс модуля разности их ординат в противном случае. 2) Дан массив A из 25 элементов. Удалить...
C++ Матрица Задача стандартная, но что-то решение её я найти не могу. В файле дана матрица целых чисел (можно и вещественных, не суть). Нужно перейти из левого верхнего в правый нижний углы так, чтобы сумма цифр на пути была наименьшей, причем двигаться можно в любом направлении. Я не прилагаю свой пример решения потому, что в принципе не могу придумать алгоритм, работающий в 100% случаев (нет, конечно... http://www.cyberforum.ru/cpp-beginners/thread178707.html
C++ Динамический массив
Писал программу #include <iostream> #include <stdlib.h> #include <math.h> using namespace std; class matrix { protected: int size;
Project raised exception class EConvertError C++
Вот такая ошибка: Project Project1.exe raised exception class EConvertError with message "2.1" is not a valid integer value. Process stopped. Use Step or Run to continue. 2.1 это число, вводимое с клавиатуры, оно = x код программы: float x,a,b; double y; x=StrToFloat(Edit1->Text); const float p=2; a=exp(sqrt(fabs(x))); b=pow(sin(p),2)+pow(x,3);
C++ Исследование алгоритмов линейного и двоичного поиска на С. http://www.cyberforum.ru/cpp-beginners/thread178697.html
1. Написать программы работы алгоритмов оптимального и неоптимального, последовательного поиска для неупорядоченного массива с оценкой временных характеристик 2. Написать программы работы алгоритмов последовательного оптимального и бинарного (оптимального и неоптимального) поиска в упорядоченном массиве с оценкой временных характеристик. 3. Для проведения исследований временных характеристик...
C++ Что за перегруженный оператор char* ()? Вот синтаксис: operator char*(){ return ptr; Пример взят из книги Брайана Овереленда и к этому примру, в частности, никаких пояснений Я порылся в инете, но везде ведётся речь про перегружаемые оператооры, т есть примерно такого вида: void operator-(char); подробнее

Показать сообщение отдельно
vovelo
Сообщений: n/a
19.10.2010, 21:43     функция факториала
Задание:
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от хнач до хкон с шагом dx с точностью e. Таблицу снабдить заголовком и шапкой. Каждая строка должна содержать значение аргумента, значение функции и количество просуммирорванных членов ряда.
В моем варианте присутствует факториал в знаменателе дроби - (2n+1)!
Я в С++ не силен, до этого работал только в Паскале, но нам дают задания, которые надо делать исключительно на си.

Вот что у меня получилось:

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
#include <iostream>
#include <cmath>
#include <clocale>
#include <stdio.h>
using namespace std;
unsigned long fact(unsigned int n)
{
if(n<=1)
return 1;
return n* fact(n-1);
}
 
int main ()
{
    setlocale(LC_ALL, "russian");
float sum=0,arg=0,x=0,xnach=0, xkonech=0, shag=0, toch=0;
    int n;
    
        cout<<"\nВведите x начальное:"; cin>>xnach;
        cout<<"Введите шаг:"; cin>>shag;
        cout<<"Введите х конечное:"; cin>>xkonech;
        cout<<"Введите точность:"; cin>>toch;
 
    cout<<"\nx\tn\tsum\tsin"; 
    
    for(float x=xnach; x<=xkonech; x+=shag)
    {
        n=0;
        arg=(pow((float)(-1), n)*(pow(x,2*n)))/(fact(2*n+1));
        while(abs(arg)>toch)
        {
            sum+=arg;       
            n++;
            arg=(pow((float)(-1), n)*(pow(x,2*n)))/(fact(2*n+1));
        }
        cout.precision(4);
        cout<<"\n"<<x<<"\t"<<n<<"\t"<<sum<<"\t"<<(sin((double)x)/x);
 
    }
    cout<<endl;
    return 0;
}
Препод сказал заменить рекурсивную функцию факториала на "расширенный вид", ибо у меня выскакивает ошибка после подсчета по формуле вот на этом моменте на скрине.
Подскажите приблизительно, как написать правильно эту самую функцию...
Миниатюры
функция факториала  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru