Вычисление с некоторой точностью - Pascal
Формулировка задачи:
Ребята, помогите, пожалуйста написать код программы (консоль). Задача:
Даны действительные числа X, E (E не = 0 и Е>0). Вычислить с точностью E:
Никогда не сталкивался с подобными задачами, и если я правильно понял, то решить её нужно через repeat-until?
Решение задачи: «Вычисление с некоторой точностью»
textual
Листинг программы
var eps, x, s, p : real; k : integer; begin write('eps = '); readln(eps); write('x = '); readln(x); s := 0; k := 1; p := sqr(x)/4; while abs(p*(-1)/sqr(k+2)*sqr(x/2)) > eps do begin p := p * (-1)/sqr(k+2)*sqr(x/2); inc(k); s := s + p; end; writeln('s = ',s:0:5,' ',k); readln; end.
Объяснение кода листинга программы
- Объявление переменных:
eps
(тип real) - переменная для хранения точности вычисленийx
(тип real) - переменная для хранения значения аргументаs
(тип real) - переменная для хранения суммыp
(тип real) - переменная для хранения промежуточного результатаk
(тип integer) - переменная для хранения порядка вычислений в цикле
- Запрос значений переменных:
- Запрашивается ввод значения для
eps
- Запрашивается ввод значения для
x
- Запрашивается ввод значения для
- Инициализация переменных:
s
устанавливается в 0 (s := 0)k
устанавливается в 1 (k := 1)p
вычисляется как квадратx
, деленный на 4 (p := sqr(x)/4)
- Цикл вычислений:
- В цикле, пока абсолютное значение ((p (-1) / sqr(k + 2) sqr(x / 2)) > eps)...
- p умножается на -1, делится на квадрат (k + 2) и умножается на квадрат (x / 2)
- Значение k увеличивается на 1 (inc(k))
- Значение s увеличивается на p
- В цикле, пока абсолютное значение ((p (-1) / sqr(k + 2) sqr(x / 2)) > eps)...
- Вывод результата:
- Выводится значение
s
с точностью до 5 знаков после запятой и значениеk
- Ожидается ввод пользователем для завершения программы (readln)
- Выводится значение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д