Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 60

Найти сумму ряда

23.03.2011, 11:22. Показов 2262. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи с написанием программы на Си
s=(2/1!)+(4+6/2!)+(5+8+11/3!)+(6+10+14+18/4!)+...........n


Благодарю всех откликнувшихся на просьбу!!!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2011, 11:22
Ответы с готовыми решениями:

Найти сумму ряда с заданной точностью, если дан общий член ряда
Найти сумму ряда с точностью Е=-4 (0.0001) общий член которого n=n*-n2 (n kvadrat)... Надо написать программу, т.е текст..на языке Си...

Найти сумму ряда с точностью до члена ряда
Помогите пожалуйста с задачей , вот условие Найти сумму ряда с точностью до члена ряда, меньшего ε(0.0001) для заданного значения...

Найти сумму ряда с точностью до члена ряда
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для...

10
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.03.2011, 12:46
Вот если б понять принцип построения членов ряда...
Можешь написать явную формулу зависимости n-члена от n ?
Или рекурсивную формулу для n-го члена?
Или словами внятно описать?
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
23.03.2011, 13:07
Цитата Сообщение от СанСаныч1 Посмотреть сообщение
4+6/2!
а здесь точно только 6/2! или всю сумму делить, то есть (4+6)/2! ?
0
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 60
23.03.2011, 18:11  [ТС]
сори... не так написал...
конечно надо чтоб было так
S= 2/1!+(4+6)/2!+(5+8+11)/3!+(6+10+14+18)/4!+...../n!
я сам вот последовательность не сильно разобрал...
как я понял,тут первое число числителя=знаменатель +2,следущие число числителя =предыдущиму+знаменатель....как то вроде так...но на Языке что то реализовать не получается...
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.03.2011, 20:22
S= 2/1!+(4+6)/2!+(5+8+11)/3!+(6+10+14+18)/4!+...../n!
Мне одному кажется, что здесь логика нарушенна? Должно быть:
S= 2/1!+(3+5)/2!+(4+7+10)/3!+(5+9+13+17)/4!+...../n!

Добавлено через 21 минуту
Хотя тут смотря как посмотреть, с другой стороны все правильно. Сразу не дошло)
0
 Аватар для vitaska
101 / 101 / 15
Регистрация: 04.02.2010
Сообщений: 162
23.03.2011, 21:40
Цитата Сообщение от СанСаныч1 Посмотреть сообщение
Прошу помощи с написанием программы на Си
s=(2/1!)+(4+6/2!)+(5+8+11/3!)+(6+10+14+18/4!)+...........n
если бы по условию ряд начинался с (3/1!)+......, то ряд можо было бы представить в таком виде:
Миниатюры
Найти сумму ряда  
0
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 60
24.03.2011, 02:11  [ТС]
не не, ряд написан правильно.... ну по крайней мере препод его таким задал.
я думаю что надо S0=присвоить 2/1!, а дальше уже цикл по вычислению суммы всего ряда
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
24.03.2011, 10:37
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
 
int main() {
        int i = 0, j = 0;       // счетчики
        int n = 10;             // предел
        int fact = 1;           // факториал
        int d = 0, k = 0;       // d: числитель n-члена ряда, k: вспомогательная переменная
        double s = 2;           // итоговое значение ряда (равен 2: значению первого члена ряда)
 
        // вычисления начинаются со второго члена ряда
        for (i = 2; i <= n; ++i) {
                // расчет значения факториала для n-члена ряда 
                fact += fact * (i - 1);
 
                // расчет числителя n-члена ряда
                d = k = 2 + i;
                for (j = 1; j < i; ++j)
                        d += (k += i);
                
                // сумма ряда
                s += (double) d / fact;
        }
 
        printf ("n = %d\ns = %e\n", n, s);
        return 0;
}
Результат вроде верный:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
s = (2/1!) + (4+6/2!) + (5+8+11/3!) + (6+10+14+18/4!) + ... + n
 
-------------------------------------------------------------
2 / 1 +
(10 / 2) +
(24 / 6) +
(48 / 24) +
(85 / 120) +
(138 / 720) +
(210 / 5040) +
(304 / 40320) +
(423 / 362880) +
(570 / 3628800) +
 
-------------------------------------------------------------
n = 10
s = 1.395053e+001
Видно что при n > 5 ряд фактически перестает расти.
1
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 60
24.03.2011, 10:55  [ТС]
fasked прошу объяснить,если конечно не трудно...

Цитата Сообщение от fasked Посмотреть сообщение
d = k = 2 + i; как это по шагам получается(т.е. в конце d=2+i)?т.е. k & d будут одинаковы?
for (j = 1; j < i; ++j)
d += (k += i);и вот это тоже не совсем запись понятно....
// сумма ряда
s += (double) d / fact;
(double)d - в чем здесь заключается роль double


СПАСИБО!!!
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
24.03.2011, 11:24
Цитата Сообщение от СанСаныч1 Посмотреть сообщение
(double)d - в чем здесь заключается роль double
Если делить целое число на целое число (то есть int на int), то результатом будет тоже целое число, следовательно дробная часть отбросится. Чтобы этого избежать одно из чисел приводится к типу double, фактическое получается что double делится на int, в результате дробная часть сохраняется.
В двух словах, если этого не сделать, то результат будет всегда равен 13-ти ровно (при n > 4, когда n-член ряда стремится к 0, то есть меньше 1).
1
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 60
24.03.2011, 12:28  [ТС]
огромное спасибо!!!

Добавлено через 35 минут
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
 
{ 
    int j,r=0;
    int b=1;
    double s=2.0;
    int n,u=0;
    int i=0;
 printf("\n Vvedite n = ");
 scanf("%d",&n);
   for (i=2; i<=n; ++i) 
     {
      b*=i; 
      r=u=2+i; 
 
    for (j=1; j<i; ++j)
      r+=(u+=i);
      s+=(double)r/b;
     }
    printf ("\n r=%d",r);
    printf ("\n s=%0.3f",s);
    return (0);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2011, 12:28
Помогаю со студенческими работами здесь

Найти сумму ряда
День добрый, очень нужна помощь в решении задач по Абрамову, моя девушка мозги проканифолила хз сколько времени, завтра уже ей сдавать, за...

Найти сумму ряда
плз

Найти сумму ряда
программа некорректно выдает результат #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include...

Найти сумму ряда
B=0.81 C=1.8 Редактор формул внизу страницы. Задача 1 z=∏_(n=1)^13▒*(cos⁡〖n^2 b)〗 Задача 2 ...

Найти сумму ряда
нужно найти сумму ряда . пробовал с pow , но выдает ошибку Вот код , Но он без функции возведения в степень. не могу придумать как её...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru