Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить Python!!!!

Дмитрий . Знаток (334), закрыт 2 года назад
С клавиатуры вводится вещественная матрица А NxN (N<=40).
1. Найти максимальный элемент под главной диагональю.
2. Найти номер столбца первого элемента, равного нулю.
3. Найти минимальный элемент к-го столбца матрицы.
4. Переставить местами k-ый и l-ый столбцы матрицы.
5. Найти произведение элементов на главной и побочной диагоналях матрицы.
6. Отсортировать побочную диагональ по возрастанию элементов.
7. Поменять местами минимальный и максимальный элементы матрицы.
8. Составить одномерный массив из средних арифметических значений положительных элементов четных столбцов матрицы.
Лучший ответ
Дмитрий Филюшкин Мудрец (12563) 2 года назад
Здравствуйте, Дим!
Вот ответ для Вас от меня:
1. В виде одного файла
2. Ниже - в виде текста
  
N = int(input("N="))

# Ввожу матрицу вещественных чисел
A = []
for y in range(N):
A = A + [[]] # Добавляю новую строку в матрицу
for x in range(N):
f = float(input("A["+str(y)+"]["+str(x)+"]="))
A[y] = A[y]+[f]

# Вывожу матрицу на экран
print("Исходная матрица:")
for y in range(N):
for x in range(N):
print("\t",A[y][x],end="")
print()

# Ищу максимальный элемент под главной диагональю
max_A = 0
for y in range(N):
for x in range(N):
if y>x and A[y][x]>max_A: # Если y>x - тогда A[y][x] находится под главной диагональю
max_A = A[y][x]
print("1.Максимальный элемент под главной диагональю:",max_A)

# Ищу номер первого столбца, в котором есть нулевой элемент
finded_zero = False # Признак, что найден нулевой элемент
num_col_zero = -1 # Номер столбца с нулевым элементом
for x in range(N):
for y in range(N):
if A[y][x] == 0:
# Нашёл столбец с нулевым элементом
num_col_zero = x
finded_zero = True
break # Выхожу из цикла
if finded_zero:
break
if finded_zero:
print("2.Номер столбца первого элемента, равного нулю:",num_col_zero+1)
else:
print("2.Элемент, равный нулю, не найден.")

# Ищу минимальный элемент k-го столбца
k = int(input("Введите номер столбца k="))
min_A_k = A[0][k-1]
for y in range(N):
if A[y][k-1] min_A_k = A[y][k-1]
print("3.Минимальный элемент",k,"столбца:",min_A_k)

# Переставляю местами k-й и l-й столбцы местами
l = int(input("Введите номер столбца l="))
for y in range(N):
buf = A[y][l-1]
A[y][l-1] = A[y][k-1]
A[y][k-1] = buf

# Вывожу матрицу на экран
print("4.Переставил местами",k,"и",l,"столбцы матрицы:")
for y in range(N):
for x in range(N):
print("\t",A[y][x],end="")
print()

# Вычисляю произведение элементов главной и побочной диагонали
mul = 1 # Для начала произведение равно единице
for i in range(N):
mul = mul * A[i][i]
for i in range(N):
if N-1-i != i: # Центральный элемент матрицы второй раз не применяю
mul = mul * A[N-1-i][i]
print("5.Произведение элементов на главной и побочной диагоналях матрицы:",mul)

далее - в комментарии
Дмитрий ФилюшкинМудрец (12563) 2 года назад
 продолжение...

# Сортирую элементы побочной диагонали матрицы
for i in range(N):
for k in range(i+1,N):
if A[N-1-i][i]>A[N-1-k][k]:
buf = A[N-1-i][i]
A[N-1-i][i] = A[N-1-k][k]
A[N-1-k][k] = buf

print("6.Отсортировал элементы побочной диагонали матрицы:")
for y in range(N):
for x in range(N):
print("\t",A[y][x],end="")
print()

# Ищу максимальный и минимальный элементы матрицы
# Для начала максимальным и минимальным элементом матрицы считаю самое первое число в матрице
A_max = A[0][0]
A_min = A[0][0]
for y in range(N):
for x in range(N):
if A[y][x] > A_max:
A_max = A[y][x]
if A[y][x] < A_min:
A_min = A[y][x]

далее - ещё в комментарии
Дмитрий ФилюшкинМудрец (12563) 2 года назад
 # Заменяю максимальный элемент матрицы на минимальный и минимальный на максимальный   
for y in range(N):
for x in range(N):
if A[y][x] == A_max:
A[y][x] = A_min
elif A[y][x] == A_min:
A[y][x] = A_max

# Вывожу матрицу на экран
print("7.Поменял местами максимальный и минимальный элементы матрицы:")
for y in range(N):
for x in range(N):
print("\t",A[y][x],end="")
print()

дальше - в следующем комментарии
Дмитрий ФилюшкинМудрец (12563) 2 года назад
 # Вычисляю среднее арифметическое в столбцах с чётными номерами для положительных    
# элементов матрицы
array = []
for x in range(1,N,2):
summ = 0 # Для начала сумма равна нулю
for y in range(N):
if A[y][x] > 0:
summ = summ + A[y][x]
average = summ / N # Вычисляю среднее арифметическое
array.append(average) # Добавляю в массив среднее арифметическое

print("8.Одномерный массив из средних арифметических значений положительных элементов четных столбцов матрицы:",array)
Дмитрий .Знаток (334) 2 года назад
Спасибо огромное)))))
Дмитрий Филюшкин Мудрец (12563) Пожалуйста, Дим!
Остальные ответы
Абадон Громов Оракул (69132) 2 года назад
Найди минимальньіе наведения , там есть весь алгоритм
Похожие вопросы