Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2017 08:35:41

IrinaOgorodnikova
Зарегистрирован: 2017-12-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста!

Добрый день ребята!
Помогите, пожалуйста, в питоне работаю недавно. Прошу не кидаться тапками :-)
Необходимо осуществить последовательный перебор по связности метода компоновки.
Есть код, который считывает файл и по нему строит 2 матрицы. По первой матрице и нужно организовать перебор.
Все задание звучало так: “Считать файл списка соединений, по нему построить матрицу ВГС и ГЭК, визуализировать и осуществить алгоритм по нажатию кнопки”
https://studopedia.ru/4_5322_posledovatelniy-algoritm-komponovki-po-svyaznosti.html здесь есть описание алгоритма.
Код немного поправила и по-тихоньку продвигаюсь с компоновкой

from tkinter import *
from tkinter.filedialog import *
import fileinput
import re
import numpy as np



def _open():
op = askopenfilename()
for l in fileinput.input(op):
txt.insert(END,l)

#выбираем из текста только элементы
txt2=
txt3=
txt4=
w=
def printer(event):
letter = txt.get(1.0,END)
for line in letter.split(';'):
txt2.append((re.findall(r'(\w*)\(.*?\)', line)))
matrix.insert(END,mmm(txt2))
elems = mmm(txt2)#список элементов без повторений
elems2 = list(filter(None, txt2))#список элементов по строкам
#print(elems2)
#print('mmm')
#print(mmm(txt2))
#print(txt2)#список элементов по строкам
letter2 = txt.get(1.0,END)
#print(letter2.split(';\n'))
for line in letter2.split('\n'):
txt3.append((re.findall(r'^\w+', line)))
graf.insert(END,mmm(txt3))
#print(txt3)
txt4 = mmm(txt3) #список узлов
#txt4.insert(0, ‘ ’)
#print(txt4)
#res = list(zip(txt4, txt2))
#print(res)# в каком узле какие элементы
#graf.insert(END,res)
p0=
p1=
p3=
for i in elems:
for j in elems2:
p2 = j.count(i)
if p2>0:
p0.append(1)
else:
p0.append(0)
p1 = chunks(p0,len(elems))
p3=np.transpose(p1) #транспонирование матрицы
print(p3)
print('–')
print(p1)
print('–')

s = 0 # сумма
t = # временная матрица
m3 = # конечная матрица
if len(p3) != len(p1):
print
“Матрицы не могут быть перемножены”
else:
r1 = len(p1) # количество строк в первой матрице
c1 = len(p1) # Количество столбцов в 1
r2 = c1 # и строк во 2ой матрице
c2 = len(p3) # количество столбцов во 2ой матрице
for z in range(0, r1):
for j in range(0, c2):
for i in range(0, c1):
if i==j==z:
s = 0
else:
s = s + p1 * p3
t.append(s)
s = 0
m3.append(t)
t =



obbs2 = obbs(p1, elems) #строим матрицу
while len(txt4)!=len(obbs2):
txt4.insert(0, ‘ ’)


#print(obbs2)
print(“Матрица ГЭК”)
print(txt4)
for i in obbs2:
w.insert(END,str(i))
print(i)

#print(len(p0))
print('**')

obbs3 = obbs(m3,elems)


print(“Матрица ВГС”)
print(elems)
for i in obbs3:
print(i)
print('**')

#компоновка
r=
a=0
max=0
b = 0
for i in obbs2:
g=obbs2
a=a+1
for j in g:
if j==1:
s=s+1
if (s>=max):#расчет максимального
max=s
b = b + 1#какая строка будет максимальной
print(s)
print(g)
s=0
print(max)
print (b)
print ('++')

“”“a = txt2
def variants(depth):
s = 0
if depth == 1:
for head in a:
yield head
else:
for head in a:
for tail in variants(depth - 1):
# print(head + tail)
yield head + tail
s += s + 1
# print(s)

for itm in (variants(2)):
print(”*“, itm)”“”





def obbs(l,l1):
for i in range(len(l)):
l.insert(0,l1)
return l

#деление
def chunks(lst, chunk_count):
chunk_size = len(lst) // chunk_count
return [lst for i in range(0, len(lst), chunk_size)]



def f(l):
n =
for i in l:
if i not in n:
n.append(i)
return n

def mmm(l):
n =
for i in l:
for j in i:
if j not in n:
n.append(j)
return n


root = Tk()
root.state('zoomed')

m = Menu(root)
root.config(menu=m)

fm = Menu(m)
m.add_cascade(label=“File”,menu=fm)
fm.add_command(label=“Открыть”,command=_open)
# считаный файл
txt = Text(root,width=40,height=15,font=“12”)
txt.place(x=10, y=20, height=500, width=350, bordermode=OUTSIDE)
#Элементы
matrix = Text(root,width=40,height=15,font=“12”)
matrix.place(x=10, y=540, height=50, width=350, bordermode=OUTSIDE)
#Соединительные ус-ва
graf = Text(root,width=40,height=15,font=“12”)
graf.place(x=10, y=620, height=100, width=350, bordermode=OUTSIDE)
w = Text(root,width=40,height=15,font=“12”)
w.place(x=380, y=20, height=500, width=370, bordermode=OUTSIDE)
but = Button(root)
but = “Элементы”
but.bind(“<Button-1>”,printer)
but.place(x=390, y=600, height=50, width=80, bordermode=OUTSIDE)


root.mainloop()


Прикрепляю файл внизу

Отредактировано IrinaOgorodnikova (Дек. 26, 2017 10:16:03)

Прикреплённый файлы:
attachment shema7_cl90.NET (479 байт)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version