|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите пожалуйста с этими массивами
НУЖНО создать программу "Рациональная интерполяция с помощью непрерывных дробей ".путем перевода с языка бейсик. Вот я перевел она запускается но с выводом проблемы:
Код:
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. |
#2
|
|||
|
|||
Вот продолжение кода:
Код:
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, 02.04.2012 в 10:21. |