0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 7
1

Цикл: Вычисление значения согласно заданной формулы

09.12.2016, 09:10. Показов 1824. Ответов 5
Метки нет (Все метки)

Здравствуйте. Не понимаю даже как подступиться к задаче. Заранее, спасибо)
Через циклы написать программу выполняющую:
https://www.cyberforum.ru/cgi-bin/latex.cgi?S=\sum_{k=1}^{n}\frac{{(-1)}^{k}({k}^{3}-27)}{3(k+2)!}
При разработке предусмотреть пропуск слагаемых (множителей), равных нулю или бесконечности.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 09:10
Ответы с готовыми решениями:

Вычисление значения математической формулы введённой через консколь
Через консоль я заполняю массив char какой-то неизвестной заранее формулой, например 2+2. Так вот...

Цикл: Вычисление значений заданной функции
Помогите на С++

Вычисление значения по заданной формуле
Задано:Создать программу вычисления указанной величины. Результат проверить при заданных исходных...

Вычисление значения функции, заданной графически
Проблема такова что я не знаю как это делать. Может кто-то поделится советом?

5
11 / 33 / 15
Регистрация: 29.04.2014
Сообщений: 223
09.12.2016, 12:32 2
Так подойдет, или только циклами нужно?
И еще тут слагаемые бесконечностью быть не могут вроде, только равные 0:
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
#define _CRT_SECURE_NO_WARNINGS
#include<conio.h>
#include<iostream>
#include<math.h>
 
 
using namespace std;
 
unsigned long int factorial
    (
        int
    );
 
unsigned long int result;
 
int main
    (
    
    )
{
    setlocale(LC_ALL,"Russian");
 
    double S(0);
    double tmp(0);
    int n(0);
 
    printf("--Расчет--\n");
 
    printf("Введите n: ");
 
    scanf("%d",&n);
 
    for(int k = 1; k < (n+1); k++)
    {
        tmp 
            = (pow(-1,k)*(pow(k,3)-27))/(3*factorial(k+2));
        printf("tmp=%f\n",tmp);
        tmp == 0 ?
            S+=0
            :S+=tmp;
    }
 
    printf("\Результат:\n S = %f\n",S);
 
    system("@pause");
}
 
unsigned long int factorial
    (
        int k_add_2
    )
{
    if(k_add_2==1||k_add_2==0)
    {
        return 1;
    }
    
    result = k_add_2*factorial(k_add_2-1);
 
    return result;
}
Миниатюры
Цикл: Вычисление значения согласно заданной формулы  
0
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,521
09.12.2016, 12:52 3
MasteRX, Код чрезвычайно неэффективный и опасный.
Такие задачи решаются так
C++
1
2
3
4
5
6
7
8
9
10
double a = 26.0/18;
double S = 0;
int k;
for(k=1; k<=n; k++) {
  S += a;
  k1 = k+1;
  if (k==3) a = 0;
  else if (k==4) a = (64-27)/720/3;
  else a *= (-1)(k1*k1*k1 - 27)/(k+3)/(k*k*k - 27);
}
0
11 / 33 / 15
Регистрация: 29.04.2014
Сообщений: 223
09.12.2016, 12:56 4
Байт, почему опасный и неэффективный? буду очень рад если поделитесь, я новичок
0
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,521
09.12.2016, 13:08 5
Цитата Сообщение от MasteRX Посмотреть сообщение
почему опасный и неэффективный?
1. Неэффективный. При вычислении факториала с помощью рекурсии вам приходится многократно повторять уже вычисленное. Так, вычисляя 7! вы вычисляете 6!, потом 5! ... - а зачем? Я же просто делю очередной член на (k+3)
2. Опасный. Факториал - очень быстро растущая функция. И вызывает переполнение разрядной сетки довольно быстро. И тут никакие long long не спасут. Можно, конечно, использовать double - у него запас побольше, но это тоже не панацея и ведет к потере точности. А главное, в связи с пунктом 1 - все это совершенно ни к чему!
0
11 / 33 / 15
Регистрация: 29.04.2014
Сообщений: 223
09.12.2016, 14:18 6
Понял спасибо! Полностью согласен!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 14:18
Помогаю со студенческими работами здесь

Вычисление значения функции, заданной графически
Задание. Нарисовать блок-схему, написать программу для вычисления значения функции, заданной...

Вычисление значения интервально заданной функции
Добрый день) помогите дописать программу.Выводит результат y=1. Не пойму в чем проблема.

Вычисление значения интервально заданной функции
Вычислить систему уравнений. Код программы есть, но верный результат в итоге показывает только с...

Вычисление значения интервально заданной функции
Всем привет. Не знаю как решить эти две задачи, помогите, пожалуйста: (Тема циклы for,while, do...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru