Заполнить матрицу по образцу - 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.