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

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

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

 
 Ответить  Открыть новую тему 
> Интегрирование по методу трапеций.
3 kilos
сообщение 31.03.2006 22:03
Сообщение #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 - 31.03.2006 22:10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 31.03.2006 22:22
Сообщение #2


Гость






А FAQ + Поиск - "Не царское дело"? Обязательно СВОЙ велосипед изобрести? Так изобретай. У нас на форуме уже есть готовый, отлаженый и проверенный Mercedes.
 К началу страницы 
+ Ответить 
3 kilos
сообщение 1.04.2006 0:54
Сообщение #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 - 1.04.2006 0:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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