Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
#1

Рекуррентные формулы и различные циклы: вычислить приближенное значение бесконечной суммы - C++

14.11.2011, 21:34. Просмотров 2559. Ответов 9
Метки нет (Все метки)

Вычислить приближенное значение бесконечной суммы (при n стремящимся к бесконечности) с заданным общим членом двумя способами, используя разные типы циклов:
1)с заданной точностью;
2)для заданного числа членов ряда.
3) вычислить n-ый член ряда с помощью рекурсивной функции

номер выбора задания реализовать при помощи оператора выбора
http://www.cyberforum.ru/cpp-beginners/thread1419851.html
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 21:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рекуррентные формулы и различные циклы: вычислить приближенное значение бесконечной суммы (C++):

Вычислить приближенное значение бесконечной суммы
Помогите пожалуйста с таким вот заданием) Вычислить приближенное значение...

Вычислить приближенное значение бесконечной суммы
Вычислить приближенное значение бесконечной суммы (при n стремящимся к...

Вычислить приближенное значение бесконечной суммы
Задача 24 Вычислить приближенное значение бесконечной суммы Нужное...

Вычислить с заданной точностью приближенное значение бесконечной суммы
4)Дано действительные числа x, ε (ε>0). Вычислить с заданной точностью ε...

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

9
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.11.2011, 12:15 #2
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
#include<stdio.h>
#include<math.h>
#include<conio.h>
 
//1)с заданной точностью;
double ch_eps(double x, double eps)
{
   double rez, p;
   int i = 0;
   rez = p = 1.0;
   while (p >= eps)
   {
      i++;
      p *= x*x/(2*i*(2*i-1));
      rez += p;
   }
   return rez;
}
 
//2)для заданного числа членов ряда.
double ch_n(double x, int n)
{
   double rez, p;
   int i;
   rez = p = 1.0;
   for (i = 1; i <= n; i++)
   {
      p *= x*x/(2*i*(2*i-1));
      rez += p;
   }
   return rez;
}
 
//3) вычислить n-ый член ряда с помощью рекурсивной функции
double p_rec(double x, int n)
{
    return n == 0 ? 1.0 : p_rec(x, n-1)*x*x/(2*n*(2*n-1));
}
 
int main()
{
   printf("%f\n", ch_eps(2.0, 1e-10));
   printf("%f\n", ch_n(2.0, 100));
   getch();
   return 0;
}
1
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
17.12.2011, 15:47  [ТС] #3
нужен код на чистом си
или хотя бы просто алгоритм дейсвий
с объяснением
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 15:50 #4
лизи, код Thinker на чистом Си
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
#include <stdio.h>
#include <math.h>
 
 //1)с заданной точностью;
double ch_eps(double x, double eps)
{
   double rez, p;
   int i = 0;
   rez = p = 1.0;
   while (p >= eps)
   {
      i++;
      p *= x * x / (2 * i * (2 * i - 1));
      rez += p;
   }
   return rez;
}
 
//2)для заданного числа членов ряда.
double ch_n(double x, int n)
{
   double rez, p;
   int i;
   rez = p = 1.0;
   for (i = 1; i <= n; i++)
   {
      p *= x * x / (2 * i * (2 * i - 1));
      rez += p;
   }
   return rez;
}
 
//3) вычислить n-ый член ряда с помощью рекурсивной функции
double p_rec(double x, int n)
{
    return n == 0 ? 1.0 : p_rec(x, n-1)*x*x/(2*n*(2*n-1));
}
 
int main(void)
{
   printf("%f\n", ch_eps(2.0, 1e-10));
   printf("%f\n", ch_n(2.0, 100));
   return 0;
}
1
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
17.12.2011, 16:04  [ТС] #5
я просто некоторые обозначения вижу тут впервый раз=(
а значит на лекциях их не было(
и их использовать нельзя=(
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 16:11 #6
Цитата Сообщение от лизи Посмотреть сообщение
я просто некоторые обозначения вижу тут впервый раз=(
например
Цитата Сообщение от лизи Посмотреть сообщение
а значит на лекциях их не было(
и их использовать нельзя=(
не факт, сейчас везде Болонский процесс который подразумевает самообразование
1
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
17.12.2011, 16:21  [ТС] #7
вот пример написания программы но для других данных
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
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <math.h>
 
int fact(int n)
{
    if (n==0) return 1;
 
    return n*fact(n-1);
}
 
float exact()
{
 float ex,S=0,x,k,n,z=1;
printf("Please input necessary exactness \n>>");
scanf("%f",&ex);
printf("please input x>>");
scanf("%f",&x);
for(n=1;z>0;n++)
 
{z=(2*(pow(x,2*n-1)))/fact(2*n-1);
S+=z;
printf("n=%1.0f     s=%f      x=%f\n", n, S, z);
}
 
printf("S=%f",S);
return S;
 
}
 
float memb()
{  float S=0,i,x;
    int n;
    printf("Please input n\n>>");
    scanf("%d",&n);
    printf("Please input x>>");
    scanf("%f",&x);
    for(i=1;i<n+1;i++)
 
     S+=(2*(pow(x,2*i-1)))/fact(2*i-1);
 
    printf("S=%f",S);
 
 
 
return S;
 
}
 
int main()
{
  int i,n,k,exit1;
  float x;
  long S;
 
 
 
 
  do
 
  {
    printf("\nPress 1 if you want to calculate with given exactness\n");
  printf("and press 2 if you want to calculate with given numbers members \n>>>");
 
    scanf("%d",&k);
 
 
 
  switch (k)
  {
 
 case  1: exact(); break;
 case  2: memb();break;
 case  3: printf("Please input x>>"); scanf("%f",&x);
 printf("Please input n>>");scanf("%d",&n); printf("%f,",fact(n));
 
  }
   }
  while (k>0);
 
return 0;
}
Добавлено через 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
#include<stdio.h>
#include<math.h>
 
float recfunc(float x, int n)
{if(n==0) return 0;
 else {return(recfunc(x,n-1)+pow(x,n));};
}
 
int main()
{int k, a, i, n; float x, Pn, s=0, acc;
 printf("Type the number of exercise (1,2,3): "); scanf("%d",&a);
 printf("Type the value of x: "); scanf("%f",&x);
switch (a)
  {case 1: {printf("Type the accuracy : ");
            scanf("%f",&acc);
            i=0;
            while(pow(x,i)>=acc){s+=pow(x,i); i++;}
            printf("%f\n",s);}; break;
   case 2: {printf("Type the needed amount of the elements: ");
            scanf("%d",&n);
            for(i=0;i<=n;i++){s+=pow(x,i);};
            printf("Sp=%f",s);}; break;
   case 3: {printf("Type the number of the needed element: ");
            scanf("%d",&k);
            if(k==0)printf("Pk=%f\n",(float)1);
            else printf("Pk=%f\n",(recfunc(x,k+1)-recfunc(x,k-1)));}; break;}
return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Jupiter Посмотреть сообщение
не факт, сейчас везде Болонский процесс который подразумевает самообраз
тогда не могли бы вы мне объяснить алгоритм того что написано в коде?
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.12.2011, 17:18 #8
Цитата Сообщение от лизи Посмотреть сообщение
вот пример написания программы но для других данных
ваш код плохо отформатирован, портить глаза не хочу
вы сказали что в коде Thinker есть неизвестные для вас функции/операторы - приведите пример того что вы не поняли

Цитата Сообщение от лизи Посмотреть сообщение
тогда не могли бы вы мне объяснить алгоритм того что написано в коде?
алгоритм очень прост:
1-я функция
1) считаем член ряда
2) прибавляем его к сумме
3) проверяем, если член ряда меньше заданной точности возвращаем сумму иначе переходим на пункт 1) увеличив счетчик на единицу

2-я функция
тупо считаем и суммируем формулу N раз
1
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
20.12.2011, 22:26  [ТС] #9
только программа чото не работает ваще=((
но хоть примерно разобралась в какую степь думать
0
лизи
0 / 0 / 1
Регистрация: 14.11.2011
Сообщений: 104
23.03.2012, 20:14  [ТС] #10
больше не нужно
разобралась
0
23.03.2012, 20:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2012, 20:14
Привет! Вот еще темы с решениями:

Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля
Больная тема для меня, никак не могу понять помогите пожалуйста

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

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

Вычислить приближенное значение бесконечной суммы, не используя стандартные функции, за исключением модуля / C++ для начинающих
Вычислить приближенное значение бесконечной суммы, не используя стандартные...


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

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

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