
01.04.2012, 19:57
|
Прохожий
|
|
Регистрация: 01.04.2012
Сообщения: 2
Репутация: 10
|
|
Помогите пожалуйста с этими массивами
НУЖНО создать программу "Рациональная интерполяция с помощью непрерывных дробей ".путем перевода с языка бейсик. Вот я перевел она запускается но с выводом проблемы:
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
label 150,130,250;
const MaxN=10;
var
A,B,D,P,Q,X,Y:array[0..MaxN] of real;
i,j,m,m1:integer;
r,s,k:real;
begin
writeln ('Vvedit kilcist tochok m=');readln(m); // 20
for i:=1 to m do
begin
writeln('x[' ,i, ']='); readln (x[i]);
end;
for i:=1 to m do
begin
writeln('y[' ,i, ']='); readln (y[i]);
end; //30
m1:= m div 2;
for j:=1 to m do
begin
R:=Y[j]; S:=X[j];
if j=1 then goto 130;
for i:=1 to j-i do
begin
r:= (S-X[i])/(R-A[i]);
end;
130:A[j]:=r; //130
end;
P[0]:=1; Q[0]:=A[1];K:=1;
150: for i:=1 to m1 do
begin
P[i]:=0; Q[i]:=0;
end;
for i:=2 to m do //160
begin
for j:=(i div 2) downto 1 do //170
begin
r:=A[i]*Q[j]-X[i-1]*P[j]+P[j-1];
P[j]:=q[j];q[j]:=r;
end;
R:=A[i]*Q[0]-X[i-1]*P[0]; //200
P[0]:=Q[0];
Q[0]:=R;
end;
if k=2 then goto 250; //220
for i:=0 to m1 do
begin
B[1]:=Q[1];
k:=2; P[0]:=0; Q[0]:=1; goto 150;
end;
for i:=0 to m1 do
begin
250: d[i]:=Q[i];
end;
Writeln('Koeficientu:');
writeln ('Koeficientu A:');
for i:=1 to m do
begin
writeln ('A(',i,')=');
Writeln (A[i]:2:2);
end;
writeln ('Koeficientu B:');
for i:=0 to m1 do
begin
writeln ('B(',i,')=');
Writeln (B[i]:2:2);
end;
writeln ('Koeficientu D');
for i:=0 to m1 do
begin
writeln ('D(',i,')=');
writeln (D[i]:2:2);
end;
readln;
end.
Админ: Пользуемся тегами для оформления кода!
Кто сможет помочь??? Буду очень благодарен.!!!
Последний раз редактировалось Admin, 01.04.2012 в 20:22.
|