Двумерные массивы. Базовые алгоритмы.
Пример 1. Ввод значений элементов с клавиатуры (если знаем размерность массива). При переборе внешний цикл перебирает по строкам, внутренний - по столбцам. for i:=1 to 10 do for j:=1 to 15 do read(a[i,j]);
Пример 2. Задание нулевых значений элементов массива. При переборе внешний цикл перебирает по строкам, внутренний - по столбцам. for i:=1 to 10 do for j:=1 to 15 do a[i,j]:=0;
Пример 3. Ввод значений элементов с клавиатуры. Задаем с клавиатуры размерность массива a[1..n,1..m]. N - количество строк, M - количество столбцов. read(n,m); for i:=1 to n do for j:=1 to m do read(a[i,j]);
Пример 4. Выведем значения элементов массива размером NxM в виде таблицы. for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end;
Пример 5. Определим сумму элементов массива. s:=0; for i:=1 to n do for j:=1 to m do s:=s+a[i,j];
Пример 6. Поиск максимального элемента. max:=a[1,1]; for i:=1 to n do for j:=1 to m do if max<a[i,j] then max:=a[i,j];
Пример 7. Подсчет количества элементов массива, равных числу 5. k:=0; for i:=1 to n do for j:=1 to m do if a[i,j]=5 then k:=k+1;
Пример 8. Вывод элементов главной диагонали квадратной матрицы. for i:=1 to n do writeln(a[i,i]);
Пример 9. Определение минимального элемента в 3-тьем столбце min:=a[1,3]; for i:=2 to n do if min>a[i,3] then min:=a[i,3];
Пример 10. Перестановка первой и пятой строки. for i:=1 to m do begin d:=a[1,i]; a[1,i]:=a[5,i]; a[5,i]:=d; end;
Пример 11. Нахождение суммы элементов побочной диагонали квадратной матрицы. s:=0; for i:=1 to n do s:=s+a[i,n-i+1]);
Пример 12. Выделение прямоугольного подмассива размером RxC с позиции i1,j1 в массиве размером NxM. (R<=N, C<=M) for i:=i1 to i1+R-1 do for j:=j1 to j1+C-1 do ... выполняем необходимые действия ... Ниже рассмотрим конкретный пример работы с частью прямоугольного массива. Пример 13. Заполним часть прямоугольного массива с позиции i1хj1 размером RхC элементами, равными 1. for i:=i1 to i1+R-1 do for j:=j1 to j1+C-1 do a[i,j]:=1;
Ввод: N M i1 j1 R C Вывод: элементы массива
Ввод: 5 6 2 3 3 2 Вывод: 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0
Пример 14. Удалим k-тую строку for i:=k to n-1 do for j:=1 to m do a[i,j]:=a[i+1,j]; n:=n-1;
Пример 15. Вставим k-тый столбец. for j:=m downto k do for i:=1 to n do a[i,j+1]:=a[i,j]; m:=m+1;
|