Заполнить массив по заданной схеме - Pascal ABC

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

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

Заполнить массив следующим образом:

Решение задачи: «Заполнить массив по заданной схеме»

textual
Листинг программы
const n=10;
var a:array[1..n,1..n] of byte;
    m,k,i,j:byte;
begin
m:=n div 2;
k:=0;
for i:=1 to m do
case i of
1,5:for j:=1 to n do
    a[i,j]:=(i div 2)*n+j-m*(i div m);
2,4:for j:=n downto 1 do
    a[i,j]:=(m-i+1)*m-j+1+m*((i+1) div m);
3:begin
  for j:=1 to n do
  if j<=n div 2 then a[i,j]:=(i-1)*n+j
  else a[i,j]:=j-(n div 2);
  end;
end;
for i:=1 to m do
for j:=1 to n do
a[i+m,j]:=a[i,j];
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
end.

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

  1. В начале программы объявляются переменные и массив: — n — размерность массива (10); — a — двумерный массив (10х10) типа byte; — m, k, i, j — вспомогательные переменные типа byte.
  2. Задаётся значение переменной m равное n/2 (5 в данном случае), т.е. количество строк в первой половине массива, которые будут заполняться по особой схеме.
  3. Переменная k инициализируется нулём. Она нужна для вычисления значений в ячейках массива по определённой формуле.
  4. В первой половине массива (5 строк) заполняются ячейки по разным формулам в зависимости от номера строки: — при i=1,5: (i div 2)n+j-m(i div m) — в первой и пятой строке сумма номера столбца и разность между номером строки и номером строки, делённым на 2; — при i=2,4: (m-i+1)m-j+1+m((i+1) div m) — во второй и четвёртой строке разность между номером строки и номером строки, делённым на 2, и сумма номера столбца и 1, а также (i+1) div m; — при i=3: (i-1)*n+j — в третьей строке разность между номером строки и номером строки — 1 и номер столбца.
  5. Заполнение оставшихся строк массива (от i=6 до i=10) происходит по формуле a[i,j]:=a[i-m,j].
  6. Вывод значений ячеек массива на экран по 3 цифры в строке.
  7. Пример вывода: 6 7 8 9 10 3 4 5 6 7 2 3 4 5 6 1 2 3 4 5

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


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

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

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