Заполнение массива "змейкой" - Pascal

Узнай цену своей работы

Формулировка задачи:

Дано натуральное N (1N10). Заполнить матрицу порядка NN целыми числами 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.

Объяснение кода листинга программы

  1. Объявляются переменные:
    • k - типа byte (целое число от 0 до 255)
    • n - типа byte
    • i - типа byte
    • j - типа byte
    • a - двумерный массив целых чисел от 1 до 10
  2. Создается функция f, которая принимает параметры k и n и возвращает значение типа byte.
    • Объявляется переменная x типа byte
    • Внутри функции происходит деление k на n с добавлением 1, затем происходит проверка на четность полученного значения x. В зависимости от результата проверки значение y присваивается либо остаток от деления k на n, либо значение n минус остаток от деления k на n.
    • Возвращается значение переменной x.
  3. В основном блоке программы пользователю предлагается ввести значение для переменной n (размерность массива).
  4. Происходит заполнение массива a значениями, чтобы он представлял собой змейку (при котором значения увеличиваются слева направо, снизу вверх и т.д.).
  5. После заполнения массива происходит вывод его содержимого в консоль в виде таблицы, где элементы массива разделены пробелами, и каждая строка отображается на новой строке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы