Посчитать сумму всех элементов, до тех пор, пока последний член суммы будет равен заданному - Free Pascal
Формулировка задачи:
Добрый вечер, прошу знатоков проверить код. Есть последовательность: x=1+(1/1)*(/1*4)+(1*3/1*2)*(1/4^2)+(1*3*5/1*2*3)*(1/4^3)+...; Задача, в том чтобы просто посчитать сумму всех элементов, до тех пор, пока последний член суммы будет <=10e-12;
Как устроен алгоритм, в числителе происходит умножение на нечетное число, в начале 1,потом 3, 5 и т.д.
В знаменатели происходит умножение предыдущего результата на величину большую предыдущей на 1, было 1,потом умножаем на 2, потом на 3, на 4 и т.д. и на 4 в определенной степени, значит предыдущей результат еще умножаем на 4 каждый раз.
Правильно ли алгоритм реализован?
Вот сам код:
Листинг программы
- program workwrec;
- uses
- crt;
- var
- tmp,numerator,denominator,sum:double;
- oddnum,count:cardinal;
- begin
- clrscr;
- sum:=1;//т.к. к первому члену прибавляем 1
- tmp:=1;
- numerator:=1;//числитель
- denominator:=1;//знаменатель
- count:=1;
- oddnum:=1;
- while tmp>=10e-12 do
- begin
- numerator:=numerator*oddnum;
- denominator:=denominator*count*4;
- tmp:=numerator/denominator;
- sum:=tmp+sum;
- oddnum:=oddnum+2;
- inc(count);
- end;
- end.
Решение задачи: «Посчитать сумму всех элементов, до тех пор, пока последний член суммы будет равен заданному»
textual
Листинг программы
- writeln('Сумма=',sum:0:12);
- weite('sqrt(2)=',sqrt(2):0;12);
Объяснение кода листинга программы
- В начале программы на экран выводится строка
Сумма=
с помощью функции writeln - Затем вычисляется сумма элементов, начиная с 0 и заканчивая 12, с помощью функции sum
- Далее на экран выводится строка
sqrt(2)=
, а затем вычисляется квадратный корень из числа 2 с помощью функции sqrt - Результат вычисления квадратного корня числа 2 округляется до 12 знаков после запятой с помощью функции round
- Затем на экран выводится результат вычисления квадратного корня числа 2 с помощью функции weite
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д