IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Интегрирование по методу трапеций.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


В учебнике есть схема алгоритма, ровность я особо не соблюдал, главное построил все в точности как в учеюнике:
а,б - пределы интегрирования, е - точность.

Прикрепленное изображение

Собсно труда составить код по алгоритму не составило, но что-то не так считается.. а что не так понять не могу.Помогите разобраться, в чем ошибка.
П.С. Функция разумеется простая в качестве теста программы.
Код
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.


Сообщение отредактировано: 3 kilos -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Мужской

Репутация: -  0  +


Цитата(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.


Сообщение отредактировано: 3 kilos -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 24.08.2017 4:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"