Вычислить значение выражения - Free Pascal (190)
Формулировка задачи:
Листинг программы
- program test;
- var u, s :real;
- n :integer;
- const e=1e-3; x=0.58;
- begin
- s:=0;
- n:=1;
- u:=-exp(ln(x)*((2*n)+1))/((4*sqr(n))-1);
- while abs(u)>e do
- begin
- u:=-u;
- s:=s+u;
- n:=n+1;
- u:=-u*(exp(ln(x)*((2*n)+1))/((4*sqr(n))-1));
- end;
- writeln('s=', s:7:2);
- end.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
- program test;
- var u1,u2, s,t :real;
- n :integer;
- const e=1e-3; x=0.58;
- begin
- n:=1;
- t:=1;
- u1:=exp(ln(x)*((2*n)+1))/((4*sqr(n))-1);
- u2:=0;
- s:=u1;
- while abs(u1-u2)>e do begin
- u2:=u1;
- n:=n+1;
- t:=-t;
- u1:=t*exp(ln(x)*(2*n+1))/(4*n*n-1);
- s:=s+u1;
- end;
- writeln('s=', s:7:3);
- end.
Объяснение кода листинга программы
В данном коде происходит вычисление значения выражения с помощью метода Ньютона для нахождения корня квадратного уравнения.
- Объявлены переменные: u1, u2, s, t — вещественные числа; n — целое число; const e=1e-3; x=0.58; — константы.
- Задаются начальные значения переменных: n := 1; t := 1;
- Вычисляется первое приближение корня u1 с помощью формулы: u1 := exp(ln(x) ((2 n) + 1)) / ((4 * sqr(n)) — 1).
- Задается начальное значение корня u2 равное нулю.
- Вычисляется значение переменной s равное u1.
- Запускается цикл while, который выполняется до тех пор, пока разница между текущим значением корня u1 и предыдущим значением u2 не станет меньше заданной точности e.
- Внутри цикла изменяются значения переменных: n увеличивается на единицу; t меняется на противоположное; u2 принимается равным текущему значению u1; s принимает значение суммы u1 и u2.
- Вычисляется новое значение корня u1 с помощью формулы: u1 := -t exp(ln(x) (2 n) + 1) / (4 n * n — 1).
- Цикл while выполняется до тех пор, пока не будет выполнено условие остановки.
- Выводится значение переменной s с точностью до 7 знаков после запятой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д