TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE MORELIA
“José María Morelos y Pavón”
Ingeniería en Sistemas Computacionales
Programación Lógica y Funcional
Actividad 1 - Estilos de Programación
Profesor:
Jesús Eduardo Alcaráz Chávez
Alumno:
Diego Alexis Rossell Coria
18121533
Grupo A
10 de marzo de 2022
Cuadro Mágico 3
Estilos de Programación 3
Paradigmas de Programación 4
Paradigma Imperativo 4
Paradigma Lógico 4
Paradigma Funcional 5
Paradigma Orientado a Objetos 5
Cuadro Mágico
Un cuadro mágico es una matriz donde la suma de todas las filas, las columnas y
ambas diagonales principales es la misma. Para un cuadro mágico de n x n, con la serie de
números de 1 a $n^2$, la suma que se debe obtener se describe por la fórmula:
2
𝑛 (𝑛 + 1)
𝑆𝑛 = 2
Si la serie con que se llenará el cuadro es una progresión aritmética diferente, únicamente se
requiere que la diferencia entre cualquier par de números sucesivos de la serie sea una
constante.
La siguiente estrategia de resolución fue publicada por primera vez por Simon de la Loubère
en 1687, está compuesta por cinco principios:
● Se escribe el primer número de la sucesión en el centro de la fila superior.
● Todos los números subsecuentes se colocan una columna a la derecha y una fila hacia
arriba.
● Cuando el último número se haya colocado en la fila superior, el siguiente número se
colocará en la última fila.
● Cuando la celda donde se iba a colocar un número esté ocupada, se colocará el nuevo
número en la celda directamente debajo del último número colocado.
Estilos de Programación
Las convenciones de código son un conjunto de guías y prácticas útiles para
desarrolladores, estas convenciones dependen del lenguaje de programación que se vaya a
utilizar.
Las convenciones abarcan aspectos como: organización de archivos, selección de nombres de
variables, indentación, comentarios, etc.
Una de las partes más importantes es la correcta utilización de nombres de variables,
permitiendo crear código consistente que permita al lector comprenderlo de una manera más
sencilla y facilitando su mantenimiento.
Seguir las prácticas de estilo aceptadas permite tener una mayor calidad en el software,
cuando el código sea revisado, será más sencillo leerlo y detectar errores comunes dentro de
este.
Paradigmas de Programación
Existe una gran cantidad de paradigmas de programación, siendo algunos de los más
populares los siguientes:
● Imperativo ● Declarativo
● Lógico ● Estructurado
● Funcional ● Procedural
● Orientado a objetos ● Por eventos
● Con restricciones
A continuación se describen algunos de los paradigmas de programación mencionados.
Paradigma Imperativo
Este paradigma controla el flujo del programa de manera explícita mediante
comandos paso por paso, donde cada paso afecta el estado global del programa. Aquí, el
orden en que se establecen los pasos es muy importante, ejecutar un paso puede tener
consecuencias diferentes dependiendo del estado de las variables al momento de ser
ejecutado.
Algunas de las desventajas principales del paradigma imperativo son la limitación de la
abstracción que se puede realizar en comparación con otros paradigmas, y la importancia del
orden de ejecución y declaración de las instrucciones, que no se adapta fácilmente a todos los
problemas.
Paradigma Lógico
Los programas son construidos al establecer relaciones que especifican hechos y
reglas de inferencia, preguntando cuándo son verdaderas o no y estableciendo un objetivo.
Un programa realizado con el paradigma lógico se puede dividir en tres secciones:
1. Una serie de definiciones y declaraciones que definen el dominio de problema
2. Sentencias de hechos relevantes
3. Sentencias de objetivos en la forma de consultas
Algunas de sus ventajas son su facilidad para probar la validez para un programa dado y el
tamaño mínimo del código necesario para resolver un problema.
Ejemplos de lenguajes de programación que pueden utilizarse para programar este paradigma
son: Prolog, F-logic, Parlog, Alice, etc.
Paradigma Funcional
En la programación funcional, todos los subprogramas son vistos como funciones,
toman argumentos y regresan una única solución, donde dicha solución depende
completamente de los argumentos.
La programación funcional tiene sus orígenes en el cálculo lambda, y como resultado de sus
características, produce código considerablemente más corto que otros paradigmas y en
ciertas condiciones puede producir código más rápido, menos susceptible a errores y más
sencillo de corregir.
Presenta problemas cuando se requiere involucrar una gran cantidad de variables o muchas
actividades secuenciales que podrían ser más sencillas de manejar de manera imperativa u
orientada a objetos.
Existe una gran cantidad de lenguajes que presentan soporte para implementar programación
funcional como por ejemplo: Kotlin, Python, Java, C++, Clisp, etc.
Paradigma Orientado a Objetos
La programación orientada a objetos se basa en considerar objetos de la vida real
como diferentes entidades, donde cada una tiene su propio estado, sus propios métodos y
atributos y son independientes entre sí.
Se realiza la comunicación entre los diferentes objetos a través de mensajes. Los objetos
responden a estos mensajes al realizar operaciones o métodos. Los mensajes pueden o no
contener argumentos.
Los objetos son organizados en clases, desde las cuales pueden heredar métodos y variables.
La ventaja principal del paradigma orientado a objetos es la reusabilidad y extensibilidad que
provee al código.
La programación orientada a objetos es posible en lenguajes que incluyen: Java, C++,
Python, PHP, entre otros.