Получить квадратную матрицу по образцу - 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, код завершается.