Файл: Учреждение высшего образования московский финансовопромышленный университет "синергия".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)