Тема: перестановка элементов в одномерном массиве "в паскале": дан массив размера n. поменять местами его минимальный и средний элементы. сделать с процедурой.
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016 procedure Permutation(x:array of integer); begin var imin:=0; for var i:=1 to x.Length-1 do if x[i]<x[imin] then imin:=i; var im:=(x.Length div 2); Swap(x[imin],x[im]) end;
begin var a:=ArrRandom(ReadInteger('n='),10,99); a.Println; Permutation(a); a.Println; end.
procedure Permutation(x:array of integer);
begin
var imin:=0;
for var i:=1 to x.Length-1 do
if x[i]<x[imin] then imin:=i;
var im:=(x.Length div 2);
Swap(x[imin],x[im])
end;
begin
var a:=ArrRandom(ReadInteger('n='),10,99); a.Println;
Permutation(a); a.Println;
end.
Тестовое решение:
n= 7
90 89 97 63 95 21 56
90 89 97 21 95 63 56