0 / 0 / 0
Регистрация: 20.03.2020
Сообщений: 17

Произведение положительных элементов главной диагонали матрицы

01.12.2021, 13:40. Показов 3432. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток, коллеги! Передо мной была поставлена следующая учебная задача:

“Даны матрицы A (5×5), B (7×7), C (4×4). Вычислить значение выражения PA + PB – PC, где PA (PB, PC) — произведение положительных элементов главной диагонали матрицы A (B, C).”

Задачу было поставлено решить двумя способами: разработка консольного приложения с использованием функций классов; разработка консольного приложения с использованием класса, в том числе класса-наследника.

Обучение в моём учреждении ведётся на С++, все примеры решения подобных задач так же приведены на нём.
Я решил выбрать питон, т.к. уже знаком с ним, применял его для решения статистических задач и аналитической работы.
В качестве разработки его не использовал, подобного опыта нет.

Алгоритм решения задачи для одной матрицы я и написал, привожу его ниже.
В нём на вход с клавиатуры вводится матрица фиксированного размера и результатом выводит произведение положительных элементов главной диагонали.
Но это нужно сделать для трех матриц и в результате сделать вычисление трех этих результатов по условию задачи.
(не судите за возможный примитивный код, я исключительно решаю задачу, вопроса оптимизации не касался, корректировки и поправки приветствуются)

Проблема, следующая: задачу нужно решить с использованием функций классов - на сколько я понимаю, нужно все вычисления и считывания матриц вывести в функции, а в main только их вызывать?
Я представляю, что в C++ это будет выглядеть так, но так ли это на питоне – пока понимания нет.
Вопрос: так ли это, если да, то сколько таких функций должно быть и как они должны выглядеть?
Функция ввода матрицы, функция вычисления произведения, и функция результирующего вычисления “PA + PB – PC”, или под каждую из трех матриц должны быть свои функции?


Заранее благодарю за уделенное время! На любые непонятки дам комментарий)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
arr = [[0 for n in range(3)] for nn in range(3)] #создали и ввели список списков (матрицу) с клавиатуры
for i in range(3):
    for j in range(3):
        arr[i][j] = int(input())
arr = np.asarray(arr) #list to array
main = np.diagonal(arr) #берем центральную диагональ
more = [] #пустой лист для элементов >0
for x in main: #поиск элементов на главной диаг > 0
    if x>0:
        more.append(x)
print("матрица А :")
print(arr)
if not more: 
    print("Положительных чисел на главной диагонали нет") #если Положительных чисел на главной диагонали нет то конец
else:
    result = reduce(lambda x, y: x*y, more) #иначе перемножить все значения листа
    print("произведение положительных элементов на главной диагонали =", result)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2021, 13:40
Ответы с готовыми решениями:

Произведение положительных элементов матрицы выше главной диагонали
Определить произведение положительных элементов матрицы выше главной диагонали. Вот пока что просто написал вывод матрицы (выводится...

Найти в массиве и вывести на экран сумму элементов, лежащих выше главной диагонали, без элементов главной диагонали
найти в массиве и вывести на экран сумму элементов, лежащих выше главной диагонали, без элементов главной диагонали

В области, лежащей выше побочной диагонали найти произведение и количество положительных четных элементов
как с помощь random будет выглядеть код, подскажите пожалуйста Дан массив A(10,10). В области, лежащей выше побочной диагонали найти...

1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
01.12.2021, 16:11
soldier_ss, Если что, с numpy для каждой матрицы нахождение произведения положительных элементов главной диагонали одним оператором
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2021, 16:11
Помогаю со студенческими работами здесь

Сумма четных элементов на главной диагонали квадратной матрицы
Задание: Напишите функцию, которая находит сумму четных элементов на главной диагонали квадратной матрицы (именно чётных элементов, а не...

Найти след матрицы (сумму элементов главной диагонали)
Товарищи , подскажите, пожалуйста! Нужно найти след матрицы(сумму элементов главной диагонали), при этом размер матрицы вводит...

Найти сумму элементов каждой диагонали матрицы, параллельной главной
Дана квадратная матрица A порядка M. Найти сумму элементов каждой ее диагонали, параллельной главной (начиная с одноэлементной диагонали).

Найти сумму положительных элементов квадратной матрицы, находящихся ниже главной диагонали
Уже всё сделано, осталось только сделать условие, чтобы складывались ТОЛЬКО ПОЛОЖИТЕЛЬНЫЕ элементы квадратной матрицы, находящихся ниже...

Найдите произведение элементов матрицы, расположенных в столбце с максимальным элементом на главной диагонали
Дана квадратная матрица действительных чисел порядка k, найдите произведение элементов матрицы, расположенных в столбце с максимальным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru