![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите пожалуйста с программой
SaaHeK86 © (2009-12-09 17:48:00)я тут нашел программу для решения нелинейных уравнений методом простых итераций, взял из книжки, пытался отладить, но в одном месте при отладке он выдаёт ошибку. помогите пожалуйста сделать её рабочей. вот код:
program abc;
type func = function(x: real): real;
const pi=3.14159265;
var p: array [1..9] of real;
b, x, e: real;
m, n, k: integer;
function f(x: real): real;
var q, r, s, t: real;
k: integer;
begin
t:= 2*x/sqrt(pi);
s:= t-p[1];
r:= -x*x;
k:= 1;
repeat
q:=s;
t:= t*r/k;
s:= s+t/(2*k+1);
k:= k+1;
until
s=q;
f:= x+b*s
end;
procedure iter(var b, x, e:real; m: integer; f: func);
type
func = function(x: real): real;
var x1, r: real;
i: integer;
begin
for i:= 1 to m do
begin
x1:= x;
x:= f (x);
if abs(x-x1) < e
then
exit;
if i=m
then
writeln('iterazii vse');
end;
end;
begin
repeat
write('b, x, e, m');
readln(b, x, e, m);
write('skolko parametrov?');
readln(n);
for k:=1 to n do
begin
write('p(', k:2, ')? ');
readln(p[k])
end;
iter(b, x, e, m, f);
writeln('x=', x);
until false
end.
в месте
write('p(', k:2, ')? ');
readln(p[k])
end;
***iter(b, x, e, m, f);****
выдаёт ошибку invalide procedure or function reference, помогите пожалуйста.
Jeer (2009-12-09 17:59:00) [1]она рабочая
Palladin (2009-12-09 17:51:00) [2]Ты даже до отладки не дошел. Это ошибка компиляции.
MBo (2009-12-09 17:50:00) [3]зачем внутри procedure iter
еще раз тип объявляется?