// PascalABC.NET 3.2, сборка 1370 от 24.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); var a:=MatrFill(m,n,0); for var i:=0 to m-1 do for var j:=0 to n-1 do Read(a[i,j]); Writeln('В 5-й строке число 13 встречено в колонке ', a.Row(4).IndexOf(13)+1) end.
Пример Количество строк в массиве: 7 Количество столбцов в массиве: 8 -4 10 -6 19 -3 -6 18 -9 16 12 18 8 14 11 4 10 -10 -4 -7 13 11 -4 4 -2 -6 1 11 8 1 11 7 8 18 6 14 -7 -8 13 5 13 -1 6 14 8 -5 11 -2 -5 20 16 7 -4 6 5 20 -10 В 5-й строке число 13 встречено в колонке 6
Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 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.