Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 20:27   #1
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию Как это написать в программе?С++

n=10;
Особенно интересно как записать факториал в программе?
Изображения
Тип файла: png lab6_v3.png (1.5 Кб, 93 просмотров)
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 21:06   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Цитата:
Особенно интересно как записать факториал в программе?
Циклом... как обычно.
p51x вне форума Ответить с цитированием
Старый 28.11.2012, 21:21   #3
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Если можно напишите как оно должно выглядеть,чтоб для меня это тоже стало как обычно))
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 21:23   #4
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

И еще как изобразить те ... что в примере?дано диапазон смены аргумента 1<x<2
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 22:19   #5
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Первое, что в голову пришло:

MyFormulas.h
Код:
/* 
 * File:   MyFormulas.h
 * Author: Ivan
 *
 * Created on November 28, 2012, 9:36 PM
 */

#ifndef MYFORMULAS_H
#define	MYFORMULAS_H

class MyFormulas {
public:
    MyFormulas();
    long CalcFactorial(int arg);
    double CalcS(int n, double x);
private:
    long factorial;
    double S;
};

#endif	/* MYFORMULAS_H */
MyFormulas.cpp
Код:
/* 
 * File:   MyFormulas.cpp
 * Author: Ivan
 * 
 * Created on November 28, 2012, 9:36 PM
 */

#include <cmath>
#include "MyFormulas.h"

MyFormulas::MyFormulas() {
    factorial = 0;
    S = 0;
}

long MyFormulas::CalcFactorial(int arg) {
    long result = 1;
    int i;
    for (i = 2; i <= arg; ++i) {
        result *= i;
     }
    return result;
}

double MyFormulas::CalcS(int n, double x) {
    for (int i = 0; i <= n; i++) {
        S = S + pow(-1, i) * pow(x, (2*i+1)) / CalcFactorial(2*i+1);
    }
    return S;
}
main.cpp
Код:
/* 
 * File:   main.cpp
 * Author: Ivan
 *
 * Created on November 28, 2012, 9:36 PM
 */

#include <cstdlib>
#include <iostream>
#include "MyFormulas.h"

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {
    
    MyFormulas mf;
    int n = 1;
    double x = 1.5;

    cout << mf.CalcS(n, x);
    
    return (EXIT_SUCCESS);
}
P.S. Нравится NetBeans. Из под неё удобно работать с CppUnit. Рекомендую
8Observer8 вне форума Ответить с цитированием
Старый 28.11.2012, 22:19   #6
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Сообщение, почему-то повторилось. А как их удалять?

Последний раз редактировалось 8Observer8; 28.11.2012 в 22:24.
8Observer8 вне форума Ответить с цитированием
Старый 28.11.2012, 22:26   #7
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

это как-то слишком сложно))
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 22:28   #8
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

мой вариант,но не знаю что делать с факториалами(точнее последним в примере)и верно ли я делая с теми ...
Код:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

void main()

{
	double a = 1, b = 2, n = 10, s, x, h, k=10, i;
 	
        h = ( b - a) / k;

	for ( x = a; x <= b; x+=h )

	{
		for ( i = a; i<n; i++ )

		s = x - pow (x, 3) / 3 * 2 * 1 + i + 
							pow (-1, n) * pow (x, 2 * n * 1) ;
		
		cout << "x(" << x <<")" << "setw(10)" << "S:" << s << endl;		 
	}
	
	cin.get();

	cin.get();
}
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 23:51   #9
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Как правильно это записать??
DIQUON вне форума Ответить с цитированием
Старый 28.11.2012, 23:59   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Особенно интересно как записать факториал в программе?
Написать функцию factorial и использовать её.
Проблема написать функцию?

Только вот Вам это не нужно. Факториал растёт с колоссальной скоростью. 21! в десятичной записи имеет 20 цифр и не влезет даже в 64-разрядный целочисленный тип.
Умнее находить значение следующего слагаемого, отталкиваясь от предыдущего. Напишите предпоследнее слагаемое через n. Поделите на него последнее. Посмотрите, что получится.

Последний раз редактировалось Abstraction; 29.11.2012 в 00:04.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как это написать tef Общие вопросы по Java, Java SE, Kotlin 0 15.05.2011 14:02
Как написать это на С++? daniil2010 Помощь студентам 2 18.04.2010 17:58
SOS! Как это написать и Excel? Vedodel Microsoft Office Excel 8 18.09.2009 21:07