Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions 01_intro/ejercicio_guiado/calculadora_v1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"""
Calculadora v1 - Suma básica
=============================

En esta primera versión crearás una calculadora simple que solo suma dos números.

Conceptos aplicados:
- Variables
- input() para leer datos del usuario
- print() para mostrar resultados
- Conversión de tipos (float())

Instrucciones:
1. Pide al usuario el primer número
2. Pide al usuario el segundo número
3. Convierte ambos a números decimales (float)
4. Suma los dos números
5. Muestra el resultado
"""

# TODO 1: Pide el primer número al usuario
# Pista: usa input() y guarda el valor en una variable
primer_numero = input("Ingresa el primer número: ")


# TODO 2: Pide el segundo número al usuario
segundo_numero = input("Ingresa el segundo número: ")


# TODO 3: Convierte los strings a números decimales
# Pista: usa float() para permitir decimales (ej: 3.5)
num1 = float(primer_numero)
num2 = float(segundo_numero)


# TODO 4: Realiza la suma
resultado = num1 + num2


# TODO 5: Muestra el resultado
print("El resultado es: ", resultado)


# ¡Ya está! Ejecuta el programa y prueba con diferentes números
# Ejemplos para probar:
# - 5 y 3 → debe dar 8
# - -2 y 7 → debe dar 5
# - 3.5 y 2.5 → debe dar 6.0
65 changes: 65 additions & 0 deletions 02_estructuras/ejercicio_guiado/calculadora_v2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
"""
Calculadora v2 - Cuatro operaciones básicas
============================================

En esta segunda versión expandirás la calculadora para que pueda realizar
las cuatro operaciones básicas: suma, resta, multiplicación y división.

Conceptos aplicados:
- Operadores aritméticos (+, -, *, /)
- Condicionales if/elif/else
- F-strings para formateo profesional
- Manejo básico de tipos numéricos

Instrucciones:
1. Pide dos números al usuario
2. Pregunta qué operación desea realizar
3. Usa if/elif/else para realizar la operación correspondiente
4. Muestra el resultado con f-strings formateados
"""

# TODO 1: Pide el primer número al usuario y conviértelo a float
num1 = float(input("Ingresa el primer número: "))


# TODO 2: Pide el segundo número al usuario y conviértelo a float
num2 = float(input("Ingresa el segundo número: "))


# TODO 3: Pregunta qué operación desea realizar
# Pista: input("¿Qué operación deseas realizar? (+, -, *, /): ")
operacion = input("¿Qué operación deseas realizar? (+, -, *, /): ")


# TODO 4: Realiza la operación correspondiente usando if/elif/else
# Pista: Compara la variable 'operacion' con "+", "-", "*", "/"

if operacion == "+":
resultado = num1 + num2
elif operacion == "-":
resultado = num1 - num2
elif operacion == "*":
resultado = num1 * num2
elif operacion == "/":
resultado = num1 / num2
else:
print("❌ Operación no válida")


# TODO 5: Muestra el resultado usando f-strings
print(f"El resultado de {num1} {operacion} {num2} = {resultado:.2f}")




# ¡Perfecto! Ahora tu calculadora puede hacer las 4 operaciones básicas
#
# Ejemplos para probar:
# - 10 + 5 → debe dar 15.00
# - 10 - 3 → debe dar 7.00
# - 4 * 5 → debe dar 20.00
# - 10 / 3 → debe dar 3.33
# - 10 % 3 → (si pruebas una operación no válida, debe mostrar mensaje de error)
#
# 💡 Nota: Si intentas dividir por cero (10 / 0), Python mostrará un error.
# Esto lo arreglaremos en la v3 con validación de entrada.
109 changes: 109 additions & 0 deletions 03_control_flujo/ejercicio_guiado/GUIA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# 🎯 La Calculadora que Crece - Versión 3

¡Tu calculadora sigue mejorando! En esta versión añadirás un menú interactivo con bucles, validación de entrada y control de errores.

## 🎓 Qué aprenderás

En este módulo estamos aprendiendo:
- ✅ Condicionales if/elif/else complejos
- ✅ Bucle while para repetir acciones
- ✅ break y continue para controlar el flujo
- ✅ Validación de entrada del usuario

## 🎯 Objetivo de la v3

Mejorar tu calculadora para que:
1. Muestre un menú numerado con las opciones
2. Permita realizar múltiples operaciones sin reiniciar el programa
3. Valide que el usuario ingrese opciones válidas
4. Controle la división por cero
5. Tenga una opción para salir

**Ejemplo de ejecución:**
```
=== CALCULADORA ===
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir

Elige una opción: 1
Primer número: 5
Segundo número: 3
✅ 5.0 + 3.0 = 8.0

=== CALCULADORA ===
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir

Elige una opción: 4
Primer número: 10
Segundo número: 0
❌ Error: No se puede dividir por cero

=== CALCULADORA ===
...
Elige una opción: 5
¡Hasta pronto! 👋
```

## 📝 Instrucciones

1. Abre el archivo `calculadora_v3.py`
2. Encontrarás comentarios con instrucciones paso a paso
3. Completa el código siguiendo las pistas
4. Ejecuta y prueba tu programa con varias operaciones seguidas

## ✅ Cómo probar tu código

Ejecuta el programa:
```powershell
python calculadora_v3.py
```

Casos de prueba:
- ✅ Realiza varias operaciones sin salir del programa
- ✅ Intenta una opción no válida (ej: 7) → debe mostrar error y volver al menú
- ✅ Intenta dividir por cero → debe mostrar error y volver al menú
- ✅ Elige opción 5 → debe salir del programa

## 🆚 Cambios respecto a la v2

| Aspecto | v2 | v3 |
|---------|----|----|
| Ejecución | Una sola operación | Múltiples operaciones |
| Menú | No tiene | Menú numerado |
| Validación | No valida | Valida opciones y división por cero |
| Bucle | No | `while True` con `break` |
| UX | Básica | Mensajes con emojis y formato |

## 🚀 ¿Terminaste?

¡Genial! Tu calculadora ahora es mucho más usable:
```bash
git add 03_control_flujo/ejercicio_guiado/calculadora_v3.py
git commit -m "feat: completar calculadora v3 - menú interactivo con validación"
```

En el módulo 04 refactorizarás todo el código en funciones para que sea más limpio y mantenible.

## 💡 Tips

- `while True:` crea un bucle infinito que solo termina con `break`
- `continue` salta al inicio del bucle sin ejecutar el resto del código
- Usa `if opcion not in ["1", "2", "3", "4", "5"]:` para validar opciones
- Para división por cero: `if num2 == 0 and opcion == "4":`

## 📚 Recursos

- Consulta [`cheatsheets/03_control_flujo.md`](../../cheatsheets/03_control_flujo.md) para bucles y control
- Revisa ejemplos de while con break/continue

---

**Versión anterior**: [`02_estructuras/ejercicio_guiado/GUIA.md`](../../02_estructuras/ejercicio_guiado/GUIA.md)
**Siguiente versión**: [`04_funciones/ejercicio_guiado/GUIA.md`](../../04_funciones/ejercicio_guiado/GUIA.md) - Organizarás el código en funciones
85 changes: 85 additions & 0 deletions 03_control_flujo/ejercicio_guiado/calculadora_v3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
"""
Calculadora v3 - Menú interactivo con validación
=================================================

En esta tercera versión añadirás un menú que se repite hasta que el usuario
decida salir, validación de entrada y control de errores (división por cero).

Conceptos aplicados:
- Bucle while para repetir el menú
- break para salir del bucle
- continue para volver al inicio del bucle
- Validación de entrada del usuario
- Control de división por cero

Instrucciones:
1. Crea un bucle while infinito
2. Muestra un menú numerado
3. Valida que la opción sea válida
4. Pide los números y realiza la operación
5. Controla la división por cero
6. Permite salir con la opción 5
"""

while True:


print("\n=== CALCULADORA ===")
print("1. Sumar")
print("2. Restar")
print("3. Multiplicar")
print("4. Dividir")
print("5. Salir")


opcion = input("\nElige una opción: ")

if opcion == "5":
print("¡Hasta pronto! 👋")
break


if opcion not in ["1", "2", "3", "4"]:
print("❌ Opción no válida. Intenta de nuevo.")
continue


num1 = float(input("Primer número: "))
num2 = float(input("Segundo número: "))


if opcion == "4" and num2 == 0:
print("❌ Error: No se puede dividir por cero")
continue


if opcion == "1":
resultado = num1 + num2
simbolo = "+"
elif opcion == "2":
resultado = num1 - num2
simbolo = "-"
elif opcion == "3":
resultado = num1 * num2
simbolo = "*"
elif opcion == "4":
resultado = num1 / num2
simbolo = "/"


print(f"✅ {num1} {simbolo} {num2} = {resultado:.2f}")


# ¡Excelente trabajo! Ahora tienes una calculadora interactiva que:
# - Se repite hasta que el usuario quiera salir
# - Valida las opciones ingresadas
# - Controla la división por cero
# - Muestra mensajes claros con emojis
#
# Prueba estos casos:
# 1. Realiza varias operaciones seguidas sin salir
# 2. Intenta una opción inválida (ej: 9) → debe mostrar error y volver al menú
# 3. Intenta dividir por cero → debe mostrar error y volver al menú
# 4. Sal con la opción 5 → el programa debe terminar correctamente
#
# 💡 En la v4 organizarás todo este código en funciones para que sea más limpio
Loading