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