паскаль- проблема с кодом

  • Автор темы Zikfrid
  • Дата начала
Z

Zikfrid

#1
код не знаю в чем проблема
Program Zadanie3;
uses WinCrt;
const m=10;
type mas=array [1..m,1..m] of integer;
FI =array [1..100,1..100] of real;
var A: mas;
ki,b1,b2:integer;
y:real;
W,V:FI;
Procedure Vvod (var D:mas; var l:integer; x:real);
var i,j:integer;
begin
writeln ('-------------------');
writeln ('Vvod koefficientov');
writeln ('-------------------');
writeln ('Vvedite chislo pryamyx: ');
read (l);
writeln ('Vvedite koefficienty:');
for i:=1 to l do
for j:=1 to 3 do
begin
readln (D[i,j]);
end;
writeln ('Vvedite ugol: ');
read (x);
end;


Procedure Vivod (D:mas; l:integer );
var i,j:integer;
begin
writeln ('Uravneniya:');
for i:=1 to l do
begin
writeln (D[i,1],'x + ',D[i,2],'y + ',D[i,3],'=0 ');
end;
end;


Procedure Pary (D:mas; l,n1,n2:integer);
var i,j,r,f:integer;
begin
f:=0;
for n1:=1 to (l-1) do
begin
for n2:=n1+1 to l do
begin
r:=D[n1,1]*D[n2,1] + D[n1,2]*D[n2,2];
if r=0 then
begin
writeln ('Iskomaya para - uravneniya ',n1, ' i ',n2 );
writeln (D[n1,1],' + ',D[n1,2],' + ',D[n1,3]);
writeln (D[n2,1],' + ',D[n2,2],' + ',D[n2,3]);
f:=f+1;
end;
end;
end;
if (f=0) then writeln ('Iskomyx par net');
end;

Procedure Ugol (var D:mas; var l,n1,n2:integer; var x:real; var W,V:FI);
var i,j,f:integer;
begin
f:=0;
x:=Pi*x/180;
for n1:=1 to l do
for n2:=1 to l do
begin
W[i,j]:=arctan(-(D[n1,1]/D[n1,2]));
V[i,j]:=arctan(-(D[n2,1]/D[n2,2]));
if abs(x) < abs(W[i,j]) then
if abs(x) < abs(V[i,j]) then
begin
writeln ('Pryamye s menshim zadannogo ugla: ');
writeln (D[n1,1],' + ',D[n1,2],' + ',D[n1,3]);
writeln (D[n2,1],' + ',D[n2,2],' + ',D[n2,3]);
f:=f+1;
end;
end;
if (f=0) then
writeln ('Pryamye s bolshim zadannogo ugla');
end;



begin
Vvod (A,ki,y);
Vivod (A,ki);
writeln ('----------------');
Pary (A,ki,b1,b2);
writeln ('----------------');
Ugol (A,ki,b1,b2,y);
end.

как я понял глюк в коде выделенным жирным
 

Vadik(R)

Well-known member
12.12.2007
469
0
#2
Я особо не вьезжал в твой код, но мне кажется ошибка вот здесь:
Код:
x:=Pi*x/180;
for n1:=1 to l do
for n2:=1 to l do
begin
Попробуй заменить на:
Код:
x:=Pi*x/180;
for i:=1 to l do
for j:=1 to l do
begin