Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
#1

Вычисление суммы ряда, подскажите пожалуйста - C++

02.10.2013, 13:16. Просмотров 469. Ответов 12
Метки нет (Все метки)

Добрый день, уважаемые программисты!
Совсем недавно узнал про этот замечательный форум, очень рад, что есть такие добрые и отзывчивые люди как вы.
Хотелось бы попросить у вас помощи, разобраться с одним заданием.

Дано натуральное число N. Вычислить: сама формула во вложении.
Вот код, подскажите, что не так, что нужно исправить и что нужно дописать.
Заранее спасибо!

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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double factorial (double n)
 
{
    if (n<=1)
    return 1;
else
    return n*factorial (n-1);
}
int main( void )
{
 
double y,s,u;
    s=0;
    double i;
    double n;
printf("Vvedite naturalnoe chislo N\n");
   scanf("%f",&n);
 
   for(i=1; i<=n; i++)
    
{
    y=factorial(i+n);
    u=factorial(i);
    s=u/y;
    printf("s=%f\t");
    scanf("%f",&s);
   
}
getch ();
}
0
Миниатюры
Вычисление суммы ряда, подскажите пожалуйста  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 13:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление суммы ряда, подскажите пожалуйста (C++):

Найдите ошибку, пожалуйста: вычисление суммы ряда - C++
Найдите ошибку пожалуйста. при eps=0.001 должна правильно работать, программа должна вывести на экран &quot;x=&quot;, &quot;eps=&quot;,&quot;kmax=&quot; ...

Вычисление суммы ряда - C++
Помогите, пожалуйста, с решением задачи. Не могу никак оформить саму сумму ряда, не знаю как правильно записать :cry: Вычислить сумму...

Вычисление суммы ряда - C++
Вычислить \sum_{i=1}^{\propto }i^2 пока S&lt;50 с помощью цикла while

Вычисление суммы ряда - C++
Помогите составить функцию для данного выражения. \sum_{n=1}^{20} \frac{ln n}{\sqrt{{n}^{7}}}

Вычисление суммы ряда - C++
Народ, помогите пожалуйста. Всё это сделать нужно на обычном си Три программы: 1) Вычисление функции и с помощью стандартных...

Вычисление суммы ряда - C++
Есть задание во вложении. Нужно найти значение суммы. Я прописываю библиотеки. Мне нужен весь код. Причем делал через if&amp;else....

12
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
02.10.2013, 13:20 #2
%lf для double

Добавлено через 1 минуту
C++
1
2
3
4
scanf("%lf",&n);
//...
printf("s=%lf\t",s);
//scanf("%f",&s);
1
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
02.10.2013, 13:27  [ТС] #3
Спасибо ОГРОМНОЕ, как только внёс изменения - всё заработало!
СПАСИБО!!!
0
Байт
Эксперт C
16535 / 10805 / 1638
Регистрация: 24.12.2010
Сообщений: 20,827
02.10.2013, 13:47 #4
Если надо сделать то, что написано в задании, тогда цикл должен выглядеть так
C++
1
2
3
4
5
6
for(i=1; i<=n; i++) {
y=factorial(i+n);
u=factorial(i);
s += u/y;
}
printf("s=%f\n");
И я бы не стал так неэффективно вычислять все факториалы
C++
1
2
3
4
5
double m;
for(i=1, s=0, m=1; i<=n; i++) {
  m *= i/(n+i);
  s += m;
}
2
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
10.10.2013, 22:04  [ТС] #5
Хотелось бы снова обратиться за помощью.
Вот уже созданная ранее тема с подробным описанием задания
http://www.cyberforum.ru/cpp-beginners/thread967078.html

Собственно код, был модифицирован, добавил 2 функции на проверку данных и отдельно на подсчет суммы.
Сейчас при компиляции выходит ошибка на переменную n.
Думаю что в функции суммы накосячил.
Подскажите пожалуйста в чем дело.
Заранее спасибо.


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
68
69
70
#include "stdafx.h" //подключение директив
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
 
 
double factorial (double n)//функция вычисления факториала
 
{
if (n<=1)
return 1;
else
return n*factorial (n-1);
}
 
int summa ()
{
    double n,s,u,y;
    for (int i=0;i<=n;i++)
    {
        s=0;
        y=factorial(i+n);
        u=factorial(i);
        s= u/y;
    }
    return s;
}
 
int input() //функция ввода данных
{
printf ("Vvedite znachenie n (ot 1 do 999) and press <ENTER>: "); //вывод на экран приглашения на ввод данных
char str[4],c;  //объявление символьных переменных
int pos=0;  //инициализация переменной количества вводимых символов
do //выполняем ввод данных
 {
  c = getch();  //считывание введённого символа без эхо-отображения
  if(c>='0'&&c<='9' && pos<3)  //если переменная соответствует диапазону 
                  //и не превышает разрешённое количество вводимых символов
   {
    str[pos++]=c; //двигаем позицию курсора на шаг вправо, и присваиваем введённое значение
    printf("%c",c); //то выводим его на экран
   }
  else if(c==0x08 && pos>0) //если введён <backspace>
   {
    pos--; //двигаем позицию курсора на шаг влево
    printf("%c %c",c,c);
   }
 } while(c!=0x0D); //ввод данных выполняется, пока не введён <enter>
str[pos]=0;
return atoi(str);  //преобразование символьной строки в число типа int и её возврат в основную функцию
}
 
 
int main( void )
{
 
double s;
double i;
double n;
n=input();
s=summa();
printf("s=%lf\t",summa);
 
scanf("%lf",&summa);
 
 
getch ();
}
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
10.10.2013, 22:13 #6
Ну на вскидку у вас в функции
C++
1
int summa()
n используется без инициализации.
0
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
10.10.2013, 22:16  [ТС] #7
C++
1
double n,s,u,y;
а это разве не инициация?)
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
10.10.2013, 22:19 #8
apowOw, это объявление переменных, инициализация это к примеру
C++
1
double n = 5;
0
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
10.10.2013, 22:22  [ТС] #9
Тогда мне здесь следует дописать ???
C++
1
n=input();
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
10.10.2013, 22:25 #10
apowOw, это зависит от того что вы хотите сделать.
0
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
10.10.2013, 22:27  [ТС] #11
хотелось бы посчитать сумму ряда от i до n(введенного с клавиатуры)
на вводимую n у меня указана функция input
при выводе использую именно её, здесь тоже самое указать?
n=input();
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
10.10.2013, 22:32 #12
apowOw, да, но зачем у вас ввод через такие грабли сделан?

Добавлено через 2 минуты
и пожалуй эти 2 строчки вам в main не нужны
C++
1
2
double n;
n=input();
1
apowOw
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 21
10.10.2013, 23:13  [ТС] #13
потому что преподаватель потребовал написал проверку введенных данных на соответствие диапазону.
поэтому так)
спасибо))))

Добавлено через 38 минут
У меня похоже неправильно написана функция подсчета суммы.
Если указывать функцию типа int, то он в качестве результаты постоянно выводит 0;
Подскажите пожалуйста.
0
10.10.2013, 23:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 23:13
Привет! Вот еще темы с ответами:

Вычисление суммы n ряда - C++
Помогите сделать с этими операторами задачи, знаю только как с for. 1. Составить программу вычисления суммы 15 членов ряда S =...

Вычисление суммы ряда - C++
Составить программу для вычисления суммы ряда

Вычисление суммы ряда - C++
ребята помогите решить. составьте пожалуйста код!) б) \sum_{n = 1}^{12} (10n - 8/ 10*n*n - 3*n + 8)

Вычисление суммы ряда - C++
Помогите, задали задание написать программу. Пользователь вводит значение 2-х переменных: х-угол и n-количество раз. суть программы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru