Правильно подсчитывается сумма ряда и число итераций при точностях ? - Turbo Pascal
Формулировка задачи:
Правильно ли будет считаться сумма ряда и число итераций , при точностях 0.01, 0,001 и точного значения суммы ряда 1/18 ?
Сам ряд
Листинг программы
- uses
- SysUtils;
- const e1=0.01; e2=0.001;
- var delta, acry,sum:real;
- k:integer;
- begin
- k:=1;
- sum:=0;
- acry:=1/18;
- writeln('for e1=0.01 and ' ,acry:4:3);
- repeat
- sum:=sum+1/(k*(k+1)*(k+2)*(k+3));
- delta:=acry-sum;
- k:=k+1;
- until(delta <= e1);
- writeln('sum: ', sum:4:3);
- writeln('number of iteration ' ,k);
- writeln('for e1=0.001 and ' ,acry:5:4);
- repeat
- sum:=sum+1/(k*(k+1)*(k+2)*(k+3));
- delta:=acry-sum;
- k:=k+1;
- until(delta <= e1);
- writeln('sum: ', sum:5:4);
- writeln('number of iteration ' ,k);
- readLn;
- end.
Решение задачи: «Правильно подсчитывается сумма ряда и число итераций при точностях ?»
textual
Листинг программы
- const e1=0.01; e2=0.001; e3=0.0000001;
- var delta, acry,sum:real;
- k:integer;
- begin
- writeln(' ');
- writeln('for e1=0.01');
- k:=1;
- delta:=1/24;
- sum:=delta;
- repeat
- k:=k+1;
- delta:=1/(k*(k+1)*(k+2)*(k+3));
- sum:=sum+delta;
- until(delta<=e1);
- writeln('sum=',sum:0:4);
- writeln('number of iteration=',k);
- writeln;
- writeln('for e2=0.001');
- k:=1;
- delta:=1/24;
- sum:=delta;
- repeat
- k:=k+1;
- delta:=1/(k*(k+1)*(k+2)*(k+3));
- sum:=sum+delta;
- until(delta<=e2);
- writeln('sum=',sum:0:4);
- writeln('number of iteration=',k);
- writeln;
- writeln('for e2=0.0000001');
- k:=1;
- delta:=1/24;
- sum:=delta;
- repeat
- k:=k+1;
- delta:=1/(k*(k+1)*(k+2)*(k+3));
- sum:=sum+delta;
- until(delta<=e3);
- writeln('sum=',sum:0:4);
- writeln('number of iteration=',k);
- writeln('1/18=',1/18:0:4);
- readln
- end.
Объяснение кода листинга программы
В данном коде на Turbo Pascal выполняется подсчет суммы ряда чисел с точностью до трех знаков после запятой. Код состоит из трех блоков, каждый из которых предназначен для работы с разными точностями.
- В первой части кода задаются начальные значения переменных: e1, e2, e3, k, delta, acry, sum. Здесь же происходит инициализация переменной k.
- Во второй части кода происходит повторное вычисление переменной delta для каждого значения k, начиная с 1 и до тех пор, пока значение delta не станет меньше или равно значению e1. При этом значение sum увеличивается на каждое новое значение delta.
- В третьей части кода аналогичным образом происходит вычисление и сравнение для точности e2.
- В последней части кода вычисляется значение 1/18 и выводится на экран.
В данном коде используются следующие переменные:
- e1, e2, e3: константы, определяющие точность вычислений;
- k: переменная, инициализируется значением 1 и увеличивается на единицу на каждой итерации;
- delta: переменная, в которой вычисляется новое значение для каждого значения k;
- acry: переменная, в которой накапливается сумма всех значений delta;
- sum: переменная, в которой накапливается окончательная сумма ряда чисел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д