Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем...

Тематика Информатика
Уровень 5 - 9 классы
матрица квадратная матрица случайные числа главная диагональ алгоритм программирование Python нули элементы матрицы
0

Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает нули во все элементы выше главной диагонали. Алгоритм не должен изменяться при изменении размеров матрицы

avatar
задан 9 дней назад

2 Ответа

0

Чтобы создать программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99] и затем заменяет все элементы выше главной диагонали на нули, можно использовать язык программирования Python. Вот пошаговое объяснение и пример кода, который реализует требуемый алгоритм:

  1. Импортируем необходимые модули: Потребуется модуль random для генерации случайных чисел.

  2. Создаем функцию для заполнения матрицы: Функция будет принимать размер матрицы и возвращать квадратную матрицу, заполненную случайными числами из заданного диапазона.

  3. Заполняем матрицу случайными числами: При помощи вложенных циклов создаем матрицу и заполняем её случайными значениями из интервала [10, 99].

  4. Заменяем элементы выше главной диагонали: Используем вложенные циклы для обхода матрицы и замены элементов выше главной диагонали на нули.

  5. Выводим матрицу: После выполнения всех операций выводим результат на экран.

Вот пример кода, который реализует описанный алгоритм:

import random

def generate_matrix(size):
    """Создает квадратную матрицу заданного размера, заполненную случайными числами [10, 99]."""
    matrix = []
    for i in range(size):
        row = [random.randint(10, 99) for _ in range(size)]
        matrix.append(row)
    return matrix

def set_upper_zero(matrix):
    """Устанавливает нули выше главной диагонали матрицы."""
    size = len(matrix)
    for i in range(size):
        for j in range(i + 1, size):
            matrix[i][j] = 0

def print_matrix(matrix):
    """Выводит матрицу на экран."""
    for row in matrix:
        print(" ".join(map(str, row)))

def main():
    size = int(input("Введите размер матрицы: "))
    matrix = generate_matrix(size)
    print("Исходная матрица:")
    print_matrix(matrix)
    set_upper_zero(matrix)
    print("\nМатрица с нулями выше главной диагонали:")
    print_matrix(matrix)

if __name__ == "__main__":
    main()

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

  • generate_matrix(size): Создает квадратную матрицу заданного размера, заполняя её случайными числами от 10 до 99. Для этого используется генератор случайных чисел random.randint(10, 99).

  • set_upper_zero(matrix): Обходит матрицу, начиная с первой строки и первого столбца, и заменяет все элементы, находящиеся выше главной диагонали (где номер столбца больше номера строки), на нули.

  • print_matrix(matrix): Форматирует и выводит матрицу в удобочитаемом виде.

  • main(): Главная функция программы. Запрашивает у пользователя размер матрицы, генерирует её, выводит исходную матрицу, затем изменяет её, устанавливая нули выше главной диагонали, и выводит измененную матрицу.

Эта программа универсальна и будет работать для любой квадратной матрицы размера, указанного пользователем.

avatar
ответил 9 дней назад
0

Для решения данной задачи можно использовать следующий алгоритм:

  1. Создаем квадратную матрицу с заданным пользователем размером (например, 5x5).
  2. Заполняем матрицу случайными числами в интервале [10,99].
  3. Проходим по всем элементам матрицы выше главной диагонали (элементы с индексами [i,j], где i < j) и заменяем их на ноль.
  4. Выводим полученную матрицу на экран.

Пример кода на Python:

import random

# Размер матрицы
n = 5

# Создаем квадратную матрицу
matrix = [[random.randint(10, 99) for _ in range(n)] for _ in range(n)]

# Заменяем нулями элементы выше главной диагонали
for i in range(n):
    for j in range(i+1, n):
        matrix[i][j] = 0

# Выводим матрицу на экран
for row in matrix:
    print(row)

При изменении размера матрицы (переменная n) алгоритм будет работать корректно и заполнять нулями все элементы выше главной диагонали.

avatar
ответил 9 дней назад

Ваш ответ

Вопросы по теме