Заполнение массива "змейкой" - Pascal
Формулировка задачи:
Дано натуральное N (1N10). Заполнить матрицу порядка NN целыми числами 0, 1, 2, 3, …, N2–1 в соответствии со схемой расположения, определенной вариантом в таблице № 3.
Важное замечание. Заполнение матрицы можно организовать двумя способами. Первый (простой) – так организовать перебор индексов элементов матрицы, что будет получен нужный порядок прохода по матрице «змейкой». Второй (более сложный, но именно он может приго-диться в третьей работе): найти соотношение между значением элемента K и его индексами [i,j], то есть функцию вида F(K,N) = <i,j>, которая по номеру K элемента в змейке возвращает его координаты в матрице <i,j>; другими словами a[i,j]=K. При этом данная функция не должна использовать циклы – только элементарные арифметические действия и проверку различных условий! Построив такую функцию можно простым перебором значений K от 0 до N2–1 нахо-дить индексы для каждого K с помощью функции F и записывать в матрицу К по найденным индексам.
Решение задачи: «Заполнение массива "змейкой"»
textual
Листинг программы
function f(k,n:byte;var y:byte):byte; var x:byte; begin x:=k div n+1; if odd(x)then y:=k mod n+1 else y:=n-(k mod n); f:=x; end; var n,k,i,j:byte; a:array[1..10,1..10] of byte; begin write('n='); readln(n); for k:=0 to n*n-1 do begin i:=f(k,n,j); a[i,j]:=k; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; end.
Объяснение кода листинга программы
- Объявляются переменные:
k
- типа byte (целое число от 0 до 255)n
- типа bytei
- типа bytej
- типа bytea
- двумерный массив целых чисел от 1 до 10
- Создается функция
f
, которая принимает параметрыk
иn
и возвращает значение типа byte.- Объявляется переменная
x
типа byte - Внутри функции происходит деление
k
наn
с добавлением 1, затем происходит проверка на четность полученного значенияx
. В зависимости от результата проверки значениеy
присваивается либо остаток от деленияk
наn
, либо значениеn
минус остаток от деленияk
наn
. - Возвращается значение переменной
x
.
- Объявляется переменная
- В основном блоке программы пользователю предлагается ввести значение для переменной
n
(размерность массива). - Происходит заполнение массива
a
значениями, чтобы он представлял собойзмейку
(при котором значения увеличиваются слева направо, снизу вверх и т.д.). - После заполнения массива происходит вывод его содержимого в консоль в виде таблицы, где элементы массива разделены пробелами, и каждая строка отображается на новой строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д