Напишите программу, которая обнуляет все элементы квадратной матрицы, расположенные выше главной диагонали. входные данные в первой строке записаны через пробел размер квадратной матрицы n (количество строк равно количеству столбцов) ( 1 ≤ n ≤ 100 ). в следующих n строках записаны строки матрицы, в каждой – по n натуральных чисел, разделённых пробелами. выходные данные программа должна вывести матрицу, у которой все элементы выше главной диагонали нулевые, а остальные элементы такие же, как в исходной матрице.

romashinigor romashinigor    1   19.06.2019 13:40    17

Ответы
Аиляра Аиляра  02.10.2020 05:26
Program obnulenie;
var a:array[1..100,1..100] of integer;
      i,j,n:integer;
begin
writeln('Введите размер квадратной матрицы:');
readln(n);

writeln('Введите матрицу:');
for i:=1 to n do
  for j:=1 to n do
   begin
    read(a[i,j]);
    if j>i then a[i,j]:=0; 
   end;

writeln('Измененная матрица:');
for i:=1 to n do
begin
  for j:=1 to n do
    write(a[i,j],' ');
  writeln;
end;

end.
ПОКАЗАТЬ ОТВЕТЫ
юлеч2003 юлеч2003  20.01.2024 14:13
Хорошо, давайте разберемся, как решить эту задачу. Программа должна обнулить все элементы квадратной матрицы, расположенные выше главной диагонали. Для этого нам потребуется использовать циклы и условные операторы.

1. Сначала мы должны получить размерность матрицы от пользователя. Для этого считаем значение n с помощью функции input():

n = int(input("Введите размерность матрицы: "))

2. Создадим пустую матрицу размером n x n, заполненную нулями:

matrix = [[0] * n for _ in range(n)]

3. Теперь нужно заполнить матрицу значениями, которые мы получим от пользователя. Мы будем заполнять строку за строкой, затем переходить к следующей строке:

for i in range(n):
row = input("Введите значения для строки {}: ".format(i + 1)).split()
for j in range(n):
matrix[i][j] = int(row[j])

4. Теперь у нас есть заполненная матрица matrix, и мы должны обнулить ее элементы выше главной диагонали. Так как на главной диагонали элементы остаются неизменными, нам потребуется два вложенных цикла: первый для перебора строк, второй - для перебора столбцов. Если индекс столбца больше индекса строки, то мы обнуляем элемент матрицы:

for i in range(n):
for j in range(n):
if j > i:
matrix[i][j] = 0

5. Выводим полученную матрицу на экран:

for row in matrix:
print(" ".join(str(elem) for elem in row))

Вот и все, мы решили задачу. Программа считывает размерность матрицы и значения элементов, обнуляет элементы выше главной диагонали и выводит результат на экран. Надеюсь, это понятно и поможет вам!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика