Advertisement
NyanCoder

no2.pas

May 20th, 2022
1,169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.23 KB | None | 0 0
  1. uses math;
  2.  
  3. const
  4.     a    = 2;
  5.     b    = 3;
  6.     n    = 1000;
  7.     step = 0.001;
  8.  
  9. function f(x : real) : real;
  10. begin
  11.     f := ln(x + 2) / x;
  12. end;
  13.  
  14. var
  15.     s, fA, fMid, fB : real;
  16.     i : integer;
  17. begin
  18.     { Левые прямоугольники }
  19.     s := 0;
  20.     for i := 0 to n - 1 do
  21.         s += f(a + i * step) * step;
  22.     writeln('А(левая)>> ', s:0:6);
  23.  
  24.     { Правые прямоугольники }
  25.     s := 0;
  26.     for i := 1 to n do
  27.         s += f(a + i * step) * step;
  28.     writeln('А(правая)>> ', s:0:6);
  29.     writeln;
  30.  
  31.     { Трапеции }
  32.     s := 0;
  33.     fA := f(a);
  34.     for i := 1 to n do begin
  35.         fB := f(a + step*i);
  36.         s += (fA + fB) / 2 * step;
  37.         fA := fB;
  38.     end;
  39.     writeln('Б>> ', s:0:6);
  40.     writeln;
  41.  
  42.     { Симпсон }
  43.     s := 0;
  44.     fA := f(a);
  45.     for i := 1 to n do begin
  46.         fMid := f(a + step*(i - 0.5));
  47.         fB := f(a + step*i);
  48.         s += (step/6)*(fA + fMid*4 + fB);
  49.         fA := fB;
  50.     end;
  51.     writeln('В>> ', s:0:6);
  52.     writeln;
  53.  
  54.     { Средние прямоугольники }
  55.     s := 0;
  56.     for i := 0 to n - 1 do
  57.         s += f(a + (i + 0.5) * step) * step;
  58.     writeln('Г>> ', s:0:6);
  59.     writeln;
  60. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement