Заполнение матрицы змейкой - Pascal (251471)

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

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

Заполните матрицу, содержащую N строк и M столбцов. 1 6 7 12 2 5 8 11 3 4 9 10 заполнять по системе "змейкой" от 1 до N*M

Решение задачи: «Заполнение матрицы змейкой»

textual
Листинг программы
const
  max = 19;
 
var
  a: array[1..max, 1..max] of integer;
  i, j, n, m: integer;
 
begin
  repeat
    write('n in [1..', max, '];  n = ');
    readln(n)
  until n in [1..max];
  repeat
    write('m in [1..', max, '];  m = ');
    readln(m)
  until m in [1..max];
  for i := 1 to n do
    begin
      for j := 1 to m do
        begin
          if odd(j)
            then a[i, j] := (j - 1) * n + i
            else a[i, j] := j * n - i + 1;
          write(a[i, j] :4)
        end;
      writeln
    end;
  readln
end.

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

  1. В первой строке объявлена константа max, которая определяет размер матрицы.
  2. Далее объявлена сама матрица a размером max x max.
  3. Затем объявлены четыре переменные: i, j, n, m, которые будут использоваться в цикле.
  4. Цикл repeat выполняется до тех пор, пока не будет введено корректное значение для n в диапазоне от 1 до max.
  5. Цикл repeat выполняется до тех пор, пока не будет введено корректное значение для m в диапазоне от 1 до max.
  6. Два вложенных цикла for используются для заполнения матрицы a.
  7. Если j - нечетное число, то элемент a[i, j] заполняется значением (j-1)*n+i.
  8. Если j - четное число, то элемент a[i, j] заполняется значением j*n-i+1.
  9. Значение каждого элемента a[i, j] выводится на экран с помощью функции write.
  10. После завершения вложенных циклов выводится символ новой строки writeln.
  11. После завершения циклов repeat программа ожидает ввода пользователя с помощью функции readln.

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

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