diff --git a/.gitignore b/.gitignore index 439a383..eb02f02 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ /2SNA_Somativa.py /AdivinharNumero.py /Aula semana 01_06 à 05_06-1.pdf -/ComparadorDeMagnitude.py /__pycache__ /nivel_dificil.py /nivel_facil.py diff --git a/ComparadorDeMagnitude.py b/ComparadorDeMagnitude.py new file mode 100644 index 0000000..7161d68 --- /dev/null +++ b/ComparadorDeMagnitude.py @@ -0,0 +1,69 @@ +import portas, trataDados + +# Dados de entrada +a = [] +b = [] + +#Entrada A +for i in range(0, 4): + a.append(trataDados.entradaBinaria("Entre com o valor de A["+str(i)+"]:","Valor inválido!")) + +#Entrada B +for i in range(0, 4): + b.append(trataDados.entradaBinaria("Entre com o valor de B[" + str(i) + "]:", "Valor inválido!")) + +# Exibir Entradas +#for i in range(0, 4): +# print("A[",i,"] = ", a[i], " => B[",i,"] = ", b[i]) + +print("a = ",a[3],a[2],a[1],a[0]) +print("b = ",b[3],b[2],b[1],b[0]) + +# Fase 1 - GT e EQ +#print("Fase 1 => GT e EQ") +gt = [] +eq = [] +for i in range(0, 4): + gt.append(portas.portaAnd(a[i], portas.portaNot(b[i]))) + eq.append(portas.portaXnor(a[i], b[i])) + +print("") + +# Fase 2 - A > B +# U10 +u10 = portas.portaAnd(gt[0], eq[1]) + +# U11 +u11 = portas.portaOr(u10, gt[1]) + +# U12 +u12 = portas.portaAnd(u11, eq[2]) + +# U13 +u13 = portas.portaOr(u12, gt[2]) + +# U14 +u14 = portas.portaAnd(u13, eq[3]) + +# U15 +u15 = portas.portaOr(u14, gt[3]) + + +# Fase 3 - A = B +# U17 +u17 = portas.portaAnd(eq[0], eq[1]) + +# U18 +u18 = portas.portaAnd(eq[2], eq[3]) + +# U19 +u19 = portas.portaAnd(u17, u18) + +# Fase 4 - A < B +# U16 +u16 = portas.portaNor(u15, u19) + +# Resultados +print("A > B => ", u15) +print("A = B => ", u19) +print("A < B => ", u16) \ No newline at end of file diff --git a/portas.py b/portas.py index 63f38c6..c3b224f 100644 --- a/portas.py +++ b/portas.py @@ -1,30 +1,30 @@ def portaAnd(x,y): - return (x*y); + return (x*y) def portaOr(x,y): if((x+y)>0): - return 1; + return 1 else: - return 0; + return 0 def portaNot(x): if(x==0): return 1 else: - return 0; + return 0 def portaNand(x,y): - return portaNot(portaAnd(x,y)); + return portaNot(portaAnd(x,y)) def portaNor(x,y): - return portaNot(portaOr(x,y)); + return portaNot(portaOr(x,y)) def portaXor(x,y): if(portaAnd(x,y) == portaOr(x,y)): - return 0; + return 0 else: - return 1; + return 1 def portaXnor(x,y): - return portaNot(portaXor(x,y)); + return portaNot(portaXor(x,y)) diff --git a/testaPortas.py b/testaPortas.py index 64409c8..74dfc72 100644 --- a/testaPortas.py +++ b/testaPortas.py @@ -1,47 +1,47 @@ -import portas; +import portas # Dados de entrada -a = [0, 0, 1, 1]; -b = [0, 1, 0, 1]; +a = [0, 0, 1, 1] +b = [0, 1, 0, 1] # Porta AND -print("Porta AND"); +print("Porta AND") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a AND b =",portas.portaAnd(a[count],b[count])); -print(""); + print("a = ",a[count]," b = ",b[count]," => a AND b =",portas.portaAnd(a[count],b[count])) +print("") # Porta OR -print("Porta OR"); +print("Porta OR") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a OR b =",portas.portaOr(a[count],b[count])); -print(""); + print("a = ",a[count]," b = ",b[count]," => a OR b =",portas.portaOr(a[count],b[count])) +print("") # Porta NOT -print("Porta NOT"); -print("a = 0 => a NOT = ",portas.portaNot(0)); -print("a = 1 => a NOT = ",portas.portaNot(1)); -print(""); +print("Porta NOT") +print("a = 0 => a NOT = ",portas.portaNot(0)) +print("a = 1 => a NOT = ",portas.portaNot(1)) +print("") # Porta NAND -print("Porta NAND"); +print("Porta NAND") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a NAND b =",portas.portaNand(a[count],b[count])); -print(""); + print("a = ",a[count]," b = ",b[count]," => a NAND b =",portas.portaNand(a[count],b[count])) +print("") # Porta NOR -print("Porta NOR"); +print("Porta NOR") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a OR b =",portas.portaNor(a[count],b[count])); -print(""); + print("a = ",a[count]," b = ",b[count]," => a OR b =",portas.portaNor(a[count],b[count])) +print("") # Porta XOR -print("Porta XOR"); +print("Porta XOR") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a XOR b =",portas.portaXor(a[count],b[count])); -print(""); + print("a = ",a[count]," b = ",b[count]," => a XOR b =",portas.portaXor(a[count],b[count])) +print("") # Porta XNOR -print("Porta XNOR"); +print("Porta XNOR") for count in range(0,4): - print("a = ",a[count]," b = ",b[count]," => a XNOR b =",portas.portaXnor(a[count],b[count])); -print(""); \ No newline at end of file + print("a = ",a[count]," b = ",b[count]," => a XNOR b =",portas.portaXnor(a[count],b[count])) +print("") \ No newline at end of file diff --git a/trataDados.py b/trataDados.py index 7c0b475..12fce3c 100644 --- a/trataDados.py +++ b/trataDados.py @@ -4,45 +4,41 @@ def entradaBinaria(txt, txtInvalido): entrada = int(input(txt)) if not 0 <= entrada <= 1: raise ValueError(txtInvalido) - except ValueError as e: + except ValueError: print(txtInvalido) else: break -return entrada; - + return entrada def entradaInt0a100(txt, txtInvalido): while True: try: entrada = int(input(txt)) if not 0 <= entrada <= 100: - raise ValueError(txtInvalido); - except ValueError as e: - print(txtInvalido); + raise ValueError(txtInvalido) + except ValueError: + print(txtInvalido) else: - break; - - return entrada; - + break + return entrada def entradaInt1a3(txt, txtInvalido): while True: try: entrada = int(input(txt)) if not 1 <= entrada <= 3: - raise ValueError(txtInvalido); - except ValueError as e: - print(txtInvalido); + raise ValueError(txtInvalido) + except ValueError: + print(txtInvalido) else: - break; - - return entrada; + break + return entrada def comparaInt(a, b): if (a>b): - retorno = ">"; + retorno = ">" elif(a