Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 26
1

Вычислить сумму ряда

08.11.2012, 02:55. Показов 709. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
доброго времени...помогите пожалуйсто решить задачу с помощью всех циклов отдельно, но в пределах одной программы. (нельзя использовать ln и exp) запутался в циклах уже...
Миниатюры
Вычислить сумму ряда  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2012, 02:55
Ответы с готовыми решениями:

Вычислить сумму ряда с точностью до члена ряда, меньшего заданной точности
Вычислить сумму членов для следующих рядов с точностью до члена ряда, меньшего Е (заданная...

Вычислить сумму членов ряда с точностью до члена ряда
Пожалуйста помогите выполнить задание. Вычислить сумму членов для следующих рядов с точностью до...

Вычислить сумму членов ряда с точностью до члена ряда
Помогите выполнить задание. Вычислить сумму членов для следующих рядов с точностью до члена ряда,...

Вычислить сумму, найти сумму ряда.
http://ipic.su/img/img3/fs/P1648_18-11-11111.1321685302.jpg *1/i в квадрате* *e=10в минус кубе*

8
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
08.11.2012, 10:14 2
Pascal
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
uses crt;
Var x0, x, xj, x2i, mult, sum : Extended;
    jF                        : LongInt;
    i, j, n                   : integer;
    sign                      : boolean;
Begin
  ClrScr;
  x0:=0.8;
  n:=6;
{ForForForForForForForFor}
  x:=x0;
  sum:=0;
  x2i:=x*x;
  sign:=false; {-1}
  For i:=1 to n do
    Begin
      jF:=1; mult:=1; xj:=x2i;
      For j:=2*i to 3*i do
        Begin
          jF:=jF*j;
          mult:=mult*xj*jF;
          xj:=xj*x;
        end;
      x2i:=x2i*x*x;
      If sign then sum:=sum+mult
      Else         sum:=sum-mult;
      sign:=not sign;
    end;
  WriteLn(sum);
{RepeatRepeatRepeatRepeat}
  x:=x0;
  sum:=0;
  x2i:=x*x;
  sign:=false; {-1}
  i:=0;
  Repeat
    inc(i);
    jF:=1; mult:=1; xj:=x2i;
    j:=2*i-1;
    Repeat
      inc(j);
      jF:=jF*j;
      mult:=mult*xj*jF;
      xj:=xj*x;
    Until j=3*i;
    x2i:=x2i*x*x;
    If sign then sum:=sum+mult
    Else         sum:=sum-mult;
    sign:=not sign;
  Until i=n;
  WriteLn(sum);
  ReadLn;
End.
С while сам напишешь?
1
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 26
08.11.2012, 14:46  [ТС] 3
С while сам напишешь?[/QUOTE]

спасибо большое) да справлюсь)
0
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 26
09.12.2012, 23:22  [ТС] 4
и вроде все неплохо, но не сходится с "ручными" подсчетами... при х=2 и n=1 должно выйти -256, факториал вроде не правильно считает:

For j:=2*i to 3*i do
Begin
jF:=jF*j;
получается так что умножает начиная с 2*i а не 1*2*3 и тд..
0
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
10.12.2012, 11:27 5
Действительно.. Постараюсь исправиться
Pascal
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
82
83
84
85
86
87
88
89
90
uses crt;
Var x, xj, x2i, mult, sum : Extended;
    jF, FStart            : LongInt;
    i, j, n, k            : integer;
    sign                  : boolean;
Begin
  ClrScr;
  n:=4;
  x:=2;
{ForForForForForForForFor}
  WriteLn('x=',x:8:6,'   n=',n:5);
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  For i:=1 to n do
    Begin
      jF:=FStart; xj:=x2i;
      mult:=1;
      For j:=2*i to 3*i do
        Begin
          jF:=jF*j;
          xj:=xj*x;
          mult:=mult*xj*jF;
        end;
      x2i:=x2i*x*x;
      FStart:=FStart*(i+k)*(i+k+1);
      inc(k);
      If sign then sum:=sum+mult
      Else         sum:=sum-mult;
      sign:=not sign;
    end;
  WriteLn('For:    ',sum:30:0);
{RepeatRepeatRepeatRepeat}
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  i:=0;
  Repeat
    inc(i);
    jF:=FStart; xj:=x2i;
    mult:=1;
    j:=2*i-1;
    Repeat
      inc(j);
      jF:=jF*j;
      xj:=xj*x;
      mult:=mult*xj*jF;
    Until j=3*i;
    x2i:=x2i*x*x;
    FStart:=FStart*(i+k)*(i+k+1);
    inc(k);
    If sign then sum:=sum+mult
    Else         sum:=sum-mult;
    sign:=not sign;
  Until i=n;
  WriteLn('Repeat: ',sum:30:0);
{WhileWhileWhileWhile}
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  i:=0;
  While i<n do
    begin
      inc(i);
      jF:=FStart; xj:=x2i;
      mult:=1;
      j:=2*i-1;
      While j<3*i do
        begin
          inc(j);
          jF:=jF*j;
          xj:=xj*x;
          mult:=mult*xj*jF;
        end;
      x2i:=x2i*x*x;
      FStart:=FStart*(i+k)*(i+k+1);
      inc(k);
      If sign then sum:=sum+mult
      Else         sum:=sum-mult;
      sign:=not sign;
    end;
  WriteLn('While:  ',sum:30:0);
  ReadLn;
End.
1
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 26
10.12.2012, 19:11  [ТС] 6
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Действительно.. Постараюсь исправиться
Pascal
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
82
83
84
85
86
87
88
89
90
uses crt;
Var x, xj, x2i, mult, sum : Extended;
    jF, FStart            : LongInt;
    i, j, n, k            : integer;
    sign                  : boolean;
Begin
  ClrScr;
  n:=4;
  x:=2;
{ForForForForForForForFor}
  WriteLn('x=',x:8:6,'   n=',n:5);
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  For i:=1 to n do
    Begin
      jF:=FStart; xj:=x2i;
      mult:=1;
      For j:=2*i to 3*i do
        Begin
          jF:=jF*j;
          xj:=xj*x;
          mult:=mult*xj*jF;
        end;
      x2i:=x2i*x*x;
      FStart:=FStart*(i+k)*(i+k+1);
      inc(k);
      If sign then sum:=sum+mult
      Else         sum:=sum-mult;
      sign:=not sign;
    end;
  WriteLn('For:    ',sum:30:0);
{RepeatRepeatRepeatRepeat}
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  i:=0;
  Repeat
    inc(i);
    jF:=FStart; xj:=x2i;
    mult:=1;
    j:=2*i-1;
    Repeat
      inc(j);
      jF:=jF*j;
      xj:=xj*x;
      mult:=mult*xj*jF;
    Until j=3*i;
    x2i:=x2i*x*x;
    FStart:=FStart*(i+k)*(i+k+1);
    inc(k);
    If sign then sum:=sum+mult
    Else         sum:=sum-mult;
    sign:=not sign;
  Until i=n;
  WriteLn('Repeat: ',sum:30:0);
{WhileWhileWhileWhile}
  sum:=0;
  x2i:=x;
  FStart:=1;
  sign:=false; {-1}
  k:=1;
  i:=0;
  While i<n do
    begin
      inc(i);
      jF:=FStart; xj:=x2i;
      mult:=1;
      j:=2*i-1;
      While j<3*i do
        begin
          inc(j);
          jF:=jF*j;
          xj:=xj*x;
          mult:=mult*xj*jF;
        end;
      x2i:=x2i*x*x;
      FStart:=FStart*(i+k)*(i+k+1);
      inc(k);
      If sign then sum:=sum+mult
      Else         sum:=sum-mult;
      sign:=not sign;
    end;
  WriteLn('While:  ',sum:30:0);
  ReadLn;
End.
все та же проблема, не сходится с "ручными"
0
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
10.12.2012, 20:10 7
Сейчас в алгоритме ошибок нет, но уже при N=4 последнее суммируемое произведение (положим, x=1) есть
8! * 9! * 10! * 11! * 12! = 40320 * 362880 * 3628800 * 479001600 (это результаты из самой программы)
Чтобы результат оказался правильным, нужна длинная арифметика, т.к. стандартные типы не могут вместить результат.
0
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 26
10.12.2012, 22:16  [ТС] 8
x=2.000000 n= 1
For: -384
Repeat: -384
While: -384

так должно же выйти -256, или я что-то не правильно понял?
0
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
11.12.2012, 09:33 9
Для n=1, x=2
https://www.cyberforum.ru/cgi-bin/latex.cgi?\prod_{j=2i}^{3i}{x}^{j}j!=\prod_{j=2}^{3}{x}^{j}j!=({x}^{2}2)({x}^{3}6)=({2}^{2}2)({2}^{3}6)=384
0
11.12.2012, 09:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2012, 09:33
Помогаю со студенческими работами здесь

Вычислить сумму ряда
Люди! Необходимо решить задачку на Турбо Паскале. Очень срочно. Задачу нужно решить через...

Вычислить сумму ряда
Задача 2. Вычислить сумму ряда с помощью вложенных циклов. Создать две различные программы с...

Вычислить сумму ряда
помогите пожалуйста) Alpha = 0,01

Вычислить сумму ряда.
Вычислить сумму ряда ∑_(n=1)^∞▒x^n/n с точность&quot; e&quot; . Сделать графическую интерпретацию результата.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru