Файл: Учреждение высшего образования московский финансовопромышленный университет "синергия".docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 19
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ ЧАСТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ФИНАНСОВО-ПРОМЫШЛЕННЫЙ УНИВЕРСИТЕТ “СИНЕРГИЯ”»
Факультет/Институт | | Информационных технологий |
| | (наименование факультета/ Института) |
Направление/специальность | | Информационные системы и технологии |
подготовки: | | (код и наименование направления /специальности подготовки) |
Форма обучения: | | очно-заочная |
| | (очная, очно-заочная, заочная) |
| | |
Отчет по лабораторной работе №6
на тему | | Работа с двумерными массивами в Python | ||
| | (наименование темы) | ||
| | | ||
по дисциплине | | Программирование на языке Python | ||
| | (наименование дисциплины) |
Обучающийся | | Греков Александр Викторович | | |
| | (ФИО) | | (подпись) |
Группа | | СвБИв-113рсоб | | |
| | | | |
Преподаватель | | Горшкова А.А. | | |
| | (ФИО) | | (подпись) |
Москва 2023 г.
Лабораторная работа №6. «Работа с двумерными массивами в Python»
Отчет по практикуму должен быть представлен в электронном виде MS Word с прикреплением файла в lms.synergy.ru в своем личном кабинете.
Отчет должен отражать этапы выполнения лабораторного практикума (куда нажимали, что делали, с добавлением скриншотов основных этапов работы), не изображения, дублирующие готовую работу
Цель работы:
сформировать навыки работы с двумерными массивами на языке Python
Задания
Задание 1. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и в каждом столбце наименьший. Вывести на экран
Задание 2.
Задана квадратная матрица. Получить транспонированную матрицу (перевернутую относительно главной диагонали) и вывести на экран
Ответы на контрольные вопросы
Задача(1)Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и в каждом столбце наименьший. Вывести на экран
from random import randint
n = 5 #int(input('размер матрицы:\n'))
a = [[randint(-99, 99) for j in range(n)] for i in range(n)]
for row in a:
print(*map('{:>3d}'.format, row))
imax = jmax = 0
rmax = []
cmin = a[0].copy()
amax = a[0][0]
for i in range(n):
if a[i][i] > amax:
imax = i
jmax = i
amax = a[i][i]
if a[i][n-i-1] > amax:
imax = i
jmax = n-i-1
amax = a[i][n-i-1]
tmax = a[i][0]
for j in range(n):
if tmax < a[i][j] :
tmax = a[i][j]
if cmin[j] > a[i][j]:
cmin[j] = a[i][j]
rmax.append(tmax)
a[n//2][n//2], a[imax][jmax] = a[imax][jmax], a[n//2][n//2]
print('максимумы строк:')
print(*rmax)
print('минимумы столбцов:')
print(*cmin)
print()
for row in a:
print(*map('{:>3d}'.format, row))
##### numpy
import numpy as np
n = 5
a = np.random.randint(-99, 99, (n, n))
print(a)
ij = np.divmod(np.argmax(np.hstack
((np.diag(a), np.diag(np.rot90(a))))), n)
i = ij[1]
j = (n - 2*i - 1) * ij[0] + i
print('максимумы строк:')
print(a.max(axis=0))
print('минимумы столбцов:')
print(a.min(axis=1))
a[i,j], a[n//2,n//2] = a[n//2,n//2], a[i,j]
print()
print(a)
Задача 2Задана квадратная матрица. Получить транспонированную матрицу (перевернутую относительно главной диагонали) и вывести на экран
# Define a matrix A
A = [[5, 4, 3],
[2, 4, 6],
[4, 7, 9],
[8, 1, 3]]
# Define an empty matrix of reverse order
transResult = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
# Use nested for loop on matrix A
for a in range(len(A)):
for b in range(len(A[0])):
transResult[b][a] = A[a][b] # store transpose result on empty matrix
# Printing result in the output
print("The transpose of matrix A is: ")
for res in transResult:
print(res)