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]