Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.
Описываем переменные: max, min, imax,imin,jmax,jmin - все типа integer, если массив "of integer". Присваиваем начальные значения: max:= a[1,1]; min:= a[1,1]; imax,imin,jmax,jmin - все = 1. Открываем двойной цикл (по i и по j), просматривая все элементы массива, сравниваем их как с max, так и с min. If a[i,j]>max then begin max:=a[i,j]; imax:=i; jmax:=j end; аналогично: If a[i,j]<min then begin min:=a[i,j]; imin:=i; jmin:=j end; После окончания цикла меняем индексы максимального элемента на соответствующие индексы минимального и наоборот. Выводим измененный массив.
begin
var a := SeqRandom(Random(20), 0,100);
Println(a);
Println(a.Max);
end.