Надо переделать код для лазаруса (из pascalABC на Freepascal), а то программа не выполняется, выдается фатальная ошибка, хоть с синтаксисом все нормально type point=record
x,y:real;
end;
var a:array[1..3] of point;
i,j: integer;
z: point;
c: real;
begin
writeln('Координаты вершин');
readln(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);
//отсортируем по убыванию y
for i:=1 to 2 do
for j:=i+1 to 3 do
if a[i].y>a[j].y then
begin
z:=a[j];
a[j]:=a[i];
a[i]:=z;
end;
//выбираем первую точку
if a[2].x a[2].x then
begin
z:=a[3];
a[3]:=a[2];
a[2]:=z;
end;
for i:=1 to 3 do begin
c:=sqrt(a[i].x*a[i].x + a[i].y*a[i].y);
writeln ('Расстояние от начала координат',' ',c);
end;
readln
end.

Nika1032 Nika1032    1   28.09.2020 19:28    0

Ответы
zhannar333ta zhannar333ta  28.10.2020 19:28

Я комментарием пометил ошибку

type point=record

x,y:real;

end;

var a:array[1..3] of point;

i,j: integer;

z: point;

c: real;

begin

writeln('Координаты вершин');

readln(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);

//отсортируем по убыванию y

for i:=1 to 2 do

for j:=i+1 to 3 do

if a[i].y>a[j].y then

begin

z:=a[j];

a[j]:=a[i];

a[i]:=z;

end;

//выбираем первую точку

if a[2].x a[2].x then    // Ошибка, здесь ничего не сравнивается

begin

z:=a[3];

a[3]:=a[2];

a[2]:=z;

end;

for i:=1 to 3 do begin

c:=sqrt(a[i].x*a[i].x + a[i].y*a[i].y);

writeln ('Расстояние от начала координат',' ',c);

end;

readln

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика