Заполнить матрицу по образцу - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д