Сформировать квадратную матрицу и подсчитать сумму заданных элементов - Pascal
Формулировка задачи:
Буду очень благодарна.
Дано чётное натуральное n>9 и целое k. Создать квадратную матрицу порядка n, где элементы случайные числа.
Вычислить сумму элементов, отмеченных синим цветом (в примере n=6).
* * * k k k
* * * k k k
* * * k k k
k k k * * *
k k k * * *
k k k * * *
Решение задачи: «Сформировать квадратную матрицу и подсчитать сумму заданных элементов»
textual
Листинг программы
const nmax=20;
var a: array[1..nmax,1..nmax] of integer;
n,k,p,i,j,s: integer;
begin
randomize;
repeat
write('Введите размер матрицы, четное число от 10 до ',nmax,' n=');
readln(n);
until (n in [10..nmax])and(n mod 2=0);
write('Введите целое число k=');
readln(k);
writeln('Матрица');
p:=n div 2;
s:=0;
for i:=1 to n do
begin
for j:=1 to n do
begin
if((i<=p)and(j>p))or((i>p)and(j<=p)) then a[i,j]:=k
else
begin
a[i,j]:=random(10);
s:=s+a[i,j];
end;
write(a[i,j]:4);
end;
writeln;
end;
writeln('Сумма в выделенной части матрицы=',s);
end.
Объяснение кода листинга программы
- Переменная
nmaxустанавливается равной 20. - Создается переменная
a, которая представляет собой массив целых чисел размером от 1 доnmaxна 1 доnmax. - Определяются переменные
n,k,p,i,jиs, которые будут использоваться в цикле. - Используется функция
randomize, чтобы инициализировать генератор случайных чисел. - Запускается цикл
repeat, который будет выполняться до тех пор, пока не будет введено четное число от 10 доnmaxиnне будет делиться на 2 без остатка. - Внутри цикла
repeatзапрашивается размер матрицы и числоk. - Вычисляется среднее значение
pпутем деленияnна 2. - Инициализируется переменная
sзначением 0. - Запускается внутренний цикл
for, который будет выполняться для каждого элемента матрицыa. - Внутри внутреннего цикла проверяется условие: если
iменьше или равноpиjбольшеp, или еслиiбольшеpиjменьше или равноp, то присваивается значениеkэлементуa[i,j]. - Если условие не выполняется, то генерируется случайное число от 1 до 10 и присваивается элементу
a[i,j]. - Значение
sувеличивается на сумму элементов матрицыa. - Выводится значение
a[i,j]с помощью функцииwrite. - Выводится символ новой строки с помощью функции
writeln. - Внутренний цикл завершается.
- Выводится сумма элементов матрицы
aв выделенной части с помощью функцииwriteln. - Цикл
repeatзавершается.