Показать сообщение отдельно
Старый 09.03.2004, 11:49     # 14
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
inc(i) нужно вставлять внутрь цикла repeat...until, а не после него.

Добавлено через 2 минуты:
Непонятно еуда вставлен integrate := result;
Вот, что надо было:
Код:
uses
  crt;

function Func (const x: real): real;
begin
  func := x + 2;
end;

function min (const v1, v2: real): real;
begin
  if (v2 > v1) then min := v1 else min := v2;
end;

function integrate (const a, b, eps: real): real;
var
  x1, x2, result: real;
  i, count:       longint;
begin
  result := 0;
  i := 1;
  count := round (abs(b - a) / eps);
  repeat
    result := result + (abs(b - a) +
      abs(min(func(a + count * eps),
      func(a + count * eps + eps)))) * eps;
    inc (i);
  until i > Count;
  integrate := result;
end;

var
  a, b, eps: real;

begin
  write('Vvedite nachalnoe znachenie x: ');
  readln(a);
  write('Vvedite konechnoe znachenie x: ');
  readln(b);
  write('Vvedite tochnost: ');
  readln(eps);
  writeln('Rezultat: ', integrate(a, b, eps));
end.
Добавлено через 12 минут:
Вот, что получилось у меня:
Код:
uses
  crt;

type
  integr_func = function (x: real): real;

function f(x: real): real; far;
begin
  f := x * x;
end;

procedure integrate (f: integr_func; a, b, e: real; var r: real);
var
  s, s0, h: real;
  n, i: integer;
begin
  n := 10;
  s := 0;
  repeat
    s0 := s; s := 0;
    h := (b - a) / n;
    for i := 0 to pred(n) do
      s := s + (f(a + h * i) + f(a + h * succ(i))) * h * 0.5;
    writeln ('   n = ', n:6, ', result = ', s:10:6);
    n := n * 2;
  until abs(s - s0) <= e;
  r := s;
end;

var
  a, b, e, r: real;

begin
  clrscr;
  write ('enter a: '); readln (a);
  write ('enter b: '); readln (b);
  write ('enter e: '); readln (e);
  writeln ('calculate...');
  integrate (f, a, b, e, r);
  writeln ('result = ', r:10:6);
  readkey;
end.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 09.03.2004 в 12:03.
Ghost вне форума