Вопрос задан 21.07.2023 в 03:27. Предмет Информатика. Спрашивает Воронецкий Макс.

Помогите написать программу на паскале!!!!!!!!!!!!!!!!!!!!!!!!! Дана прямоугольная матрица

размером . Определить номер строки, сумма элементов которой максимальна, и поменять местами эту строку и последнюю строку матрицы. Если данная строка оказалась последней, выдать на экран сообщение, о том, что менять строки местами не нужно.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Латфуллин Руслан.

На входе вводим с клавиатуры размерность массива: n строк и m столбцов.

Первые два вложенных цикла - это ввод двумерного массива с помощью датчика случайных чисел randomize.

Далее во вложенных циклах ищем максимальную сумму элементов по строкам и запоминаем номер строки в переменную k.

Строку с выводом s и k писать не нужно.

Далее один цикл обмена к-той строки и последней.

Последние вложенные циклы выводят изменённый массив.

Прежде чем выводить массив нужно поставить поверку:

If k=m then write(‘Менять строки местами не нужно’) else begin и последние два вложенных цикла.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот программа на языке Pascal, которая решает задачу:

pascal
program MaxSumRowSwap; const MAX_ROWS = 10; // Максимальное количество строк матрицы MAX_COLS = 10; // Максимальное количество столбцов матрицы type TMatrix = array[1..MAX_ROWS, 1..MAX_COLS] of Integer; var matrix: TMatrix; rows, cols: Integer; procedure InputMatrix(var matrix: TMatrix; rows, cols: Integer); var i, j: Integer; begin writeln('Введите элементы матрицы:'); for i := 1 to rows do begin for j := 1 to cols do read(matrix[i, j]); readln; end; end; procedure SwapRows(var matrix: TMatrix; cols: Integer; row1, row2: Integer); var temp: Integer; j: Integer; begin for j := 1 to cols do begin temp := matrix[row1, j]; matrix[row1, j] := matrix[row2, j]; matrix[row2, j] := temp; end; end; function FindMaxSumRow(const matrix: TMatrix; rows, cols: Integer): Integer; var i, j, maxSum, maxSumRow: Integer; currentSum: Integer; begin maxSumRow := 1; maxSum := 0; for i := 1 to rows do begin currentSum := 0; for j := 1 to cols do currentSum := currentSum + matrix[i, j]; if currentSum > maxSum then begin maxSum := currentSum; maxSumRow := i; end; end; Result := maxSumRow; end; procedure OutputMatrix(const matrix: TMatrix; rows, cols: Integer); var i, j: Integer; begin for i := 1 to rows do begin for j := 1 to cols do write(matrix[i, j]:4); writeln; end; end; var maxSumRow: Integer; begin writeln('Введите количество строк и столбцов матрицы (не более ', MAX_ROWS, 'x', MAX_COLS, '):'); readln(rows, cols); if (rows < 1) or (rows > MAX_ROWS) or (cols < 1) or (cols > MAX_COLS) then begin writeln('Некорректный размер матрицы.'); exit; end; InputMatrix(matrix, rows, cols); maxSumRow := FindMaxSumRow(matrix, rows, cols); writeln('Матрица до замены строк:'); OutputMatrix(matrix, rows, cols); if maxSumRow < rows then begin writeln('Меняем строку ', maxSumRow, ' с последней строкой.'); SwapRows(matrix, cols, maxSumRow, rows); end else writeln('Строка ', maxSumRow, ' уже является последней. Менять строки местами не нужно.'); writeln('Матрица после замены строк:'); OutputMatrix(matrix, rows, cols); end.

Программа позволяет ввести прямоугольную матрицу заданного размера, определяет номер строки с максимальной суммой элементов и меняет эту строку с последней, если это необходимо. Если максимальная сумма в последней строке, программа сообщит, что замена не требуется.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос