Прямоугольная матрица, подматрицы сумма цифр крайних элементов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! С толкнулся вот с такой задачей:"В прямоугольной матрице выявить все подматрицы,в углах которых расположены элементы, сумма цифр которых одинакова.".Думаю над этой задачей уже дня 2, читал много форумов, но к сожалению моих знаний недостаточно чтобы хоть что нибудь понять, а работу скоро сдать нужно.Надеюсь на вашу помощь!Заранее спасибо!

Решение задачи: «Прямоугольная матрица, подматрицы сумма цифр крайних элементов»

textual
Листинг программы
  1. uses crt;
  2. const max=10;
  3. function sum(a:integer):integer;
  4. var b,s:integer;
  5. begin
  6. b:=abs(a);
  7. s:=0;
  8. while b>0 do
  9.  begin
  10.   s:=s+b mod 10;
  11.   b:=b div 10;
  12.  end;
  13. sum:=s;
  14. end;
  15. var a:array[1..max,1..max] of integer;
  16.     m,n,i,j,ii,jj,k:byte;
  17. begin
  18. randomize;
  19. repeat
  20. write('Количество строк от 2 до ',max,' m=');
  21. readln(m);
  22. until m in [2..max];
  23. repeat
  24. write('Количество столбцов от 2 до ',max,' n=');
  25. readln(n);
  26. until n in [2..max];
  27. writeln('Введите элементы матрицы,');
  28. writeln('в том числе числе минимум 4 числа с одинаковрой суммой цифр');
  29. for i:=1 to m do
  30. for j:=1 to n do
  31.  begin
  32.   write('a[',i,',',j,']=');
  33.   readln(a[i,j]);
  34.  end;
  35. clrscr;
  36. writeln('Матрица');
  37. for i:=1 to m do
  38.  begin
  39.   for j:=1 to n do
  40.   write(a[i,j]:4);
  41.   writeln;
  42.  end;
  43. k:=0;
  44. for i:=1 to m-1 do
  45. for j:=1 to n-1 do
  46. for ii:=i+1 to m do
  47. for jj:=j+1 to n do
  48. if (sum(a[i,j])=sum(a[ii,j]))and(sum(a[i,j])=sum(a[i,jj]))
  49. and(sum(a[i,j])=sum(a[ii,jj]))and(sum(a[i,j])=sum(a[ii,j])) then
  50.  begin
  51.   k:=1;
  52.   writeln('Подматрица [',i,',',j,']-[',ii,',',jj,']');
  53.  end;
  54. if k=0 then writeln('Подматриц по условию нет');
  55. end.

Объяснение кода листинга программы

В данном коде используется язык программирования Pascal ABC. Он предназначен для создания прямоугольных матриц и проверки наличия подматриц с заданными условиями. Переменные в коде:

  1. b - абсолютный значение числа a.
  2. s - сумма цифр крайних элементов.
  3. a - матрица размером m x n.
  4. m - количество строк матрицы.
  5. n - количество столбцов матрицы.
  6. i - номер строки матрицы.
  7. j - номер столбца матрицы.
  8. ii - индекс внутреннего элемента матрицы.
  9. jj - индекс внутреннего элемента матрицы.
  10. k - номер подматрицы. Код начинается с определения функции sum, которая вычисляет сумму цифр крайних элементов числа a. Затем определяется массив a размером m x n. Далее происходит чтение значений элементов матрицы с помощью функции readln. Затем идет цикл, который проверяет каждую подматрицу размером m-1 x n-1. Если сумма цифр крайних элементов подматрицы равна сумме цифр крайних элементов других подматриц, то переменная k устанавливается в 1, и выводится название подматрицы. В конце кода выводится сообщение о наличии или отсутствии подматриц, удовлетворяющих условию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы