Este repositorio contiene una colección de 20 ejercicios de programación lógica en PHP, organizados por niveles de dificultad. Los ejercicios están diseñados para mejorar las habilidades de programación y comprensión de algoritmos.
.
├── README.md
├── ejercicios_logica.php # Interfaz web con todos los ejercicios
└── assets/ # Recursos estáticos (CSS, JS, etc.)
- Serie Fibonacci
- Números Primos
- Palíndromo Numérico
- Factorial
- Ordenamiento Simple
- Matriz Espiral
- Secuencia Collatz
- Números Armstrong
- Cifrado César
- Triángulo de Pascal
- Números Perfectos
- Anagramas
- Criba de Eratóstenes
- Conversión Numérica
- Subconjuntos
- Torres de Hanoi
- Sudoku Validator
- Laberinto Recursivo
- N-Reinas
- Problema del Viajante
- PHP 7.4+
- HTML5
- CSS3
- JavaScript (opcional para mejoras de UI)
- Servidor web (Apache/Nginx)
- PHP 7.4 o superior
- Navegador web moderno
- Clona el repositorio:
git clone https://github.com/DevCappa/ejercicios-logica-php.git
- Coloca los archivos en tu servidor web local:
# Para XAMPP
cp -r ejercicios-logica-php /path/to/htdocs/
- Accede a través del navegador:
http://localhost/ejercicios-logica-php/ejercicios_logica.php
- Interfaz web intuitiva y responsive
- Código documentado y explicado
- Ejemplos de implementación para cada ejercicio
- Visualización de soluciones
- Categorización por dificultad
- Implementación inicial con 20 ejercicios
- Diseño de interfaz web responsive
- Documentación completa de ejercicios
- Agregar más ejemplos de uso
- Implementar tests unitarios
- Mejorar visualización de soluciones
- Agregar modo oscuro
Las contribuciones son bienvenidas. Para contribuir:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE.md para más detalles.
- A todos los contribuidores que ayudan a mejorar estos ejercicios
- A la comunidad PHP por sus valiosos recursos y documentación
Link del proyecto: https://github.com/DevCappa/ejercicios-logica-php
- Cada ejercicio incluye una descripción detallada del problema
- Se proporcionan ejemplos de código y casos de uso
- Los ejercicios están diseñados para ser educativos y prácticos
- Se recomienda resolver los ejercicios en orden de dificultad
function fibonacci($n) {
if ($n <= 0) return [];
if ($n == 1) return [0];
$fib = [0, 1];
for ($i = 2; $i < $n; $i++) {
$fib[] = $fib[$i-1] + $fib[$i-2];
}
return $fib;
}
// Uso:
print_r(fibonacci(6)); // [0, 1, 1, 2, 3, 5]
function cifrarCesar($texto, $desplazamiento) {
$resultado = '';
for ($i = 0; $i < strlen($texto); $i++) {
if (ctype_alpha($texto[$i])) {
$ascii = ord(strtoupper($texto[$i]));
$ascii = (($ascii - 65 + $desplazamiento) % 26) + 65;
$resultado .= chr($ascii);
} else {
$resultado .= $texto[$i];
}
}
return $resultado;
}
// Uso:
echo cifrarCesar("HOLA MUNDO", 3); // KROD PXQGR
class TorresHanoi {
private $movimientos = 0;
private $torres = [];
public function __construct($n) {
$this->torres = [
'A' => range($n, 1),
'B' => [],
'C' => []
];
}
public function resolver($n, $origen = 'A', $auxiliar = 'B', $destino = 'C') {
if ($n == 1) {
$this->moverDisco($origen, $destino);
return;
}
$this->resolver($n - 1, $origen, $destino, $auxiliar);
$this->moverDisco($origen, $destino);
$this->resolver($n - 1, $auxiliar, $origen, $destino);
}
}
-
Contador de Vocales
- Crear una función que cuente el número de vocales en una cadena
- Manejar mayúsculas y minúsculas
- Opcional: Contar cada vocal por separado
-
Suma de Dígitos
- Sumar todos los dígitos de un número hasta obtener un solo dígito
- Ejemplo: 789 → 7+8+9=24 → 2+4=6
-
Invertir Palabras
- Invertir el orden de las palabras en una frase
- Mantener los espacios y signos de puntuación
- Ejemplo: "Hola Mundo PHP" → "PHP Mundo Hola"
-
Validador de Contraseñas
- Verificar longitud mínima (8 caracteres)
- Debe contener mayúsculas, minúsculas y números
- Al menos un carácter especial
- No puede contener espacios
-
Calculadora de Expresiones
- Evaluar expresiones matemáticas básicas
- Soportar +, -, *, /
- Manejar paréntesis
- Ejemplo: "3 + (4 * 2) - 1" = 10
-
Generador de Patrones
- Crear patrones de asteriscos
- Diferentes formas: triángulo, rombo, etc.
- Parámetros configurables de tamaño
-
Compresión de Texto
- Implementar algoritmo de compresión RLE
- Mostrar ratio de compresión
- Ejemplo: "AABBBCCCC" → "2A3B4C"
-
Juego de la Vida
- Implementar el Juego de la Vida de Conway
- Visualización en consola o HTML
- Reglas configurables
- Parser JSON
- Implementar un parser JSON básico
- Soportar objetos anidados
- Manejar arrays y tipos básicos
-
Análisis del Problema
- Leer cuidadosamente el enunciado
- Identificar entradas y salidas esperadas
- Listar casos especiales
-
Diseño de la Solución
- Escribir pseudocódigo
- Identificar estructuras de datos necesarias
- Planear manejo de errores
-
Implementación
- Seguir buenas prácticas de código
- Documentar funciones principales
- Usar nombres descriptivos
-
Pruebas
- Probar casos normales
- Probar casos límite
- Verificar manejo de errores
⌨️ con ❤️ por Jose Sequera 😊DevCappa