Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. import random
  2. # функция для красивого вывода матрицы
  3. def vivodMatrix(matrix,n,m):
  4. for i in range(n):
  5. for j in range(m):
  6. print ( "{:4f}".format(matrix[i][j]), end = "" )
  7. print()
  8. return
  9. # Функция для вычисления суммы эл ниже главной диагонали
  10. def SumOfUnder(matrix,n,m):
  11. s=0
  12. for j in range(m):
  13. for i in range (j+1,n):
  14. s+=matrix[i][j]
  15. return s
  16. # вводим размеры матрицы
  17. n = int(input('enter number N = '))
  18. m = int(input('enter number M = '))
  19. #создаем пустую матрицу размера NxM
  20. matrix = [[0] * m for x in range(n)]
  21. buffer_matrix = [[0] * m for x in range(n)]
  22. for i in range(n):
  23. for j in range(m):
  24. matrix[i][j] = float(input())
  25. buffer_matrix[i][j]=matrix[i][j]
  26. for i in range(n):
  27. for j in range(m):
  28. print("{:4f}".format(matrix[i][j]), end="")
  29. print()
  30. for i in range(n):
  31. for j in range(m):
  32. '''Углы матрицы '''
  33. if i==0 and j==0 and m!=1 and n!=0 :
  34. matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i + 1][j] + buffer_matrix[i][j] + buffer_matrix[i + 1][j+1]) / 4
  35. elif i==n and j==m and m!=1 and n!=0:
  36. matrix[i][j] = (buffer_matrix[i][j - 1] + buffer_matrix[i - 1][j] + buffer_matrix[i][j]+ buffer_matrix[i - 1][j-1] ) / 4
  37. elif i==n and j==0:
  38. matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i - 1][j] + buffer_matrix[i][j] + buffer_matrix[i - 1][j+1]) / 4
  39. elif i==0 and j == m :
  40. matrix[i][j] = (buffer_matrix[i+1][j] + buffer_matrix[i ][j-1] + buffer_matrix[i][j] + buffer_matrix[i + 1][j-1]) / 4
  41. # боковые и верхние элементы матрицы
  42. elif i==0 and j!=0 and j!=m:
  43. matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i][j] + buffer_matrix[i][j - 1] +
  44. buffer_matrix[i + 1][j + 1] + buffer_matrix[i + 1][j] + buffer_matrix[i + 1][j - 1]) / 6
  45. elif i==n and j!=0 and j!=m:
  46. matrix[i][j] = (buffer_matrix[i][j + 1] + buffer_matrix[i][j] + buffer_matrix[i][j - 1] +
  47. buffer_matrix[i - 1][j + 1] + buffer_matrix[i - 1][j] + buffer_matrix[i - 1][j - 1]) / 6
  48. elif j==0 and i!=0 and i!=n:
  49. matrix[i][j] = ( buffer_matrix[i][j] + buffer_matrix[i + 1][j] +buffer_matrix[i - 1][j]+
  50. buffer_matrix[i][j + 1] + buffer_matrix[i + 1][j + 1] + buffer_matrix[i - 1][j + 1] ) / 6
  51. elif j==m and i!=0 and i!=n:
  52. matrix[i][j] = ( buffer_matrix[i][j] + buffer_matrix[i+1][j] +buffer_matrix[i - 1][j]+
  53. buffer_matrix[i][j - 1] + buffer_matrix[i + 1][j - 1] + buffer_matrix[i - 1][j - 1] ) / 6
  54. else :
  55. matrix[i][j] = (buffer_matrix[i][j] + buffer_matrix[i][j - 1] + buffer_matrix[i][j + 1] +
  56. buffer_matrix[i - 1][j] + buffer_matrix[i - 1][j - 1] + buffer_matrix[i - 1][j + 1]+
  57. buffer_matrix[i + 1][j] + buffer_matrix[i + 1][j - 1] + buffer_matrix[i + 1][j + 1]) / 9
  58. # выводим новую матрицу
  59. print('Сглаженная матрица ')
  60. vivodMatrix(matrix,n,m)
  61. print('Сумма элиментов ниже главной диагонали {0}'.format(SumOfUnder(matrix,n,m)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement