Вычислить сумму ряда - Turbo Pascal (29111)
Формулировка задачи:
Как это возможно сделать на паскале через цикл repeat until?
Решение задачи: «Вычислить сумму ряда»
textual
Листинг программы
uses crt;
var x,e,t,s:real;
n:integer;
begin
clrscr;
repeat
write('Введите |x|<1 x=');
readln(x);
until abs(x)<1;
repeat
write('0<e<1 e=');
readln(e);
until (e>0)and(e<1);
n:=1;
t:=x;
s:=t;
repeat
n:=n+1;
t:=t*x*x;
s:=s+t/(2*n-1);
until abs(t)/(2*n-1)<e;
s:=2*s;
writeln('Сумма=',s:0:6);
write('Аналитически Ln((1+x)/(1-x))=',ln((1+x)/(1-x)):0:6);
readln
end.
Объяснение кода листинга программы
Этот код написан на языке Turbo Pascal и выполняет следующие действия:
- Ввод значений переменных x и e с помощью функции readln().
- Цикл while, который продолжается до тех пор, пока значение переменной x не станет меньше 1 или значение переменной e не станет больше 0 и меньше 1.
- Переменные n, t и s инициализируются единицами.
- Переменная t вычисляется как произведение x на себя и на x.
- Переменная s вычисляется как сумма произведений t и (t/(2*n-1)).
- Цикл repeat, который продолжается до тех пор, пока значение t не станет меньше e или (t/(2*n-1)) не станет больше e.
- Значение переменной s удваивается.
- Выводится значение переменной s с точностью до 6 знаков после запятой.
- Выводится значение аналитической функции ln((1+x)/(1-x)) с точностью до 6 знаков после запятой.
- Программа завершается, ожидая ввода пользователя.