Помогите, пожалуйста. Надо переделать код для лазаруса (из pascalABC на Freepascal), а то...

309 интересует 24 не интересует
723k просмотров

Помогите, пожалуйста. Надо переделать код для лазаруса (из 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.


спросил от Начинающий (121 баллов) в категории Информатика
1 Ответ
84 интересует 10 не интересует
ответил от Начинающий (294 баллов)

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

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.

...