Отредактировать программу чтобы работала, я её написал но выдаёт ошибку, если можете, то помогите. Спасибо. Задание. 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.
|
|
|
Quote (anton94by) я её написал но выдаёт ошибку
Что за ошибка?
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|
Quote (Berestovskiy) Что за ошибка? function f1(x:real):real; я изменял даже вот так function f1:(x:real):real); всё равно выдаёт ошибку. Ошибка в Free pascal: " Illegal expression" Ошибка в Turbo pascal: " Erros 113: Error in statement" Просмотрите задание, может я что-то написал лишнее, или может так что, а то мне завтро надо сдавать. Спасибо...
|
|
|