Написать программу для вычисления значения интеграла - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Вычислить на ЭВМ значение интеграла методом прямоугольников с автоматическим выбором шага интегрирования на заданном интервале [a;b] с заданной точностью . функция: интервал:[1;2] заданная точность:0,00001

Решение задачи: «Написать программу для вычисления значения интеграла»

textual
Листинг программы
const a = 1;
      b = 2;
      e = 1e-5;
 
function f(x: real): real;
begin
  x := ln(x) / x;
  f := x * x * x;
end;
 
function integ(k: longint): real;
var h, x, sum: real;
    i: integer;
begin
  sum := 0;
  h := (b - a) / k;
  x := a + h / 2;
  for i := 1 to k do
    begin
      sum := sum + f(x);
      x := x + h
    end;
  integ := sum * h
end;
 
var s, s2: real;
    n: longint;
begin
  n := 1;
  s := integ(n);
  repeat
    s2 := s;
    n := n * 2;
    s := integ(n)
  until abs(s2 - s) < e;
  writeln('Приближённое значение = ', s:0:abs(trunc(ln(e) / ln(10))));
  writeln('             Точность = ', e:0:abs(trunc(ln(e) / ln(10))));
  writeln(' Количество разбиений = ', n);
  writeln('      Точное значение = ', (9 - 4 * sqr(ln(2)) * ln(2) - 6 * sqr(ln(2)) - ln(64)) / 32:0:17)
end.

Объяснение кода листинга программы

  1. Переменная a и b задаются начальными значениями 1 и 2 соответственно.
  2. Функция f(x: real) вычисляет значение функции x^3 в точке x.
  3. Функция integ(k: longint) вычисляет значение интеграла от a до b с помощью метода разбиения на отрезки.
  4. Переменные h, x и sum инициализируются значениями (b-a)/k, a+h/2 и 0 соответственно.
  5. Цикл for выполняется k раз, на каждой итерации увеличивая значение x на h/2.
  6. Внутри цикла функция f(x) вызывается для вычисления значения функции x^3 в текущей точке x.
  7. Значение sum увеличивается на результат функции f(x).
  8. После завершения цикла значение sum возвращается как результат функции integ(k).
  9. Переменные s и s2 инициализируются начальными значениями integ(n) и s2=s соответственно.
  10. Цикл repeat выполняется до тех пор, пока разница между s2 и s меньше заданной точности e.
  11. Выводится приближенное значение s и его точность e.
  12. Выводится количество разбиений n.
  13. Вычисляется точное значение s с использованием формулы (9-4*sqrt(log(2))*sqrt(log(2))-6*sqrt(log(2))-log(64))/32.
  14. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5
Похожие ответы