Матрица: заполнение - Pascal

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

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

Как заполнить квадратную матрицу, таким способом (дана при n = 5):

Решение задачи: «Матрица: заполнение»

textual
Листинг программы
uses crt;
var a:array[1..20,1..20]of integer;
    n,i,j:integer;
    x,y,number,add,direction:integer;
begin
clrscr;
write('n=');readln(n);
x:=n+1;
y:=n;//по вертикали
number:=1;//номера по порядку
Add:=n;//длина пути
direction:=-1;//напраление, минус влево и вверх, + вправо и вниз
while (add<>0) do//пока не конец маршрута
begin
  i:=0;
  while (i<>Add) do//пока не конец по горизонтали
    begin
    x:=x+direction;
    a[y,x]:=number;
    number:=number+1;
    i:=i+1;
    end;
  i:=0;
  Add:=Add-1;
  while (i<>Add) do//пока не конец по вертикали
    begin
    y:=y+direction;
    a[y,x]:=number;
    number:=number+1;
    i:=i+1;
    end;
  direction:=direction*(-1);//меняем знак
end;
for i:=1 to n do
   begin
     for j:=1 to n do
     write(a[i,j]:4);
     writeln;
   end;
readln
end.

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

  1. Объявлены переменные: n, i, j, x, y, number, add, direction и массив a размером 20x20.
  2. Пользователю предлагается ввести значение переменной n.
  3. Значение переменной n сохраняется в переменной x, а y устанавливается равным n.
  4. Инициализируются переменные number, add и direction.
  5. Запускается цикл while, который выполняется до тех пор, пока add не станет равным 0.
  6. Внутри цикла while запускается вложенный цикл while, который выполняет заполнение матрицы a по горизонтали.
  7. Значение переменной direction меняется на противоположное, что меняет направление движения.
  8. После окончания вложенного цикла while запускается цикл while, который выполняет заполнение матрицы a по вертикали.
  9. После окончания цикла while выводится заполненная матрица a.
  10. Пользователю предлагается ввести значение для завершения программы.

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


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

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

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