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

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

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

Определить количество классов эквивалентных строк данной прямоугольной матрицы. Строки считать эквивалентными, если равны суммы их элементов.

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

textual
Листинг программы
const
  nmax=20;
var
  a: array[1..nmax,1..nmax] of integer;
  b: array[1..nmax] of integer;
  i,j,k,n,m: byte;
  sum,tmp: integer;
begin
  write('Введите размеры массива n, m: ');
  readln(n,m);
  writeln('Исходный массив:');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      a[i,j]:=random(3);//маленький диапазон взят для наглядности
      write(a[i,j]:3);
    end;
    writeln;
  end;
  writeln;
  for i:=1 to n do
  begin
    sum:=0;
    for j:=1 to m do
      sum:=sum+a[i,j];
    b[i]:=sum;
  end;
  for i:=2 to n do
    for j:=n downto i do
    if b[j-1]>b[j] then
    begin
      tmp:=b[j-1];
      b[j-1]:=b[j];
      b[j]:=tmp;
    end;
  writeln('Упорядоченные суммы строк:');
  for i:=1 to n do write(b[i],' ');
  writeln;
  k:=1;
  for i:=2 to n do
    if b[i-1]<>b[i] then inc(k);
  writeln(k,' классов эквивалентных строк в массиве');
end.

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

  1. Объявлены переменные: nmax, a, b, i, j, k, n, m, sum, tmp (строки 1-10)
  2. Введен размер матрицы n и m (строка 11)
  3. Выведена исходная матрица (строки 12-17)
  4. Просуммированы элементы каждой строки и сохранены в массиве b (строки 18-23)
  5. Отсортированы элементы массива b в порядке возрастания (строки 24-27)
  6. Выведены отсортированные суммы строк (строка 28)
  7. Инициализируется переменная k=1 (строка 29)
  8. Проверяется различие между соседними элементами массива b, и при наличии различия увеличивается значение переменной k (строки 30-32)
  9. Выводится значение переменной k - количество классов эквивалентных строк (строка 33)

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


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

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

15   голосов , оценка 3.733 из 5
Похожие ответы