Подпрограммы с параметрами процедурного типа - Turbo Pascal

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

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

С погрешностью 0.001 вычислить по методу прямоугольников

Решение задачи: «Подпрограммы с параметрами процедурного типа»

textual
Листинг программы
type
  func = function(x: real): real;
 
function sinx(x: real): real;
begin
  sinx := sin(x)
end;
 
function cosx(x: real): real;
begin
  cosx := cos(x)
end;
 
function integral(a, b: real; f: func): real;
const
  eps = 0.0005;
var
  n, i: integer;
  s, h: real;
begin
  h := b - a;
  n := trunc(sqrt(h * h * h / 24 / eps)) + 1;
  h := h / n;
  a := a + h / 2;
  s := 0;
  for i := 0 to n - 1 do s := s + f(a + i * h);
  integral := s * h
end;
 
begin
  writeln(integral(0, 1, cosx) + integral(1, pi, sinx) :0:3);
  readln
end.

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

В этом коде реализованы три функции:

  1. sinx(x: real): real; Вычисляет синус числа x.
  2. cosx(x: real): real; Вычисляет косинус числа x.
  3. integral(a, b: real; f: func): real; Вычисляет приближенное значение определенного интеграла от функции f на отрезке [a, b]. В основной части кода вызываются функции integral() с разными аргументами и выводится результат. Вот список действий, которые выполняются в коде:
  4. Задаются константа eps и типы переменных n, i, s, h, a, b, f.
  5. Вычисляется количество отрезков, на которые будет разбита область под графиком функции f.
  6. Задаются начальные и конечные значения для переменной a.
  7. Переменная h устанавливается равной (b-a)/n.
  8. Переменная a сдвигается в начало отрезка.
  9. Переменная s устанавливается равной нулю.
  10. Цикл for выполняется n раз. При каждой итерации значение переменной a увеличивается на h, вызывается функция f с этим значением и результат прибавляется к переменной s.
  11. Переменная integral устанавливается равной произведению s на h.
  12. Вызывается функция integral() с аргументами (0, 1, cosx), (1, pi, sinx).
  13. Результат выводится на экран.
  14. Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результат.

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

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