image_printModo impresión y lectura

Mojo es un lenguaje emergente que combina la simplicidad de Python con la potencia de lenguajes de bajo nivel. Para aprenderlo, nada mejor que construir un proyecto práctico: una calculadora interactiva. En este artículo te muestro cómo diseñar una calculadora básica que suma, resta, multiplica, divide y calcula raíces cuadradas.

✨ Estructura general del programa

El código se organiza en funciones que encapsulan cada operación matemática y en un bucle principal que gestiona el menú. Esto permite que el programa sea modular y fácil de mantener.

🔹 Función pedir_numero

fn pedir_numero(mensaje: String) raises -> Int: while True: try: var valor: Int = Int(input(mensaje)) return valor except: print(«\n\t⚠️ Entrada no válida. Por favor introduce un número.») 

  • Objetivo: pedir un número al usuario y validar que sea correcto.
  • Detalles: usa un bucle while True para repetir la petición hasta que el usuario introduzca un valor válido.
  • Ventaja: evita que el programa se rompa por entradas erróneas.

🔹 Menú principal

fn menu() raises -> None:

print (» Calculadora creada en Mojo \n»)

print («»» Introduce tipo de operacion: S -> Sumar rz -> Raiz Cuadrada R -> Restar M -> Multiplicar d -> Division X -> Salir _____________________________________________ «»»)

  • Muestra las opciones disponibles.
  • El usuario selecciona la operación escribiendo una letra.
  • Incluye un toque visual con separadores y alineación.

🔹 Operaciones básicas

Cada operación está en su propia función:

  • Sumar:

fn sumar() raises -> None: var numero1: Int = pedir_numero(«\n Introduce el primer número -> «) var numero2: Int = pedir_numero(«\n Introduce el segundo número -> «) var resultado: Int = numero1 + numero2 print(«\n\t\tLa suma de {} y {} es = {}».format(numero1, numero2, resultado)) 

  • Restar y Multiplicar siguen la misma lógica, cambiando el operador.
  • División añade validación para evitar dividir entre cero:

fn division() raises -> None: var numero1: Float64 = pedir_numero(«\n Introduce el primer número -> «) var numero2: Float64 = pedir_numero(«\n Introduce el segundo número -> «) if numero2 == 0: print(«❌ Error: No se puede dividir entre cero») numero2 = pedir_numero(«\n Introduce un número distinto de cero -> «) if numero2 == 0: print(«😏 Pero si insistes, el resultado es ‘∞’ (infinito simbólico)») var resultado: Float64 = numero1 / numero2 print(«\n\t\tLa división de {} y {} es = {}».format(numero1, numero2, resultado)) 

🔹 Raíz cuadrada

import math

fn raiz_cuadrada(numero: Float64) -> Float64:

return math.sqrt(numero)

  • Usa la librería estándar math.
  • Se valida que el número no sea negativo antes de calcular.

🔹 Función principal main

fn main() raises -> None:

while True: menu() var tecla = input(«\n introduce tipo de operacion -> «).lower() if tecla == «s»: sumar() elif tecla == «r»: restar() elif tecla == «m»: multiplicar() elif tecla == «d»: division() elif tecla == «rz»: var numero: Float64 = pedir_numero(«\n Introduce el número -> «) if numero < 0: print(«❌ Error: No se puede con valores inferiores a cero») else: var resultado = raiz_cuadrada(numero) print(«\n La raíz cuadrada de «, numero, » es «, resultado) elif tecla == «x»: print(«Saliendo…») break else: print(«\n\n No válido») 

  • Controla el flujo del programa.
  • Llama a la función correspondiente según la tecla introducida.
  • Permite salir con la opción X.

🎯 Conclusión

Este proyecto muestra cómo estructurar un programa en Mojo usando funciones, validaciones y un menú interactivo. Es un ejemplo perfecto para aprender los fundamentos del lenguaje y practicar la lógica de programación.

👉 Próximos pasos: añadir más operaciones (potencias, logaritmos, porcentajes) o incluso una interfaz gráfica para hacer la calculadora más atractiva.

image_printModo impresión y lectura
Translate » Traductor