powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ вычислить сумму ряда
15 сообщений из 15, страница 1 из 1
ПОМОГИТЕ вычислить сумму ряда
    #36262862
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста,а то я вообще ничего не понимаю
Вычислить сумму ряда. Вычисление вести до тех пор, пока абсолютная величина разницы между 2мя соседними членами ряда |Un+1-Un|не превышали некоторую величину Е. (10 в -3ст > E > 10 в -4 ст.)Значение переменных выбрать самостоятельно..

Вот уже кое-что есть,проверьте пожалуйста:(
uses crt;
var u,ui,s,x,e:real;
i:integer;
begin
clrscr;
writeln('Введите значение x ');
readln(x);
repeat
write('Введите точность [0.0001;0.0001] e=');
readln(e);
until (e>0.0001)and(e<0.001);{типа 0.0002}
{начальные значения}
s:=x;{сумма}
ui:=x;{член ряда}
i:=0;{номер его}
while abs(u-ui)>=e do {Условие продолжения цикла}
begin
i:=i+1;{следующий}
u:=ui;{запомним предыдущую сумму}
{рекуррентное соотношение U(n)=U(n-1)*x^2*(2*n-1)/(2*n*(2*n+1))
или домножаем на x^2, домножаем на первое нечетное число из предыдущего знаменателя и делим на 2 следующих числа}
ui:=ui*x*x*(2*i-1)/(2*i*(2*i+1));{вычисляем очередной член ряда}
s:=s+u;{новая сумма}
end;
writeln('При х= ',x:0:2);
writeln('Погрешность=',abs(u-ui):0:5);
writeln('Сумма=',s:0:5);
readln
end.
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36263017
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s:=x;{сумма}
Обычно сумме дают нулевое значение вначале. У вас оно получится x плюс еще раз x при первом присвоении в цикле. Можно оставить x, но организовать цикл.. см. ниже.

while abs(u-ui)>=e do {Условие продолжения цикла}
Здесь u еще не получило значение. То есть, оно в этот момент будет вообще говоря случайным. Программа в принципе будет работать, но иногда будет выходить из цикла без вычислений.

лучше организовать цикл так, чтобы i, Ui, Si в конце тела цикла были для одного и того же i.
а у вас вычисляется i, Ui, а сумма Si получается для предыдущего i.
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36263500
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот работающий вариант на Delphi (Паскаля нету):
Код: plaintext
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.
program summa_rjada;
{$APPTYPE CONSOLE}
uses
  Sysutils;
var
   x,e,s, ui,u :  real;
   i : integer;
begin
   writeln('Введите значение x ');
   readln(x);
   repeat
      write('Введите точность [0.0001;0.001] e=');
      readln(e);
      until (e>= 0 . 0001 )and(e<= 0 . 001 );{типа  0 . 0002 }
   {начальные значения}
   s:=x;{сумма}
   ui:=x;{член ряда}
   i:= 1 ;{номер его}
   repeat
      u:=ui;{запомним предыдущую сумму}
      {рекуррентное соотношение U(n)=U(n- 1 )*x^ 2 *( 2 *n- 1 )/( 2 *n*( 2 *n+ 1 ))
      или домножаем на x^ 2 , домножаем на первое нечетное число из предыдущего знаменателя и делим на  2  следующих числа}
      ui:=ui*x*x*( 2 *i- 1 )/( 2 *i*( 2 *i+ 1 ));{вычисляем очередной член ряда}
      i:=i+ 1 ;{следующий}
      s:=s+ui;{новая сумма}
      until (u - ui ) < e;
   writeln('При х= ',x: 0 : 2 );
   writeln('Погрешность=',abs(u-ui): 0 : 5 );
   writeln('Сумма=',s: 0 : 5 );
   writeln('i=',i);
   readln
   end.

...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36264660
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vowk,а если я все это сделаю в паскале,без этих данных
{$APPTYPE CONSOLE}
uses
Sysutils;
программа будет работать нормально?Или же нужно в начале вписать какой-то ключ?
И что значит
writeln('i=',i);
???
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36264888
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hohotushkaVowk,а если я все это сделаю в паскале,без этих данных
{$APPTYPE CONSOLE}
uses
Sysutils;
программа будет работать нормально?Или же нужно в начале вписать какой-то ключ?

Да, будет работать.

И что значит
writeln('i=',i);
???

writeln('i=',i) это для того чтобы знать, сколько членов ряда вошло в сумму, можно убрать.
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36264903
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему оно постоянно выдает 2?:(
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36264913
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В смысле writeln('i=',i); постоянно выдает 2 ?:)
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36265197
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие вводятся значения "x" и "е" ?
Сейчас попробую у себя, может действительно ошибка...
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36265228
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например:
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36265332
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все,поняла:)Большое спасибо:))
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36277634
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наш препод сказал что вариант задачи ниже -верен,но меня мучают сомнения:(Гляньте плиз:))
program dd;
uses crt;
var
s,u1,u2,x,e:real;
i:byte;
begin
clrscr;
write ('x='); readln (x);
write ('e='); readln (e);
s:=1;
u2:=1;
i:=1;
repeat
u1:=u2;
u2:=u2*x*x*(2*i-1)/(2*i*(2*i+1));
s:=s+u2;
i:=i+1;
until abs(u2-u1)<=e;
writeln (s:10:3);
readln;
end.
Это правильно?И еще,я правильно записала рекуррентную формулу????
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36278036
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что он сказал про вариант, который выше?
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36278064
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В варианте который выше я пропустил abs - это существенная ошибка, но не фатальная.
А вот ряд у него начинается с 1, а не с X, как в условии. Поэтому степень следующего члена ряда будет 2, и вообще ряд будет содержать только четные степени X. Так что предложенный им вариант в корне неправильный.
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36278282
Vowk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если остановиться на варианте, предложенным преподавателем, то он должен выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
program dd;
uses crt;
var
s,u1,u2,x,e:real;
i:byte;
begin
clrscr;
write ('x='); readln (x);
write ('e='); readln (e);
s:=x;
u2:= 1 ;
i:= 1 ;
repeat
u1:=u2;
u2:=u2*x*x*( 2 *i- 1 )/( 2 *i*( 2 *i+ 1 ));
s:=s+u2;
i:=i+ 1 ;
until abs(u2-u1)<=e;
writeln (s: 10 : 3 );
readln;
end.
(вместо s:=1 правильно s:=x)
...
Рейтинг: 0 / 0
ПОМОГИТЕ вычислить сумму ряда
    #36278606
hohotushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу первой задачи,он просто сказал не правильно,и объяснять что именно не хочет....

Огромнейшее спасибо за помощь:)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ вычислить сумму ряда
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]