Заполнить матрицу по образцу - Free Pascal (523)
Формулировка задачи:
Разработать такую программу которая в двухмерном массиве заполнит числами (1,2,3........) по вертикали. Операторы для работы должны быть в цикле.(Фри паскаль) Заранее огромное спасибо!!!!!!!!!!!!!
Решение задачи: «Заполнить матрицу по образцу»
textual
Листинг программы
uses crt; const n=10; var a:array[1..n,1..n] of integer; i,j,k:integer; begin clrscr; k:=0; for j:=1 to n do begin for i:=1 to n do if ((j<i)and(j<n-i+1))or((j>i)and(j>n-i+1)) then begin k:=k+1; a[i,j]:=k; end else a[i,j]:=0; end; writeln; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; readln end.
Объяснение кода листинга программы
- Установка начального значения переменной
k
равным 0. - Два вложенных цикла
for
для заполнения матрицы. - Условие внутри вложенных циклов проверяет, является ли элемент
i
меньше элементаj
и одновременно меньше значенияn-i+1
(для диагонали с положительным наклоном) или больше значенияn-i+1
(для диагонали с отрицательным наклоном). - Если условие выполняется, то значение переменной
k
увеличивается на 1 и элемент матрицыa[i,j]
присваивается значение переменнойk
. - Если условие не выполняется, то элемент матрицы
a[i,j]
присваивается значение 0. - Цикл
for
для вывода значений матрицыa
. - Внутри цикла
for
используется функцияwrite
для вывода каждого элемента матрицыa
. - Цикл
for
завершается вызовом функцииwriteln
. - Программа ожидает ввода пользователя с помощью функции
readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д