Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os.path
- def clear():
- os.system(['clear','cls'][os.name == 'nt'])
- def countDet (items):
- if len(items) == 1:
- return items[0][0]
- else:
- determ = 0
- for i in range (len(items[0])):
- determ += items[0][i]*countDet(minor(items,0,i))*pow(-1,i)
- return determ
- def minor (items, i, j):
- minor = []
- for k in items:
- minor += [k[:]]
- minor.pop(i)
- for i in minor:
- i.pop(j)
- return minor
- def setToFile(name):
- print('Заполним матрицу (размер 3х3):\n')
- f = open(name, 'w')
- for i in range(3):
- f.write(input('Ведите елементы '+ str(i+1)+ '-ой строки\n')+'\n')
- f.close()
- class Matr :
- def __init__(self):
- self.size = (3, 3)
- self.items = [[0 for i in range(self.size[0])] for i in range(self.size[1])]
- self.determ = 0
- self.maxItem = 0
- self.minItem = 0
- self.dioSum = 0
- def setItems (self, name):
- matr = open(name, 'r')
- stritems = matr.read().splitlines()
- for i in range(len(stritems)):
- stritems[i]=stritems[i].split()
- for i in range(self.size[0]):
- for j in range(self.size[1]):
- self.items[i][j] = int(stritems[i][j])
- matr.close()
- def setDet(self):
- self.determ = countDet(self.items)
- def setMaxMin(self):
- self.maxItem = self.items[0][0]
- self.minItem = self.items[0][0]
- for i in self.items:
- mx = max(i)
- mn = min(i)
- if mx > self.maxItem:
- self.maxItem = mx
- if mn < self.minItem:
- self.minItem = mn
- def setDioSum(self):
- for i in range(self.size[0]):
- self.dioSum = self.dioSum + self.items[i][i]
- def printItems (self):
- for i in range(self.size[0]):
- for j in range(self.size[1]):
- print(format(self.items[i][j], '4d'), end = '')
- print()
- def reWrite (self, name):
- matr = open(name, 'w')
- for i in self.items:
- matr.write(' '.join(map(str,i))+'\n')
- matr.close()
- def changeItem (self, i, j, newitem):
- self.items[i-1][j-1] = newitem
- self.setMaxMin()
- self.setDioSum()
- self.setDet()
- def getItem(self, i, j):
- return self.items[i-1][j-1]
- while True:
- name = input('Введите имя файла, в который запишим матрицу:\n')
- setToFile(name)
- A = Matr()
- A.setItems(name)
- A.setMaxMin()
- A.setDioSum()
- A.setDet()
- clear()
- print('Сведенья о матрице собраны.')
- while True:
- variant = input('(1)Отпечатать матрицу\n(2)Показать определитель\n(3)Показать суму елементов главной диоганали\n(4)Показать максимальный и минимальный елемент\n(5)Показать елемент\n(6)Заменить елемент и перезаписать матрицу\n(7)Перейти к работе с новой матрицей\n')
- if variant == '1':
- clear()
- A.printItems()
- continue
- elif variant == '2':
- clear()
- print('det = ',A.determ)
- continue
- elif variant == '3':
- clear()
- print('dioSum = ',A.dioSum)
- continue
- elif variant == '4':
- clear()
- print('Max = ',A.maxItem)
- print('Min = ',A.minItem)
- continue
- elif variant == '5':
- clear()
- i=int(input(''))
- j=int(input('Введите строку:)'))
- print(A.getItem(i,j))
- continue
- elif variant == '6':
- clear()
- i=int(input(''))
- j=int(input(''))
- new=int(input(''))
- A.changeItem(i,j,new)
- A.reWrite(name)
- print('Элемент заменет, матрица перезаписана.\n')
- continue
- elif variant == '7':
- clear()
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement