Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Проблема с вычислением интеграла

Автор: medievil 10.09.2005 22:27

Так вот мучился я мучился над интегралом в результате сделал,а препод еще одну заподлянку подкинул :angry: :angry: да еще какую если кто может помогите.Мои мозги сварились после трех часов работы :( :(

Код
unit integral;
interface
uses crt;
var
n,i:integer;
a,b,shad,sum,itog:real;
implementation

function f(x:real):real;
begin
f:=x*x*x*x+2*x*x+4{¬Ґв®¤ Їаאַ㣮«м­ЁЄ }
end;

begin
clrscr;
textbackground(2);
textcolor(blue);
writeln('***************************');
writeln('*                         *');
writeln('*Њ е®ў ‚пзҐб« ў ЊЁе Ё«®ўЁз*');
writeln('*                         *');
writeln('ННННННННННННННННННННННННННН');


write('­начало интегрирования a= ');readln(a);
write('­конец интегрирования b= ');readln(B);
write('количество разбиения интервала n= ');readln(n);

shad:=(b-a)/n;
sum:=0;
for i:=1 to n-1 do
sum :=sum + f(shad*i+a);
sum :=sum +(f(a) +f(B))/2;

itog:=(b-a)/n * sum;
writeln ('Ё­вҐЈа « = ', itog:10:1);
readln;
end.


Надо чтоб не я вводил количество разбиения интервал а он всегда разбивался до 0.01

Нужно срочно(до понедельника)

1. В следующий раз выбирай более подходящий раздел ...
2. ... и название темы.
3. И пользуйся тегами [CОDE] ...
4. ... и поиском (хотя бы в FAQ-е).

Автор: volvo 10.09.2005 22:47

Скорее всего, все, что тебе надо сделать - подобрать обратное действие к

shad:=(b-a)/n;
, то есть по заданному шагу найти N:
write('­начало интегрирования a= ');readln(a);
write('­конец интегрирования b= ');readln(B);
shad:=0.01;
n := (b - a)/shad;

Автор: medievil 11.09.2005 1:01

спасибо

Автор: medievil 11.09.2005 21:04

Слушай а тьы проверял ее,а то у меня паскаль не работает

Автор: volvo 11.09.2005 21:59

Все, что взято у нас из FAQ (а твоя программа взята именно оттуда: http://forum.pascal.net.ru/index.php?showtopic=4389&view=findpost&p=11238) проверено неоднократно...