Вопрос задан 10.05.2019 в 08:13. Предмет Информатика. Спрашивает Клиндухов Андрей.

С клавиатуры вводится матрица n*m. 1. Определить произведение всех чётных чисел в каждой строке и

записать это произведение в последний столбец. 2. Найти максимальный и минимальный элементы в каждой строке и поменять их местами 3. Повернуть матрицу на 90 градусов по часовой стрелкеПомогите пожалуйста решить в паскале
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ситникова Евгения.
Будем считать, что числа n, m заранее известны.
Делать в Паскале динамические массивы - это очень большой геморрой.
1. PROGRAM Even
var i, j, P: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
  for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
  P:=1; // произведение четных чисел
  for j:=1 to m do // цикл по столбцам
  begin 
    if (A[i, j] mod 2 = 0) then P:= P*A[i, j]; // умножаем очередное четное число
  end; 
  A[i, m] := P; // вместо последнего числа записываем произведение четных
end; 
for i:=1 to n do
  for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива 
END.

2.  PROGRAM MinMax
var i, j, Q, min, nmin, max, nmax: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
  for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
  min:=A[i, 1]; nmin:=1; max:=A[i, 1]; nmax:=1; // начальные значения
  for j:=1 to m do // цикл по столбцам
  begin  
    if (A[i, j] > max) then max:= A[i, j]; nmax = j;// устанавливаем максимум
    if (A[i, j] < min) then min:= A[i, j]; nmin = j;// устанавливаем максимум 
  end;
  Q:=A[i, nmin]; A[i, nmin]:=A[i, nmax]; A[i, nmax]:=Q; // меняем их местами
end;
for i:=1 to n do
  for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива 
END.

3. PROGRAM Povorot 
var i, j, k, Q: integer;
var array A[1..n, 1..m], B[1..m, 1..n] of integer;
BEGIN
for i:=1 to n do
  for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i=1 to m do // цикл по m строкам нового массива (их m, как столбцов в А)
begin
   for j:=1 to n do // цикл по n столбцам нового массива (как строк в А)
     B[i, j]:=A[j, n-i+1]; // формируем новый массив
end;
for i:=1 to m do
  for j:=1 to n do writeln (B[i, j]); // цикл вывода конечного массива 
END.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется использовать язык программирования Паскаль. Вот пример решения задачи на Паскале:

```pascal program MatrixOperations;

const MAX_SIZE = 100;

type Matrix = array[1..MAX_SIZE, 1..MAX_SIZE] of integer;

var matr: Matrix; n, m: integer; i, j: integer;

// Функция для нахождения произведения всех четных чисел в строке function MultiplyEvenNumbersInRow(row: array of integer; size: integer): integer; var product: integer; k: integer; begin product := 1; for k := 0 to size - 1 do begin if (row[k] mod 2 = 0) then product := product * row[k]; end; MultiplyEvenNumbersInRow := product; end;

// Процедура для нахождения максимального и минимального элементов в строке и их обмена местами procedure SwapMaxAndMinInRow(var row: array of integer; size: integer); var max, min, temp: integer; k: integer; begin max := row[0]; min := row[0]; for k := 1 to size - 1 do begin if row[k] > max then max := row[k]; if row[k] < min then min := row[k]; end; for k := 0 to size - 1 do begin if row[k] = max then row[k] := min else if row[k] = min then row[k] := max; end; end;

// Процедура для поворота матрицы на 90 градусов по часовой стрелке procedure RotateMatrix(var matr: Matrix; var n, m: integer); var temp: Matrix; i, j: integer; begin for i := 1 to n do begin for j := 1 to m do begin temp[j, n - i + 1] := matr[i, j]; end; end; matr := temp; temp := nil; temp := matr; matr := nil; matr := temp; temp := nil; temp := nil; temp := nil; end;

begin // Ввод размеров матрицы write('Введите количество строк: '); readln(n); write('Введите количество столбцов: '); readln(m);

// Ввод элементов матрицы writeln('Введите элементы матрицы:'); for i := 1 to n do begin for j := 1 to m do begin write('Матрица[', i, '][', j, ']: '); readln(matr[i, j]); end; end;

// Выполнение операций над матрицей for i := 1 to n do begin // Определение произведения всех четных чисел в строке и запись его в последний столбец matr[i, m] := MultiplyEvenNumbersInRow(matr[i], m);

// Нахождение максимального и минимального элементов в строке и их обмен местами SwapMaxAndMinInRow(matr[i], m); end;

// Поворот матрицы на 90 градусов по часовой стрелке RotateMatrix(matr, n, m);

// Вывод полученной матрицы writeln('Результат:'); for i := 1 to n do begin for j := 1 to m do begin write(matr[i, j], ' '); end; writeln; end; end. ```

Пожалуйста, обратите внимание, что в данном примере используется массив для хранения матрицы. Вы можете изменить максимальный размер матрицы, установив значение константы `MAX_SIZE` в соответствии с вашими потребностями.

Надеюсь, это поможет вам решить задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

0 0

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

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

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