Двумерная матрица: найти минимальную сумму из чисел стоящих на диагоналях параллельных побочной - Pascal

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

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

Дано A(6.6) Двумерная матрица из этой матрицы надо найти минимальную сумму параллельным побочной диагонали.
Листинг программы
  1. for i:=-6+1 to 6-1 do zum[i]:=0;
  2. for i:=1 to 6 do
  3. for j:=1 to 6 do z[i-j]:=z[i-j]+x[i,j];
  4. for i:=-6+1 to 6-1 do write(z[i]);
вот так нашел параллельную побочный диагонал дальше надо найти мин сумму
Листинг программы
  1. program gazya;
  2. const
  3. n=5;
  4. m=6;
  5. var a:array[1..6,1..6] of integer;
  6. min,i,j,s:integer;
  7. begin
  8. randomize;
  9. for i:=1 to 6 do
  10. begin
  11. for j:=1 to 6 do
  12. begin
  13. a[i,j]:=random(10);
  14. write(a[i,j]:2);
  15. end;
  16. writeln;
  17. end;
  18. for i:=1 to 6 do
  19. s:=s+a[i,i]+a[i,6-i+1];
  20. writeln(s);
  21. min:=a[i-m+1,m];
  22. for i:=i-m+1 to m do
  23. for j:=i-m+1 to m do
  24. if (j=i-i+1)and(a[i,j]<min) then min:=a[i,j];
  25. writeln('min: ', min);
  26. end.
примерно вот так но надо параллельным побочной диагонали. а тут просто диагонал
что не кто не может помочь?

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

textual
Листинг программы
  1. uses crt;
  2. const n=6;
  3. var a:array[1..n,1..n] of integer;
  4.     i,j,k,z,sm,mn:integer;
  5. begin
  6. randomize;
  7. for i:=1 to n do
  8.  begin
  9.   for j:=1 to n do
  10.    begin
  11.     a[i,j]:=random(20);
  12.     write(a[i,j]:3);
  13.    end;
  14.   writeln;
  15.  end;
  16. for z:=n-1 downto -n+1 do//все диагонали, удаленные от побочной на z
  17.  begin
  18.   sm:=0;
  19.   for j:=1 to n do
  20.   if (j-z>0) and (j-z<=n) then
  21.   sm:=sm+a[j-z,n-j+1];
  22.   writeln('Сумма ',n-z,' = ',sm);
  23.   if j-z=1 then mn:=sm
  24.   else if sm<mn then mn:=sm;
  25.  end;
  26. writeln('Минимальная сумма на диагоналях, параллельных побочной=',mn)
  27. end.

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

  1. Импортируется модуль crt для работы с консолью.
  2. Объявляется константа n со значением 6 для определения размера матрицы.
  3. Объявляется двумерный массив a размером n x n для хранения целых чисел.
  4. Объявляются переменные i, j, k, z, sm, mn типа integer для использования в циклах и вычислениях.
  5. Используется функция randomize для инициализации генератора случайных чисел.
  6. Для каждого элемента в матрице a[i, j] от 1 до n происходит следующее:
    • Присваивается случайное целое число от 0 до 19 элементу a[i, j].
    • Выводится значение элемента a[i, j] на экран с отступом в 3 символа.
  7. После заполнения матрицы выводится каждая строка для формирования двумерной матрицы.
  8. Выполняется цикл для каждой диагонали, параллельной главной диагонали матрицы:
    • Инициализируется переменная sm для хранения суммы значений на текущей диагонали.
    • Для каждого элемента j в диапазоне от 1 до n выполняется проверка:
      • Если (j-z) больше 0 и (j-z) меньше или равен n, выполняется следующее:
        • К сумме sm добавляется значение элемента a[j-z, n-j+1].
    • Выводится сумма значений текущей диагонали на экран.
    • Проверяется сумма на минимальное значение и обновляется переменная mn при необходимости.
  9. Выводится сообщение о минимальной сумме на диагоналях, параллельных побочной диагонали матрицы.

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


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

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

15   голосов , оценка 4 из 5

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

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

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