Прямоугольная матрица, подматрицы сумма цифр крайних элементов - Pascal ABC
Формулировка задачи:
Доброго времени суток! С толкнулся вот с такой задачей:"В прямоугольной матрице выявить все подматрицы,в углах которых расположены элементы, сумма цифр которых одинакова.".Думаю над этой задачей уже дня 2, читал много форумов, но к сожалению моих знаний недостаточно чтобы хоть что нибудь понять, а работу скоро сдать нужно.Надеюсь на вашу помощь!Заранее спасибо!
Решение задачи: «Прямоугольная матрица, подматрицы сумма цифр крайних элементов»
textual
Листинг программы
uses crt;
const max=10;
function sum(a:integer):integer;
var b,s:integer;
begin
b:=abs(a);
s:=0;
while b>0 do
begin
s:=s+b mod 10;
b:=b div 10;
end;
sum:=s;
end;
var a:array[1..max,1..max] of integer;
m,n,i,j,ii,jj,k:byte;
begin
randomize;
repeat
write('Количество строк от 2 до ',max,' m=');
readln(m);
until m in [2..max];
repeat
write('Количество столбцов от 2 до ',max,' n=');
readln(n);
until n in [2..max];
writeln('Введите элементы матрицы,');
writeln('в том числе числе минимум 4 числа с одинаковрой суммой цифр');
for i:=1 to m do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
clrscr;
writeln('Матрица');
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
k:=0;
for i:=1 to m-1 do
for j:=1 to n-1 do
for ii:=i+1 to m do
for jj:=j+1 to n do
if (sum(a[i,j])=sum(a[ii,j]))and(sum(a[i,j])=sum(a[i,jj]))
and(sum(a[i,j])=sum(a[ii,jj]))and(sum(a[i,j])=sum(a[ii,j])) then
begin
k:=1;
writeln('Подматрица [',i,',',j,']-[',ii,',',jj,']');
end;
if k=0 then writeln('Подматриц по условию нет');
end.
Объяснение кода листинга программы
В данном коде используется язык программирования Pascal ABC. Он предназначен для создания прямоугольных матриц и проверки наличия подматриц с заданными условиями. Переменные в коде:
- b - абсолютный значение числа a.
- s - сумма цифр крайних элементов.
- a - матрица размером m x n.
- m - количество строк матрицы.
- n - количество столбцов матрицы.
- i - номер строки матрицы.
- j - номер столбца матрицы.
- ii - индекс внутреннего элемента матрицы.
- jj - индекс внутреннего элемента матрицы.
- k - номер подматрицы. Код начинается с определения функции sum, которая вычисляет сумму цифр крайних элементов числа a. Затем определяется массив a размером m x n. Далее происходит чтение значений элементов матрицы с помощью функции readln. Затем идет цикл, который проверяет каждую подматрицу размером m-1 x n-1. Если сумма цифр крайних элементов подматрицы равна сумме цифр крайних элементов других подматриц, то переменная k устанавливается в 1, и выводится название подматрицы. В конце кода выводится сообщение о наличии или отсутствии подматриц, удовлетворяющих условию.