begin for i := 0 to 10 do A[i] := i; PrintLn(a); for i := 1 to 11 do begin A[i - 1] := A[11 - i]; PrintLn(a); end; end.
Трасировка второго цикла А [10,1,2,3,4,5,6,7,8,9,10] [10,9,2,3,4,5,6,7,8,9,10] [10,9,8,3,4,5,6,7,8,9,10] [10,9,8,7,4,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10]
function Distance2(a,b:Point):real; { возвращает квадрат расстояния между точками } begin Distance2:=sqr(b.x-a.x)+sqr(b.y-a.y) end;
function Max(p,q:real):real; { возвращает максимальное из p,q } begin if p>q then Max:=p else Max:=q end;
procedure Vvod(var a:Point;n:integer); { процедура с изменяемым параметром a } begin Write('Введите координаты точки ',n,': '); Readln(a.x,a.y) end;
var a:array[1..3] of Point; d1,d2,d3:real; i:integer;
begin for i:=1 to 3 do Vvod(a[i],i); d1:=Distance2(a[1],a[2]); d2:=Distance2(a[1],a[3]); d3:=Distance2(a[2],a[3]); if d1>d2 then if d1>d3 then Writeln('Максимальное расстояние 1-2') else if d1=d3 then Writeln('Максимальное расстояние 1-2 и 2-3') else Writeln('Максимальное расстояние 2-3') else if d1=d2 then if d1>d3 then Writeln('Максимальное расстояние 1-2 и 1-3') else if d1=d3 then Writeln('Расстояния между всеми точками одинаковы') else Writeln('Максимальное расстояние 2-3') else if d3>d2 then Writeln('Максимальное расстояние 2-3') else if d3=d2 then Writeln('Максимальное расстояние 1-3 и 2-3') else Writeln('Максимальное расстояние 1-3'); end.
Тестовое решение: Введите координаты точки 1: -2 1 Введите координаты точки 2: 4 5 Введите координаты точки 3: 2 -2 Максимальное расстояние 2-3
a: array[0..10] of integer;
i, n, k: integer;
begin
for i := 0 to 10 do
A[i] := i;
PrintLn(a);
for i := 1 to 11 do
begin
A[i - 1] := A[11 - i];
PrintLn(a);
end;
end.
Трасировка второго цикла А
[10,1,2,3,4,5,6,7,8,9,10]
[10,9,2,3,4,5,6,7,8,9,10]
[10,9,8,3,4,5,6,7,8,9,10]
[10,9,8,7,4,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
Point=record
x,y:real
end;
function Distance2(a,b:Point):real;
{ возвращает квадрат расстояния между точками }
begin
Distance2:=sqr(b.x-a.x)+sqr(b.y-a.y)
end;
function Max(p,q:real):real;
{ возвращает максимальное из p,q }
begin
if p>q then Max:=p else Max:=q
end;
procedure Vvod(var a:Point;n:integer);
{ процедура с изменяемым параметром a }
begin
Write('Введите координаты точки ',n,': ');
Readln(a.x,a.y)
end;
var
a:array[1..3] of Point;
d1,d2,d3:real;
i:integer;
begin
for i:=1 to 3 do Vvod(a[i],i);
d1:=Distance2(a[1],a[2]);
d2:=Distance2(a[1],a[3]);
d3:=Distance2(a[2],a[3]);
if d1>d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2')
else
if d1=d3 then Writeln('Максимальное расстояние 1-2 и 2-3')
else Writeln('Максимальное расстояние 2-3')
else
if d1=d2 then
if d1>d3 then Writeln('Максимальное расстояние 1-2 и 1-3')
else
if d1=d3 then Writeln('Расстояния между всеми точками одинаковы')
else Writeln('Максимальное расстояние 2-3')
else
if d3>d2 then Writeln('Максимальное расстояние 2-3')
else
if d3=d2 then Writeln('Максимальное расстояние 1-3 и 2-3')
else Writeln('Максимальное расстояние 1-3');
end.
Тестовое решение:
Введите координаты точки 1: -2 1
Введите координаты точки 2: 4 5
Введите координаты точки 3: 2 -2
Максимальное расстояние 2-3