Inclusão Comparador de Magnitude

This commit is contained in:
Rafael Passos Guimarães 2020-07-09 14:00:10 -03:00
parent b607a62adc
commit 1da5ec1355
5 changed files with 119 additions and 55 deletions

1
.gitignore vendored
View File

@ -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

69
ComparadorDeMagnitude.py Normal file
View File

@ -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)

View File

@ -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))

View File

@ -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("");
print("a = ",a[count]," b = ",b[count]," => a XNOR b =",portas.portaXnor(a[count],b[count]))
print("")

View File

@ -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<b):
retorno = "<";
retorno = "<"
else:
retorno = "=";
return retorno;
retorno = "="
return retorno