Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Проверить программу (Интегралы)
Проверить программу
Отредактировать программу чтобы работала, я её написал но выдаёт ошибку, если можете, то помогите. Спасибо.
Задание.
1. Составить программу, подсчитывающую с точностью значение определенного интеграла по формуле. Для достижения заданной точности использовать метод двойного пересчета. Результат сравнить со значением интеграла, подсчитанным с помощью первообразной F(x) по формуле Ньютона-Лейбница: .
Метод должен быть запрограммирован с помощью процедуры. Отрезок интегрирования, точность вычисления вводятся с клавиатуры, подынтегральная функция описывается с помощью функции пользователя.
Распечатать: отрезок интегрирования, точность вычисления, приближенное значение определенного интеграла, значение интеграла, подсчитанное по формуле Ньютона-Лейбница.

Метод: центральных прямоугольников:

1) \int_{0}^{1}{}2^{3^{x}}dx, e=10^{-3}, F(x)=\frac{1}{3ln2}(2^{3x}-1)

Исправьте ошибки в программе, если я что-то написал не в том порядке то исправьте. Спасибо...

program NV;
uses crt;
type TIntFunc=function ( x:real):real;
function F(fn: TIntFunc; a, b, e:real):real;
var
s0, s, i, w, xi:real;
j, n:integer;
const eps=0.001;
begin
n:=1000;
if a>b then
begin
s:=a;
a:=b;
b:=s;
end;
repeat
s0:=s;
s:=0;
w:=(b-a)/n;
for j:=0 to n-1 do
begin
xi:=a+(2*j+1)*(b-a)/2/n;
s:=s+w*fn(xi);
end;
inc(n,10);
until (n>12) and (abs(s-s0)<=e);
I:=s;
end;
var
a, b, e:real;
begin
function f1(x:real):real;
far;
begin
f1:=exp(3*x*ln(2));
end;
function f2(x:real):real;
far;
begin
f2:=((1/3*ln*2*(exp(3*x-1)));
end;
write('Input A B E (separated by space):');
readln(a, b, e);
writeln('i=',i(f1, a, b, e):15:5);
writeln(' Checking:');
writeln('i=',f2(b)-f2(a):15:5);
writeln
end.

Добавлено (13.12.11, 23:37)
---------------------------------------------
Отредактировать программу чтобы работала, я её написал но выдаёт ошибку, если можете, то помогите. Спасибо.
Задание.
1. Составить программу, подсчитывающую с точностью значение определенного интеграла по формуле. Для достижения заданной точности использовать метод двойного пересчета. Результат сравнить со значением интеграла, подсчитанным с помощью первообразной F(x) по формуле Ньютона-Лейбница: .
Метод должен быть запрограммирован с помощью процедуры. Отрезок интегрирования, точность вычисления вводятся с клавиатуры, подынтегральная функция описывается с помощью функции пользователя.
Распечатать: отрезок интегрирования, точность вычисления, приближенное значение определенного интеграла, значение интеграла, подсчитанное по формуле Ньютона-Лейбница.

Метод: центральных прямоугольников:

1) \int_{0}^{1}{}2^{3^{x}}dx, e=10^{-3}, F(x)=\frac{1}{3ln2}(2^{3x}-1)

Исправьте ошибки в программе, если я что-то написал не в том порядке то исправьте. Спасибо...

program NV;
uses crt;
type TIntFunc=function ( x:real):real;
function F(fn: TIntFunc; a, b, e:real):real;
var
s0, s, i, w, xi:real;
j, n:integer;
const eps=0.001;
begin
n:=1000;
if a>b then
begin
s:=a;
a:=b;
b:=s;
end;
repeat
s0:=s;
s:=0;
w:=(b-a)/n;
for j:=0 to n-1 do
begin
xi:=a+(2*j+1)*(b-a)/2/n;
s:=s+w*fn(xi);
end;
inc(n,10);
until (n>12) and (abs(s-s0)<=e);
I:=s;
end;
var
a, b, e:real;
begin
function f1(x:real):real;
far;
begin
f1:=exp(3*x*ln(2));
end;
function f2(x:real):real;
far;
begin
f2:=((1/3*ln*2*(exp(3*x-1)));
end;
write('Input A B E (separated by space):');
readln(a, b, e);
writeln('i=',i(f1, a, b, e):15:5);
writeln(' Checking:');
writeln('i=',f2(b)-f2(a):15:5);
writeln
end.

Добавлено (13.12.11, 23:41)
---------------------------------------------
Отредактировать программу чтобы работала, я её написал но выдаёт ошибку, если можете, то помогите. Спасибо.
Задание.
1. Составить программу, подсчитывающую с точностью значение определенного интеграла по формуле. Для достижения заданной точности использовать метод двойного пересчета. Результат сравнить со значением интеграла, подсчитанным с помощью первообразной F(x) по формуле Ньютона-Лейбница: .
Метод должен быть запрограммирован с помощью процедуры. Отрезок интегрирования, точность вычисления вводятся с клавиатуры, подынтегральная функция описывается с помощью функции пользователя.
Распечатать: отрезок интегрирования, точность вычисления, приближенное значение определенного интеграла, значение интеграла, подсчитанное по формуле Ньютона-Лейбница.

Метод: центральных прямоугольников:

1) \int_{0}^{1}{}2^{3^{x}}dx, e=10^{-3}, F(x)=\frac{1}{3ln2}(2^{3x}-1)

Исправьте ошибки в программе, если я что-то написал не в том порядке то исправьте. Спасибо...

program NV;
uses crt;
type TIntFunc=function ( x:real):real;
function F(fn: TIntFunc; a, b, e:real):real;
var
s0, s, i, w, xi:real;
j, n:integer;
const eps=0.001;
begin
n:=1000;
if a>b then
begin
s:=a;
a:=b;
b:=s;
end;
repeat
s0:=s;
s:=0;
w:=(b-a)/n;
for j:=0 to n-1 do
begin
xi:=a+(2*j+1)*(b-a)/2/n;
s:=s+w*fn(xi);
end;
inc(n,10);
until (n>12) and (abs(s-s0)<=e);
I:=s;
end;
var
a, b, e:real;
begin
function f1(x:real):real;
far;
begin
f1:=exp(3*x*ln(2));
end;
function f2(x:real):real;
far;
begin
f2:=((1/3*ln*2*(exp(3*x-1)));
end;
write('Input A B E (separated by space):');
readln(a, b, e);
writeln('i=',i(f1, a, b, e):15:5);
writeln(' Checking:');
writeln('i=',f2(b)-f2(a):15:5);
writeln
end.

1 | Автор: anton94by | 2011-12-13, 23:41   |  Репутация: [ + 1 ]
Quote (anton94by)
я её написал но выдаёт ошибку


Что за ошибка?


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
2 | Автор: Berestovskiy | 2011-12-14, 12:10   |  Репутация: [ + 211 ]
Quote (Berestovskiy)
Что за ошибка?

function f1(x:real):real;
я изменял даже вот так function f1:(x:real):real);
всё равно выдаёт ошибку.
Ошибка в Free pascal: " Illegal expression"
Ошибка в Turbo pascal: " Erros 113: Error in statement"
Просмотрите задание, может я что-то написал лишнее, или может так что, а то мне завтро надо сдавать. Спасибо...
3 | Автор: anton94by | 2011-12-14, 18:14   |  Репутация: [ + 1 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Проверить программу (Интегралы)
  • Страница 1 из 1
  • 1
Поиск: