EducaMadrid
#################################################################################
###### Massachusetts Institute of Technology (MIT) - IES Gran Capitan (GC) ######
#################################################################################

##########################################################
######## APLICACIÓN PARA INGENIERIA DE MATERIALES ########
######## ENSAYOS DESTRUCTIVOS ########
##########################################################

##### CALCULOS PARA ENSAYO DE TRACCION ####

def ensayo_traccion():
print("Ingrese los datos para el ensayo de tracción:")
fuerza_aplicada = float(input("Fuerza aplicada (N): "))
area_inicial = float(input("Área inicial de la sección transversal (m^2): "))
longitud_inicial = float(input("Longitud inicial de la muestra (m): "))
longitud_final = float(input("Longitud final de la muestra después del ensayo (m): "))

esfuerzo = fuerza_aplicada / area_inicial
deformacion = (longitud_final - longitud_inicial) / longitud_inicial

print(f"Resultado del ensayo de tracción:")
print(f"Esfuerzo: {esfuerzo} N/m^2")
print(f"Deformación: {deformacion}")

#### CALCULOS PARA ENSAYO DE DUREZA (BRINELL)

def ensayo_dureza_brinell():
print("Ingrese los datos para el ensayo de dureza Brinell:")
carga = float(input("Carga aplicada (N): "))
diametro_huellas = float(input("Diámetro de las huellas dejadas en la muestra (mm): "))

area_huellas = 3.14159 * (diametro_huellas / 2) ** 2
dureza_brinell = carga / area_huellas

print(f"Resultado del ensayo de dureza Brinell:")
print(f"Dureza Brinell: {dureza_brinell} N/mm^2")

#### CALCULOS PARA ENSAYO DE RESILIENCIA (CHARPY)

def ensayo_resiliencia_charpy():
print("Ingrese los datos para el ensayo de resiliencia Charpy:")
altura_inicial = float(input("Altura inicial del péndulo Charpy (m): "))
altura_final = float(input("Altura final del péndulo Charpy después del impacto (m): "))
masa_martillo_charpy = float(input("Masa del martillo del péndulo Charpy (kg): "))
superficie_rotura = float (input("Superficie de rotura de la probeta (m^2): "))
aceleracion_gravedad = 9.81 # m/s^2

charpy = masa_martillo_charpy * aceleracion_gravedad * (altura_inicial - altura_final)
resiliencia_charpy = charpy/superficie_rotura

print(f"Resultado del ensayo de resiliencia Charpy:")
print(f"Resiliencia Charpy: {resiliencia_charpy} Julios/m^2")

#### MENU DE OPCIONES PARA EL USUARIO

while True:
print("\nSeleccione el tipo de ensayo:")
print("1. Ensayo de Tracción")
print("2. Ensayo de Dureza Brinell")
print("3. Ensayo de Resiliencia Charpy")
print("0. Salir")

opcion = int(input("Ingrese el número correspondiente al ensayo deseado: "))

if opcion == 0:
print("Saliendo del programa.")
break
elif opcion == 1:
ensayo_traccion()
elif opcion == 2:
ensayo_dureza_brinell()
elif opcion == 3:
ensayo_resiliencia_charpy()
else:
print("Opción no válida. Por favor, elija una opción válida.")