Snakepower
16-01-2013, 23:14
С помощью матрицы (i=1,2;j=1,…n) на плоскости задано n точек так , что , координаты j-й точки. Точки попарно соединены отрезками. Найдите длину наибольшего отрезка. У меня есть решение данной задачи на паскале. Помогите переделать в Delphi. Вот код:
program matrix;
uses crt;
const n=6;
type matr=array[1..2,1..n] of byte;
var a:matr;
i,k,j,j_max:byte;
max:real;
x,y:real;
b:array[1..n-1] of real;
begin
{SR+}
clrscr;
k:=1;
writeln('исходная матрица');
for i:=1 to 2 do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
begin
for j:=1 to n-1 do
b[j]:=sqrt(sqr(a[1,j]-a[2,j])+sqr(a[1,j+1]-a[2,j+1]));
end;
writeln(' длинны векторов ');
begin
for j:=1 to n-1 do
write( b[j]:5:2 );
end;
writeln;
begin
max:=b[1];
j_max:=1;
for j:=2 to n-1 do
if b[j]>max then
begin
max:=b[j];
j_max:=j;
end;
x:=(a[1,j_max+1]-a[1,j_max]);
y:=(a[2,j_max+1]-a[2,j_max]);
begin
writeln('координаты самого длинного вектора');
writeln( 'X=', x);
writeln( 'Y=', y);
end;
end;
end.
Заранее благодарен
program matrix;
uses crt;
const n=6;
type matr=array[1..2,1..n] of byte;
var a:matr;
i,k,j,j_max:byte;
max:real;
x,y:real;
b:array[1..n-1] of real;
begin
{SR+}
clrscr;
k:=1;
writeln('исходная матрица');
for i:=1 to 2 do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
begin
for j:=1 to n-1 do
b[j]:=sqrt(sqr(a[1,j]-a[2,j])+sqr(a[1,j+1]-a[2,j+1]));
end;
writeln(' длинны векторов ');
begin
for j:=1 to n-1 do
write( b[j]:5:2 );
end;
writeln;
begin
max:=b[1];
j_max:=1;
for j:=2 to n-1 do
if b[j]>max then
begin
max:=b[j];
j_max:=j;
end;
x:=(a[1,j_max+1]-a[1,j_max]);
y:=(a[2,j_max+1]-a[2,j_max]);
begin
writeln('координаты самого длинного вектора');
writeln( 'X=', x);
writeln( 'Y=', y);
end;
end;
end.
Заранее благодарен