Помощь - Поиск - Пользователи - Календарь
Полная версия: Интегрирование по методу трапеций.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
3 kilos
В учебнике есть схема алгоритма, ровность я особо не соблюдал, главное построил все в точности как в учеюнике:
а,б - пределы интегрирования, е - точность.

Нажмите для просмотра прикрепленного файла

Собсно труда составить код по алгоритму не составило, но что-то не так считается.. а что не так понять не могу.Помогите разобраться, в чем ошибка.
П.С. Функция разумеется простая в качестве теста программы.
Код
Program nelurav;
Uses Crt;
var
n,i:integer;
Procedure Input(var n,m,eps:real);
begin
writeln('');
writeln('    Vvedite granitchy intervala (a,b)');
writeln('');
write('  a=');
  read(m);
write('  b=');
  read(n);
writeln('');
writeln('    Zadaite to4nost eps');
writeln('');
write('  eps=');
  read(eps);
end;
Function F(var x:real):real;
begin
f:=x;
end;
Procedure Otrezok(var a,b,eps,x:real);
var
g,h,s,s1:real;
begin
writeln('');
n:=1;
h:=(b-a);
s:=(F(a)+F(b))*h/2;
  Repeat
  n:=2*n;
  h:=(b-a)/n;
  s1:=s;
  s:=F(a)+F(b);
   For i:=1 to n-1 do
    begin
    g:=a+i*h;
    s:=s+2*F(g);
    end;
  s:=s*h/2;
    until (abs(s-s1)/3>eps); {цикл завершается когда модуль будет меньше точности я так понял}
  writeln('int ' ,S);
  readln;
  end;
var
a,b,eps,x:real;
begin
TextBackGround(white);
TextColor(blue);
ClrScr;
Input(a,b,eps);
Otrezok(a,b,eps,x);
readln;
end.
volvo
А FAQ + Поиск - "Не царское дело"? Обязательно СВОЙ велосипед изобрести? Так изобретай. У нас на форуме уже есть готовый, отлаженый и проверенный Mercedes.
3 kilos
Цитата(volvo @ 31.03.2006 22:22) *

А FAQ + Поиск - "Не царское дело"? Обязательно СВОЙ велосипед изобрести? Так изобретай. У нас на форуме уже есть готовый, отлаженый и проверенный Mercedes.


Вам бы лишний раз указать на поиск или ФАК... Яб с удовольствием арендовал ваш мерседесс, но почему я должен был починить свой велосипед, так потому-что собирать его мне надо было по НАШЕМУ учебнику и сдавать показательное выступление тоже на нем. Вобщем проблема разрешилась... Убрал процедуру вводу и немножечко поэксперементировал со скобочками

Код
Program nelurav;
Uses Crt;
var
n,i:integer;
a,b,eps,h,s,s1,g:real;
Function F(var x:real):real;
begin
f:=x*sin(x+1)-cos(x-5);
end;
begin
  TextBackGround(white);
  TextColor(blue);
  ClrScr;
writeln('    Vvedite granitchy intervala (a,b)');
writeln;
write('  a=');
  readln(a);
write('  b=');
  readln(b);
writeln;
writeln('    Zadaite to4nost eps');
writeln;
write('  eps=');
  readln(eps);
writeln;
  n:=1;
  h:=(b-a);
  s:=(F(a)+F(b))*h/2;
Repeat
  n:=2*n;
  h:=(b-a)/n;
  s1:=s;
  s:=F(a)+F(b);
   For i:=1 to n-1 do
     begin
      g:=a+i*h;
      s:=s+2*F(g);
    end;
  s:=s*h/2;
    until (((abs(s-s1))/3) < eps);
  writeln('ploschad= ' ,s:5:2);
   readln;
end.
how long does it take plaquenil
Cialis Without A Prescription 5 Mg
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.