Paso 3: Funciones Científicas¶
En este paso, añadiremos todas las funciones matemáticas avanzadas que hacen que nuestra calculadora sea "científica".
📦 Código a añadir¶
Añade el siguiente código después del código del Paso 2 en tu archivo calculadora.py:
# Funciones científicas
def seno():
try:
valor = float(entrada.get())
resultado = math.sin(math.radians(valor))
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
def coseno():
try:
valor = float(entrada.get())
resultado = math.cos(math.radians(valor))
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
def tangente():
try:
valor = float(entrada.get())
resultado = math.tan(math.radians(valor))
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
def logaritmo():
try:
valor = float(entrada.get())
if valor > 0:
resultado = math.log10(valor)
limpiar()
escribir(str(resultado))
else:
limpiar()
escribir("Error")
except:
limpiar()
escribir("Error")
def logaritmo_natural():
try:
valor = float(entrada.get())
if valor > 0:
resultado = math.log(valor)
limpiar()
escribir(str(resultado))
else:
limpiar()
escribir("Error")
except:
limpiar()
escribir("Error")
def exponencial():
try:
valor = float(entrada.get())
resultado = math.exp(valor)
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
def potencia():
escribir("**")
def raiz_cuadrada():
try:
valor = float(entrada.get())
if valor >= 0:
resultado = math.sqrt(valor)
limpiar()
escribir(str(resultado))
else:
limpiar()
escribir("Error")
except:
limpiar()
escribir("Error")
def factorial():
try:
valor = int(float(entrada.get()))
if valor >= 0:
resultado = math.factorial(valor)
limpiar()
escribir(str(resultado))
else:
limpiar()
escribir("Error")
except:
limpiar()
escribir("Error")
def porcentaje():
try:
valor = float(entrada.get())
resultado = valor / 100
limpiar()
escribir(str(resultado))
except:
limpiar()
escribir("Error")
🔍 Explicación detallada¶
Funciones Trigonométricas¶
seno(), coseno(), tangente()¶
- Entrada: Ángulo en grados
- Conversión:
math.radians()convierte grados a radianes - Salida: Valor trigonométrico entre -1 y 1 (sin, cos) o cualquier valor (tan)
Ejemplos:
- sin(30°) = 0.5
- cos(60°) = 0.5
- tan(45°) = 1.0
Funciones Logarítmicas¶
logaritmo() - Logaritmo base 10¶
- Función:
math.log10(x) - Dominio: x > 0 (números positivos únicamente)
- Uso: Escalas logarítmicas, cálculos científicos
logaritmo_natural() - Logaritmo natural (base e)¶
- Función:
math.log(x) - Base: e ≈ 2.71828
- Uso: Cálculos de crecimiento exponencial, análisis matemático
Funciones Exponenciales¶
exponencial() - e^x¶
- Función:
math.exp(x) - Resultado: e elevado a la potencia x
- Uso: Crecimiento exponencial, distribuciones estadísticas
potencia() - x^y¶
- Símbolo: Añade "**" para potenciación en Python
- Uso: El usuario escribe la base, presiona x^y, luego el exponente
- Ejemplo: 2 [x^y] 3 = 2**3 = 8
Funciones Especiales¶
raiz_cuadrada() - √x¶
- Función:
math.sqrt(x) - Dominio: x ≥ 0 (no permite raíces de números negativos)
- Resultado: Valor positivo de la raíz cuadrada
factorial() - x!¶
- Función:
math.factorial(x) - Dominio: Números enteros no negativos (0, 1, 2, 3...)
- Conversión:
int(float(entrada.get()))maneja decimales - Ejemplos: 5! = 120, 0! = 1
porcentaje() - %¶
- Operación: Divide el valor por 100
- Uso: Convertir porcentajes a decimales
- Ejemplo: 25% = 0.25
📊 Tabla de funciones y sus dominios¶
| Función | Dominio | Rango | Ejemplo |
|---|---|---|---|
| sin(x) | Todos los reales | [-1, 1] | sin(90°) = 1 |
| cos(x) | Todos los reales | [-1, 1] | cos(0°) = 1 |
| tan(x) | x ≠ 90°, 270°, ... | (-∞, ∞) | tan(45°) = 1 |
| log(x) | x > 0 | (-∞, ∞) | log(100) = 2 |
| ln(x) | x > 0 | (-∞, ∞) | ln(e) = 1 |
| exp(x) | Todos los reales | (0, ∞) | exp(1) = e |
| √x | x ≥ 0 | [0, ∞) | √16 = 4 |
| x! | x ≥ 0, entero | [1, ∞) | 4! = 24 |
⚠️ Validaciones importantes¶
- Logaritmos: Solo aceptan números positivos
- Raíz cuadrada: Solo acepta números no negativos
- Factorial: Solo acepta enteros no negativos
- Trigonometría: Funciona en grados (más intuitivo para usuarios)
✅ Verificación¶
Después de añadir este código: 1. Guarda el archivo 2. Verifica que no hay errores de sintaxis 3. Todas las funciones manejan errores de forma consistente
➡️ Siguiente paso¶
Continúa con Paso 4: Funciones de Memoria para añadir las capacidades de memoria de la calculadora.