Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- # функция для красивого вывода матрицы
- def vivodMatrix(matrix,n,m):
- for i in range(n):
- for j in range(m):
- print ( "{:4f}".format(matrix[i][j]), end = "" )
- print()
- return
- # Функция для вычисления суммы эл ниже главной диагонали
- def SumOfUnder(matrix,n,m):
- s=0
- for j in range(m):
- for i in range (j+1,n):
- s+=matrix[i][j]
- return s
- # вводим размеры матрицы
- n = int(input('enter number N = '))
- m = int(input('enter number M = '))
- #создаем пустую матрицу размера NxM
- matrix = [[0] * m for x in range(n)]
- buffer_matrix = [[0] * m for x in range(n)]
- for i in range(n):
- for j in range(m):
- matrix[i][j] = float(input())
- buffer_matrix[i][j]=matrix[i][j]
- for i in range(n):
- for j in range(m):
- print("{:4f}".format(matrix[i][j]), end="")
- print()
- for i in range(n):
- for j in range(m):
- '''Углы матрицы '''
- if i==0 and j==0 and m!=1 and n!=0 :
- matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i + 1][j] + buffer_matrix[i][j] + buffer_matrix[i + 1][j+1]) / 4
- elif i==n and j==m and m!=1 and n!=0:
- matrix[i][j] = (buffer_matrix[i][j - 1] + buffer_matrix[i - 1][j] + buffer_matrix[i][j]+ buffer_matrix[i - 1][j-1] ) / 4
- elif i==n and j==0:
- matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i - 1][j] + buffer_matrix[i][j] + buffer_matrix[i - 1][j+1]) / 4
- elif i==0 and j == m :
- matrix[i][j] = (buffer_matrix[i+1][j] + buffer_matrix[i ][j-1] + buffer_matrix[i][j] + buffer_matrix[i + 1][j-1]) / 4
- # боковые и верхние элементы матрицы
- elif i==0 and j!=0 and j!=m:
- matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i][j] + buffer_matrix[i][j - 1] +
- buffer_matrix[i + 1][j + 1] + buffer_matrix[i + 1][j] + buffer_matrix[i + 1][j - 1]) / 6
- elif i==n and j!=0 and j!=m:
- matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i][j] + buffer_matrix[i][j - 1] +
- buffer_matrix[i - 1][j + 1] + buffer_matrix[i - 1][j] + buffer_matrix[i - 1][j - 1]) / 6
- elif j==0 and i!=0 and i!=n:
- matrix[i][j] = ( buffer_matrix[i][j] + buffer_matrix[i + 1][j] +buffer_matrix[i - 1][j]+
- buffer_matrix[i][j + 1] + buffer_matrix[i + 1][j + 1] + buffer_matrix[i - 1][j + 1] ) / 6
- elif j==m and i!=0 and i!=n:
- matrix[i][j] = ( buffer_matrix[i][j] + buffer_matrix[i+1][j] +buffer_matrix[i - 1][j]+
- buffer_matrix[i][j - 1] + buffer_matrix[i + 1][j - 1] + buffer_matrix[i - 1][j - 1] ) / 6
- else :
- matrix[i][j] = (buffer_matrix[i][j] + buffer_matrix[i][j - 1] + buffer_matrix[i][j + 1] +
- buffer_matrix[i - 1][j] + buffer_matrix[i - 1][j - 1] + buffer_matrix[i - 1][j + 1]+
- buffer_matrix[i + 1][j] + buffer_matrix[i + 1][j - 1] + buffer_matrix[i + 1][j + 1]) / 9
- # выводим новую матрицу
- print('Сглаженная матрица ')
- vivodMatrix(matrix,n,m)
- print('Сумма элиментов ниже главной диагонали {0}'.format(SumOfUnder(matrix,n,m)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement