0% encontró este documento útil (0 votos)
21 vistas8 páginas

Algebra de Boole

algebra de boole

Cargado por

015100772j
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas8 páginas

Algebra de Boole

algebra de boole

Cargado por

015100772j
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Estructura de Grupos

Apellidos y Nombres:
Grupo: B
1) Socualaya Olivera Dante Joel Fecha:
15 / 04 /24
2) Tresierra Zamora Diego Andres

EXPLICACION PASO A PASO DE:


EJERCICIOS PROPUESTO

Ejercicio 2

1) Ejercicio 2: Encontrar el complemento de la siguiente


expresión booleana: X'Y'Z' + X'YZ + XYZ',y comprobarlo
con las tablas de verdad para cada una de ellas.
2) def imprimir_tabla_verdad_personalizada(tabla_verdad,
variables):
3) encabezado = variables + ['F']
4) separador = '-' * (len(encabezado) * 8 - 1)
5) print(separador)
6) print('|', end='')
7) for enc in encabezado:
8) print(f'{enc.center(5)}|', end='')
9) print('\n' + separador)
10)
11) for fila in tabla_verdad:
12) # Evaluar la expresión para encontrar su
complemento
13) fila[-1] =
evaluar_expresion_complemento(fila[:-1], variables)
14) print('|', end='')
15) for valor in fila:
16) print(f'{str(int(valor)).center(5)} |',
end='')
Estructura de Grupos

17) print('\n' + separador)


18)
19) def evaluar_expresion_complemento(valores,
variables):
20) X, Y, Z = valores
21) # Expresión: X'Y'Z' + X'YZ + XYZ'
22) original = not X and not Y and not Z or not X and
Y and Z or X and Y and not Z
23) # Complemento de la expresión
24) complemento = not original
25) return complemento
26)
27) tabla_verdad_complemento_personalizada = [
28) [False, False, False, 0],
29) [False, False, True, 0],
30) [False, True, False, 0],
31) [False, True, True, 0],
32) [True, False, False, 0],
33) [True, False, True, 0],
34) [True, True, False, 0],
35) [True, True, True, 0]
36) ]
37)
38) variables = ['X', 'Y', 'Z']
39) print("Tabla de verdad para el complemento de la
expresión X'Y'Z' + X'YZ + XYZ':")
40) imprimir_tabla_verdad_personalizada(tabla_verdad_comp
lemento_personalizada, variables)
Estructura de Grupos

Ejercicio 3

from sympy import symbols


from sympy.logic.boolalg import And, Or
import pandas as pd

# Definir las variables


A, B, C = symbols('A B C')

# Definir la expresión original


expresion_original = Or(And(A, B), And(A, B, C))

# Definir la expresión simplificada


expresion_simplificada = And(A, B)

# Crear la tabla de verdad para la expresión original


tabla_original = []
for a in [0, 1]:
for b in [0, 1]:
for c in [0, 1]:
tabla_original.append([a, b, c,
expresion_original.subs({A: a, B: b, C: c})])
Estructura de Grupos

# Crear la tabla de verdad para la expresión simplificada


tabla_simplificada = []
for a in [0, 1]:
for b in [0, 1]:
for c in [0, 1]:
tabla_simplificada.append([a, b, c,
expresion_simplificada.subs({A: a, B: b, C: c})])

# Convertir los valores enteros en valores booleanos para la expresión


simplificada
for row in tabla_simplificada:
row[3] = bool(row[3])

# Crear los dataframes para las tablas


df_original = pd.DataFrame(tabla_original, columns=['A', 'B', 'C',
'Expresión Original'])
df_simplificada = pd.DataFrame(tabla_simplificada, columns=['A', 'B',
'C', 'Expresión Simplificada'])

# Imprimir las tablas


print("Tabla de verdad para la expresión original:")
print(df_original)
print("\nTabla de verdad para la expresión simplificada:")
print(df_simplificada)

# Comprobar si las expresiones son equivalentes


if df_original['Expresión Original'].equals(df_simplificada['Expresión
Simplificada']):
print("\nLas expresiones son equivalentes.")
else:
print("\nLas expresiones NO son equivalentes.")
Estructura de Grupos

Ejercicio 4

def evaluar_expresion_original(valores, variables):


X, Y, Z = valores
# Expresión: XY'Z + XY'Z + X'YZ
# Simplificada eliminando términos duplicados a: XY'Z + X'YZ
return (X and not Y and Z) or (X and not Y and Z) or (not X and Y
and Z)

def evaluar_expresion_simplificada(valores, variables):


X, Y, Z = valores
# Expresión simplificada: XY'Z + X'YZ
return (X and not Y and Z) or (not X and Y and Z)

# Configuración de la tabla de verdad


tabla_verdad = [
[False, False, False, 0, 0],
[False, False, True, 0, 0],
[False, True, False, 0, 0],
[False, True, True, 0, 0],
[True, False, False, 0, 0],
[True, False, True, 0, 0],
Estructura de Grupos

[True, True, False, 0, 0],


[True, True, True, 0, 0]
]

variables = ['X', 'Y', 'Z']


for fila in tabla_verdad:
fila[3] = evaluar_expresion_original(fila[:-2], variables)
fila[4] = evaluar_expresion_simplificada(fila[:-2], variables)

def imprimir_tabla_verdad_comparativa(tabla_verdad, variables):


encabezado = variables + ['Original', 'Simplificada']
separador = '-' * (len(encabezado) * 8 - 1)
print(separador)
print('|', end='')
for enc in encabezado:
print(f'{enc.center(5)}|', end='')
print('\n' + separador)

for fila in tabla_verdad:


print('|', end='')
for valor in fila:
print(f'{str(int(valor)).center(5)} |', end='')
print('\n' + separador)

print("Tabla de verdad comparativa para la Expresión Original vs. la


Expresión Simplificada:")
imprimir_tabla_verdad_comparativa(tabla_verdad, variables)
Estructura de Grupos

Ejercicio 5

from sympy import symbols, Or, And, Not, simplify_logic

# Definir las variables


X, Y, Z = symbols('X Y Z')

# Definir la expresión original


expresion_original = Or(And(X, Y, Z), And(X, Y, Not(Z)), And(Not(X),
Y, Z))

# Simplificar la expresión
expresion_simplificada = simplify_logic(expresion_original)

print("Expresión original:", expresion_original)


print("Expresión simplificada:", expresion_simplificada)

- LINK COLAB
- https://colab.research.google.com/drive/1E4c8iQc9JjAa
LgGymoY5s8rTgdfVI3pd?authuser=1&hl=es#scrollTo=-
zvfih_0GywB

ENVIAR AL PROFESOR LOS SIGUIENTES


RECURSOS:
Estructura de Grupos

a) El archivo en Word de pantallas de los ejercicios


propuestos.
Enviar al correo: [email protected]

b)Los códigos fuente de ejercicios propuestos.


Deberán enviar el LINK de su archivo de Google
Colab.
Enviar al correo: [email protected]

También podría gustarte