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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 23:30   #1
Gerain4
Новичок
Джуниор
 
Регистрация: 07.12.2011
Сообщений: 2
По умолчанию как исправить ошибку?

прога считает значение функции (А^2+B^2+ln(x))/cos(x) где в определенный интеграл от e^x*x^2
проблемма собственно в ошибке ,в делении на cos(x)
вот прога
Program z1;

const
Pi:real=3.14159;
H=0.0001;

type
MN=array[1 .. 255]of real;
ME=array[1 .. 255] of boolean;

var
Q:char;
i:integer;
N:byte;
X,Y:MN;
Er:ME;
F,Bb,Bt,B,X0,DX,A:real;

Function IntF(X:real):real;
begin
IntF:=exp(x)*sqr(x)
end;

Procedure TF(X,A,B,Er:real):real; - вот в этом месте ошибка !
begin
if cos(x)=0 then
Er:=true else

TF:=(sqr(A)+sqr(B)+ln(x))/cos(x);
end;

begin
writeln('The bottom limit for integration Bb:');
readln(Bb);

writeln('The top limit for integration Bt:');
readln(Bt);

writeln('Const A:');
readln(A);

writeln('Starting value X0:');
readln(X0);

writeln('Step of change of X0, DX:');
readln(DX);

writeln('Quantity of lines N:');
readln(N);

while(Bb<=Bt) do
begin
F:=IntF(Bb);
Bb:=Bb+H;
B:=B+F*H;
end;
writeln('Numerical value of integral B = ', B:1:4);

begin
X[1]:=X0;
for i:=2 to N do
begin
X:=X[i-1]+DX;
end;
end;
for i:=1 to N do
begin
if Er:=false then
Er:=1 else
Y:=TF(X,A,B);
end;
for i:=1 to N do
begin
writeln('Value of lines N = ', i);
writeln('Value of argument X = ', X:4:4);
if Er:=0 then
writeln('Value of functiоn Y = ', Y:8:4);
else
writeln('Value of functiоn Er =' net kornei');
end;
writeln('Press key for exit');
readln(Q);
exit;
end.
Gerain4 вне форума Ответить с цитированием
Старый 07.12.2011, 23:52   #2
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

при любых икс? может стоит ln(x) проверить?
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 08.12.2011, 00:03   #3
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

нее... понял...
стоит следить за типом...

Код:
Procedure TF(X,A,B,Er:real):real; - âîò â ýòîì ìåñòå îøèáêà !
begin
if cos(x)=0 then
Er:=true else

TF:=(sqr(A)+sqr(B)+ln(x))/cos(x);
end;
здесь Er: real; а в описании переменных - boolean. ....
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 08.12.2011, 00:06   #4
Gerain4
Новичок
Джуниор
 
Регистрация: 07.12.2011
Сообщений: 2
По умолчанию

а как исправить?=(
Gerain4 вне форума Ответить с цитированием
Старый 08.12.2011, 08:11   #5
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

удалить ",Er" из строки
Код:
Procedure TF(X,A,B,Er:real):real; - âîò â ýòîì ìåñòå îøèáêà !
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку yana33311 Паскаль, Turbo Pascal, PascalABC.NET 2 17.04.2011 21:07
паскаль, как исправить ошибку? leraaa Помощь студентам 3 20.04.2010 09:48
Как исправить ошибку? True_girl Помощь студентам 0 19.04.2010 22:47
как исправить ошибку? aiktz Паскаль, Turbo Pascal, PascalABC.NET 3 24.09.2009 18:56