Lauritabrenes / Proyecto-1

Proyecto Diseño Logico
MIT License
1 stars 0 forks source link

Tercer cuadro #14

Open Lauritabrenes opened 2 years ago

AzofeifaJ commented 2 years ago
while True:
    tmp = groups.copy()#Se realiza una copia de los grupo para manejarlos al antojo
    groups,m,marcado,parar = {},0,set(),True#Realización de declaraciones de sentencias para el recorrido, comparación y condiciones de parada de las sentencias
    l = sorted(list(tmp.keys()))
    for i in range(len(l)-1):
        for j in tmp[l[i]]:
            for k in tmp[l[i+1]]:
                res = comparar(j,k)#Inicio de la comparación de los bits de los binarios para setear su cambio
                if res[0]:
                    try:
                        groups[m].append(j[:res[1]]+'-'+j[res[1]+1:]) if j[:res[1]]+'-'+j[res[1]+1:] not in groups[m] else None 
                    except KeyError:
                        groups[m] = [j[:res[1]]+'-'+j[res[1]+1:]] 
                    parar = False
                    marcado.add(j) 
                    marcado.add(k) 
        m += 1
    no_marcados = set(aplanar_lista(tmp)).difference(marcado)#Aquellos elementos que no tienen comparativa de bits con otro binario en la matriz
    todos = todos_p.union(no_marcados)#Implicantes primos
    print("Elementos no marcados de la tabla:",None if len(no_marcados)==0 else ', '.join(no_marcados)) 
    if parar:#Cuando los minterminos no logran tener una comparación
        print("\n\nTodos los implicantes primos: ",None if len(todos_p)==0 else ', '.join(todos_p))
        break
    print("\n\n\n\nGrupo\tMinterminos\tBinarios\n%s"%('='*50))
    for i in sorted(groups.keys()):#Se agrupan los pares y sus repectivos binarios con cambios de bit 
        print("%5d:"%i) 
        for j in groups[i]:
            print("\t\t%-24s%s"%(','.join(buscar(j)),j)) 
        print('-'*50)
AzofeifaJ commented 2 years ago

Se empareja elementos de implicantes, además si no se puede simplificar más, se seleccionen los implicantes primos. Aún en desarrollo con los análisis faltantes.