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

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

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

 
 Ответить  Открыть новую тему 
> интеграл..., метод вычисления
сообщение
Сообщение #1


Гость






В общем нужно программу вычесление интеграла... d(x) на промежутка a и b.


препод на листке объяснил что то..но я мало понял...вот чтов общем он мне написал на листке

Program p;
..............
...............
function int(a,b,eps:real,f:func):real
begin
реализация метода вычисления
интеграла для ф-ии вид которой а
end;

function fi(x:real):real;
begin fi:=x*x;end;
begin
readln(a,b,eps);
writeln(int(a,b,eps,fi);

Sстарое = ((f(a)+f(b))* (b-a))/2
S новое =S1+S2


abs(S ст -S н) < eps все ОК!!!
дальше чет не понял...толи какой то цикл идет ..то ли S новое переходит в S старое...
или ещё что о он написал


в общем помогите разобраться...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Численное интегрирование ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






вот код нам давали на лекции..метод средних треугольников..только препод дал программу не работающую..я показал по практике преподавателю(думал доделаем) он сказал что программа очень неграммотна...и вообще зачем нам знать число деления n. и что нужно использовать эпсилан


Код
Program integral;
uses crt;
type func=function(x:real):real;
Var x,S,h:real;
    i:integer;
Function Int(a,b:real;f:func;n:integer):real;
Begin
writeln(' BBeduTe a,b ==>  ');
readln(a,b);
write(' Bbedute 4uclo deleniy otrezka  n');
read(n);
        h:=(b-a)/n;
       S:=0;
    for i:=0 to n-1 do begin
       x:=a+h*0.5;
       S:=S+f(x);
       x:=x+h;
    Int:=h*S;
    end;
    writeln('s=',s);
readln
End,
Begin
Int(a,b;f;n);
End.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






вот нашёл похожее..только сделанно ка кто слишком заумно..возможно ли переделать по проще..чтобы не было никаких модулей
UNIT C_Rect;

INTERFACE

TYPE Func=Function(x:real):real;

FUNCTION Rectangles(a,b:Real; f:Func; n:word):Real;
FUNCTION RectanglesRunge(a,b:Real; f:Func; var n: word;eps:Real):Real;

IMPLEMENTATION

FUNCTION Rectangles(a,b:Real; f:Func; n:word):Real;

VAR
h,f1,sum,x,y:Real;
i:Integer;

BEGIN

h := (b-a) / n;
sum := 0;
x := a;
for i := 1 to n do
begin
y := x;
x := x + h;
f1 := f((x + y)/2);
sum := sum + f1;
end;
Rectangles:= sum*h;
END;

FUNCTION RectanglesRunge(a,b:Real; f:Func; var n: word; eps:Real):Real;

VAR
I1, I2: real;
BEGIN
I1 := Rectangles(a,b,f,n);
n := n+n;
I2 := Rectangles(a,b,f,n);
while abs(I1-I2) > 2*eps do
begin
if n >= 16383 then break;
I1 := I2;
n := n+n;
I2 := Rectangles(a,b,f,n);
end;
RectanglesRunge := I2;
END;

BEGIN
END.
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 6:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name