Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 18:34   #1
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
Печаль программа в паскале

Отредактировать программу чтобы работала, я её написал но выдаёт ошибку, если можете, то помогите. Спасибо.
Задание:
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.

Ошибка там где я отметил курсивом.
Вложения
Тип файла: doc задание по интегралам.doc (20.5 Кб, 6 просмотров)
Anton94.by вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа в паскале Anton94.by Помощь студентам 8 14.12.2011 21:25
Программа в паскале! zzzZZZzzz Помощь студентам 5 01.06.2010 20:24
Программа в паскале Batonchik Помощь студентам 9 18.01.2009 15:07
Программа в паскале Krjak Помощь студентам 2 15.10.2008 21:56