Вычисление с некоторой точностью - 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)
- Выводится значение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д