261 lines
6.2 KiB
Markdown
261 lines
6.2 KiB
Markdown
# Calculadora MAV - CAS Híbrido
|
|
|
|
## Estructura del Proyecto
|
|
|
|
```
|
|
📁 Calcv2/
|
|
├── main_calc.py # 🚀 Launcher principal
|
|
├── main_calc_app.py # 🖥️ Interfaz gráfica
|
|
├── main_evaluation.py # 🧮 Motor CAS
|
|
├── hybrid_base.py # 🏗️ Clase base
|
|
├── ip4_type.py # 🌐 Clase IP4
|
|
├── hex_type.py # 🔢 Clase Hex
|
|
├── bin_type.py # 🔢 Clase Bin
|
|
├── dec_type.py # 🔢 Clase Dec
|
|
├── chr_type.py # 🔤 Clase Chr
|
|
├── tl_bracket_parser.py # 📝 Parser sintaxis
|
|
└── tl_popup.py # 📊 Resultados clickeables
|
|
```
|
|
|
|
## Inicio Rápido
|
|
|
|
1. Instalar dependencias:
|
|
```bash
|
|
pip install sympy matplotlib numpy
|
|
```
|
|
|
|
2. Ejecutar la aplicación:
|
|
```bash
|
|
python main_calc.py
|
|
```
|
|
|
|
3. Ejemplos de uso:
|
|
```python
|
|
# Tipos especializados
|
|
Hex[FF] + 1
|
|
IP4[192.168.1.100/24].NetworkAddress[]
|
|
Bin[1010] * 2
|
|
|
|
# Matemáticas simbólicas
|
|
x + 2*y
|
|
diff(x**2 + sin(x), x)
|
|
integrate(x**2, x)
|
|
|
|
# Ecuaciones
|
|
x**2 + 2*x - 8 = 0
|
|
solve(x**2 + 2*x - 8, x)
|
|
```
|
|
|
|
## Características
|
|
|
|
- ✅ Motor algebraico completo (SymPy)
|
|
- ✅ Sintaxis simplificada con corchetes
|
|
- ✅ Detección automática de ecuaciones
|
|
- ✅ Resultados interactivos clickeables
|
|
- ✅ Tipos especializados (IP4, Hex, Bin, etc.)
|
|
- ✅ Variables SymPy puras
|
|
- ✅ Plotting integrado
|
|
|
|
## Comandos Útiles
|
|
|
|
- `python main_calc.py --help` - Muestra ayuda
|
|
- `python main_calc.py --test` - Ejecuta tests
|
|
- `python main_calc.py --setup` - Instala dependencias
|
|
- `python main_calc.py --debug` - Activa logging detallado
|
|
|
|
## 🚀 Inicio Rápido
|
|
|
|
### Instalación Automática
|
|
```bash
|
|
python launcher.py --setup
|
|
```
|
|
|
|
### Instalación Manual
|
|
```bash
|
|
pip install sympy matplotlib numpy
|
|
python launcher.py
|
|
```
|
|
|
|
### En Linux (para tkinter)
|
|
```bash
|
|
sudo apt-get install python3-tk
|
|
```
|
|
|
|
## ✨ Características Principales
|
|
|
|
- **🧮 Motor SymPy completo**: Cálculo simbólico avanzado
|
|
- **🔧 Sintaxis simplificada**: `IP4[192.168.1.1/24]` en lugar de `IP4("192.168.1.1/24")`
|
|
- **📐 Ecuaciones automáticas**: `x + 2 = 5` detectado automáticamente
|
|
- **📊 Resultados interactivos**: Plots y matrices clickeables
|
|
- **🌐 Clases especializadas**: IP4, Hex, Bin, Date, Dec, Chr
|
|
|
|
## 📝 Ejemplos Básicos
|
|
|
|
### Clases Especializadas
|
|
```python
|
|
# Redes
|
|
IP4[192.168.1.100/24].NetworkAddress[] # 192.168.1.0/24
|
|
IP4[10.0.0.1/8].Nodes() # 16777214 hosts
|
|
|
|
# Números
|
|
Hex[FF] + 1 # 0x100
|
|
Bin[1010] * 2 # 0b10100
|
|
|
|
# Caracteres
|
|
Chr[A] # 'A' (ASCII 65)
|
|
```
|
|
|
|
### Matemáticas Simbólicas
|
|
```python
|
|
# Variables automáticas
|
|
x + 2*y # Expresión simbólica
|
|
|
|
# Cálculo
|
|
diff(x**2 + sin(x), x) # 2*x + cos(x)
|
|
integrate(x**2, x) # x**3/3
|
|
|
|
# Ecuaciones (detección automática)
|
|
x**2 + 2*x - 8 = 0 # Agregada al sistema
|
|
solve(x**2 + 2*x - 8, x) # [-4, 2]
|
|
x=? # Atajo para solve(x)
|
|
```
|
|
|
|
### Plotting Interactivo
|
|
```python
|
|
plot(sin(x), (x, -2*pi, 2*pi)) # 📊 Ver Plot (clickeable)
|
|
Matrix([[1, 2], [3, 4]]) # 📋 Ver Matriz (clickeable)
|
|
```
|
|
|
|
## 🎯 Casos de Uso
|
|
|
|
### Networking
|
|
```python
|
|
# Análisis de red
|
|
network = IP4[192.168.0.0/24]
|
|
network.Nodes() # 254
|
|
network.BroadcastAddress[] # 192.168.0.255/24
|
|
|
|
# Cálculo con variables
|
|
base = IP4[10.0.x.0/24]
|
|
solve(base.Nodes() == 254, x) # Encuentra x
|
|
```
|
|
|
|
### Programación
|
|
```python
|
|
# Conversiones entre bases
|
|
Hex[255].toDecimal() # 255
|
|
Dec[66].toChr() # Chr('B')
|
|
|
|
# Análisis ASCII
|
|
Chr[Hello].value # [72, 101, 108, 108, 111]
|
|
```
|
|
|
|
### Matemáticas Avanzadas
|
|
```python
|
|
# Sistema de ecuaciones
|
|
x + y = 10
|
|
x - y = 2
|
|
solve([x + y - 10, x - y - 2], [x, y]) # {x: 6, y: 4}
|
|
|
|
# Análisis completo
|
|
f = sin(x) * exp(-x**2)
|
|
diff(f, x) # Derivada
|
|
integrate(f, (x, -oo, oo)) # Integral impropia
|
|
series(f, x, 0, 5) # Serie de Taylor
|
|
```
|
|
|
|
## 🖥️ Interfaz
|
|
|
|
### Paneles
|
|
- **Izquierda**: Editor de código con sintaxis nueva
|
|
- **Derecha**: Resultados coloreados e interactivos
|
|
|
|
### Menús
|
|
- **Archivo**: Nuevo, Cargar, Guardar
|
|
- **CAS**: Variables, Ecuaciones, Resolver sistema
|
|
- **Ayuda**: Guías y documentación completa
|
|
|
|
### Resultados Clickeables
|
|
- **📊 Ver Plot**: Abre ventana matplotlib
|
|
- **📋 Ver Matriz**: Vista expandida con operaciones
|
|
- **📋 Ver Lista**: Contenido completo de listas largas
|
|
|
|
## 🔧 Archivos del Proyecto
|
|
|
|
```
|
|
calculadora-mav-cas/
|
|
├── launcher.py # 🚀 Inicio principal
|
|
├── setup.py # 🛠️ Instalación
|
|
├── test_suite.py # 🧪 Tests
|
|
├── bracket_parser.py # 📝 Parser sintaxis
|
|
├── hybrid_base_types.py # 🏗️ Clases especializadas
|
|
├── hybrid_evaluation_engine.py # 🧮 Motor CAS
|
|
├── interactive_results.py # 📊 Resultados clickeables
|
|
├── hybrid_calc_app.py # 🖥️ Interfaz gráfica
|
|
└── requirements.txt # 📦 Dependencias
|
|
```
|
|
|
|
## 🆘 Resolución de Problemas
|
|
|
|
### Errores Comunes
|
|
```bash
|
|
# Dependencias faltantes
|
|
pip install sympy matplotlib numpy
|
|
|
|
# Linux: tkinter faltante
|
|
sudo apt-get install python3-tk
|
|
|
|
# Verificar instalación
|
|
python test_suite.py
|
|
```
|
|
|
|
### Sintaxis Correcta
|
|
```python
|
|
# ✅ Correcto (nueva sintaxis)
|
|
IP4[192.168.1.1/24]
|
|
Hex[FF]
|
|
|
|
# ❌ Incorrecto (sintaxis antigua)
|
|
IP4("192.168.1.1/24")
|
|
Hex("FF")
|
|
```
|
|
|
|
## 📚 Documentación Completa
|
|
|
|
Ver `comprehensive_documentation.md` para:
|
|
- Guía completa de sintaxis
|
|
- Casos de uso avanzados
|
|
- API de desarrollo
|
|
- Ejemplos detallados
|
|
|
|
## 🧪 Testing
|
|
|
|
```bash
|
|
# Tests básicos
|
|
python test_suite.py
|
|
|
|
# Tests con verbosidad
|
|
python test_suite.py --verbose
|
|
|
|
# Setup con tests
|
|
python launcher.py --test
|
|
```
|
|
|
|
## 🚀 Ejecutar
|
|
|
|
```bash
|
|
# Método recomendado
|
|
python launcher.py
|
|
|
|
# Sin splash screen
|
|
python launcher.py --no-splash
|
|
|
|
# Con verificación
|
|
python launcher.py --test
|
|
```
|
|
|
|
---
|
|
|
|
**¡Disfruta del poder del CAS híbrido!** 🎉
|
|
|
|
*Para soporte y documentación completa, consulta los archivos de documentación incluidos.* |