Получить квадратную матрицу по образцу - Pascal (80301)
Формулировка задачи:
где нужно исправить?
Листинг программы
- const n=6;
- var a:array[1..n,1..n] of real;
- i,j:byte;
- begin
- for i:=1 to n div 2+n mod 2 do
- for j:=1 to n do begin
- if (i<=j) or (i<= n-j+1) then a[i,j]:=1
- else a[i,j]:=0; end;
- for i:=n div 2-n mod 2 to n do
- for j:=1 to n do begin
- if (i>=j) or (i<=n-j+1) then a[i,j]:=1
- else a[i,j]:=0; end;
- for i:=1 to n do begin
- for j:=1 to n do
- write(a[i,j], ' ');
- writeln;
- end;
- end.
Решение задачи: «Получить квадратную матрицу по образцу»
textual
Листинг программы
- const n=6;
- var a:array[1..n,1..n] of byte;
- i,j:byte;
- begin
- for i:=1 to n do
- begin
- for j:=1 to n do
- begin
- if ((i<=j)and(i<=n-j+1))or((i>=j)and(i>=n-j+1))
- then a[i,j]:=1 else a[i,j]:=0;
- write(a[i,j]:2)
- end;
- writeln
- end
- end.
Объяснение кода листинга программы
- Объявляется и инициализируется константа
n
со значением 6. - Объявляется массив
a
размером 6x6, заполненный значениями типа byte. - Объявляются переменные
i
иj
типа byte. - Начинается цикл
for
для переменнойi
от 1 доn
. - Внутри цикла
for
начинается вложенный циклfor
для переменнойj
от 1 доn
. - Во вложенном цикле проверяется условие: если
i
меньше или равноj
Иi
меньше или равноn-j+1
, ИЛИi
больше или равноj
Иi
больше или равноn-j+1
, то значение в элементе массиваa
с координатами [i,j] устанавливается равным 1, иначе устанавливается равным 0. - Выводится значение элемента массива
a
с отступом в 2 символа. - Когда завершается вложенный цикл
for
для переменнойj
, выводится переход на новую строку. - Когда завершается внешний цикл
for
для переменнойi
, код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д