PascalABC.NET
Перестановка:
!Без каких-либо дополнительных переменных
- begin
- var 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;
- begin
- var 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].
Пример работ: