1.
program tr;
uses drawman;
procedure t;
begin
PenDown;
OnVector (2,4);
OnVector (2,-4);
OnVector (-4,0);
OnVector (2,0);
PenUp
end;
var i:integer;
begin
Field(12,6);
ToPoint (1,1);
for i:=1 to 4 do t;
ToPoint (0,0);
end.
2.
program lod;
uses drawman;
procedure l;
begin
PenDown;
OnVector (0,2);
OnVector (-1,-2);
OnVector (2,0);
OnVector (-1,2);
OnVector (0,-2);
OnVector (-2,0);
OnVector (1,-1);
OnVector (2,0);
OnVector (1,1);
OnVector (-2,0);
PenUp
end;
begin
Field(12,9);
ToPoint (3,2);
l;
ToPoint (6,6);
l;
ToPoint (9,2);
l;
ToPoint (0,0)
end.
Объяснение:
Смотри картинки
Перестановка:
!Без каких-либо дополнительных переменных
beginvar a := ArrRandom(20, 10, 40);Println(a);a[a.IndexMax] += a[0];a[0] := a.Max - a[0];a[a.IndexMax] -= a[0];Println(a);end.Замена:
!Тут уже проще переменную добавить
var max: integer;beginvar a := ArrRandom(20, 10, 40);Println(a);max := a.Max;a.Replace(a.Max, a[0]);a[0] := max;Println(a);end.Пояснение:
(20, 10, 40) - количество, интервалОТ, интервалДО.
Max(IndexMax) можно поменять на Min(IndexMin).
Ну а если первый = a[0], последний = a[количество-1].
Пример работ: