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