Если в прямоугольной матрице а размера m*n меньше половины столбцов содержит отрицательные элементы, то все элементы с нечетными номерами столбцов умножить на 10. в противном случае все отрицательные элементы матрицы возвести в квадрат.const m = 10; { строк }const n = 10; { столбцов }var a: array [1..m, 1..n] of integer; { матрица }var kol: integer; { количество столбцов с отрицательными элементами }var i, j: integer; begin randomize; for i : = 1 to m do begin for j : = 1 to n do begin a[i][j] : = random(100) - 10; { генерируем матрицу } write(a[i][j]: 5); { и выводим на консоль } end; writeln; end; kol : = 0; for j : = 1 to n do begin for i : = 1 to m do begin if a[i][j] < 0 then begin { нашли отрицательный элемент } kol : = kol + 1; { увеличиваем счетчик и переходим к следующему столбцу } break; end; end; end; writeln; writeln('отрицательные элементы содержатся в ', kol, ' столбцах'); writeln; for i : = 1 to m do begin for j : = 1 to n do begin if kol < (n div 2) then begin { если столбцов с отрицательными элементами меньше половины } { все элементы с нечетными номерами столбцов умножить на 10 } if (j mod 2) = 1 then a[i][j] : = a[i][j] * 10; end else begin { иначе } { все отрицательные элементы матрицы возвести в квадрат } if a[i][j] < 0 then a[i][j] : = a[i][j] * a[i][j]; end; end; end; for i : = 1 to m do begin for j : = 1 to n do begin write(a[i][j]: 5); { выводим результат } end; writeln; end; end.

verymam verymam    3   05.10.2019 12:40    1

Другие вопросы по теме Информатика