You are on page 1of 7

Nombre de la materia

Programación y Algoritmos

Nombre del alumno


Arandi López

Nombre de la Tarea
Reporte de Investigación. Introducción a la
programación y algoritmos.
Unidad 1
Paradigmas y Algoritmos

Nombre del Profesor


Ricardo Vargas de Basterra
Fecha
Diciembre 23, 2017
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

Reporte de Investigación: Introducción a la programación y


algoritmos.

Introducción.
En este trabajo de investigación se detallaran términos necesarios para introducirse a la
programación y desarrollo de sistemas computacionales.
En el trabajo de abordaran los temas de pseudocódigo y diagramas de flujos para moderación
de algoritmos, la importancia de los algoritmos en el proceso de programación, los paradigmas
de programación mas usados y terminologías básicas en el contexto de la programación.

Diagramas de Flujos y Pseudocódigo.


Diagramas de Flujo de Datos
Los diagramas de flujo son representaciones gráficas del esquema de un algoritmo [1]. Están
compuestos de diferentes figuras que tienen un significado especifico y su principal objetivo es
representar las operaciones o acciones que define el algoritmo en una serie de pasos
conectados por flechas que siguen un orden [1], de ahí la razón de la palabra flujo en el
nombre.

Los diagramas de flujo no tienen una relación de dependencia con algún lenguaje de
programación [1], por lo que no importa el tipo de lenguaje, pues su finalidad es solo maquetar
la idea del algoritmo.

Reglas para la construcción del diagrama de flujo.


Un diagrama de flujo debe seguir una serie de reglas para ser entendible. En [2] el autor define
entre unas las reglas de un diagrama de flujo las siguientes:
1. Todo diagrama de flujo debe tener un inicio y un fin. De la misma forma para cumplir el la
propiedad de finitud del algoritmo.
2. Las flecha usadas para expresar el flujo de las operaciones deben ser rectas horizontales o
verticales. Es recomendable que tampoco se intercepten o podría comprometer la legibilidad
del diagrama.
3. Todas lineas utilizadas para indicar la dirección del flujo del diagrama deben estar
conectadas. La conexión puede ser un símbolo que exprese lectura, escritura, procedimiento,
decisión, conexión o fin del diagrama.
4. El diagrama de flujo debe construirse de arriba hacia abajo y de izquierda a derecha.

2
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

5. La notación del diagrama debe ser independiente del lenguaje de programación para
posteriormente escribir el resultado en diferentes lenguajes de programación.
6. Al realizar una tarea compleja, es conveniente poner comentarios para hacer entendible la
lectura del diagrama.

DIAGRAMA DE FLUJO DE DATOS [3]

Pseudocódigo
El pseudocódigo es un lenguaje de dominio especifico (DSL en inglés) para la descripción de
algoritmos [3]. Este DSL hace uso de elementos sintácticos del lenguaje natural y de algún
lenguaje de programación conocido lo cual lo hace sencillo para poder reescribir la idea del
algoritmo en pseudocódigo a un lenguaje de programación.
El pseudocódigo podría estar expresado realmente en cualquier lenguaje (que pueda poseer el
mismo alfabeto que un lenguaje de programación) para representar el algoritmo. Actualmente
podemos encontrar propuestas de pseudocódigo tanto en español como en inglés.

3
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

Ejemplo de pseudocódigo [3]


start

//cálculo de impuesto y salarios



read nombre, horas, precio

salario ← horas * precio

tasas ← 0,25 * salario

salario_neto ← salario – tasas

write nombre, salario, tasas, salario

end

Como puede observarse, el pseudocódigo puede utilizar palabras reservadas para expresar
acciones (mayormente homologas de un lenguaje de programación) como start, read (leer),
write (escribir), while, if-then-else, repeat-until, entre otros [3].

La necesidad de los algoritmos en la programación.


Los seres humanos en su quehacer diario realizan actividades que poseen pasos consecutivos,
sin darse cuenta aplicamos algoritmos para realizar estas actividades. Un programador, como
persona cuya dedicación es resolver problemas, necesita desarrollar la habilidad de organizar y
diseñar algoritmos para la resolución de problemáticas.
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema
propuesto [3].

RESOLUCIÓN DE UN ALGORITMO

Los pasos para la resolución de un problema son:


1. Diseño del algoritmo, que describe la secuencia ordenada de pasos que conducen a la
solución de un problema dado.
2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado.
3. Ejecución y validación del programa por la computadora.

4
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

Estos pasos servirán como guía básica al programador para resolver un problema. Puede
observarse que el algoritmo es el paso inicial a desarrollar y seguido de la misma codificación
de ese algoritmo en el lenguaje de programación elegido.

Paradigmas más usados para la programación.


Programación Declarativa
Puede entenderse como un estilo de programación en el que el programador especifica que
debe hacerse mas bien que como hacerse los cómputos [2]. Un ejemplo de lenguaje que siga
este paradigma es el lenguaje ensamblador que como lenguaje posee el conjunto de
instrucciones que el microprocesador puede ejecutar. El programador, entonces, hace uso de
este conjunto de instrucciones para codificar la solución a su problemática en términos de como
el microprocesador computara datos e información.

Programación Lógica
Se basa en fragmentos de la lógica de predicados que pueden emplearse como base de un
lenguaje de programación al poseer una semántica operacional susceptible a una
implementación eficiente [2]. Ejemplos de lenguaje para este paradigma son LISP y LOGO.

Programación Funcional
La programación funcional se encuentra sujeta al concepto de función (matemática) y su
definición mediante ecuaciones (generalmente recursivas), que constituyen el programa. Desde
el punto de vista computacional, la programación funcional se centra en la evaluación de
expresiones (funcionales) para obtener un valor [2]. Ejemplos de lenguajes que apliquen el
paradigma funcional pueden encontrarse a Haskell, un lenguaje de mas de 40 años en uso.
Otros lenguajes un poco mas recientes como Javascript, Lua, Scala para la JVM y Elixir.

Programación Estructurada
La programación estructurada o también conocida como procedural, se caracteriza donde en
cada sentencia o instrucción señala al compilador para que realice alguna tarea. Un programa
es, entonces, un conjunto de instrucciones. Lenguajes como C, FORTRAN y Pascal son
conocidos por utilizar este paradigma. Otros lenguajes mas nuevos para este paradigma
podrían ser Go (de Google) y Rust.

Programación Orientada a Objetos

5
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

La programación orientada a objetos (POO), tal vez el paradigma mas utilizado en el siglo XXI,
trae una nuevo enfoque a los retos que se plantean en la programación estructurada cuando los
problemas a resolver se vuelven complejos. La POO no se enfoca en los algoritmos o
procedimientos sino en el diseño de los datos, intentando ajustar el lenguaje al problema. La
idea es diseñar formatos de datos que correspondan a las características esenciales del
problema[3].

La idea fundamental de la POO es combinar en una unidad o modulo, tanto los datos como
funciones que operan sobre esos datos . Tal unidad es llamada objeto [3]. Un objeto se vuelve
un tipo de dato complejo, que representa una porción lógica del problema, que posee sus
propios datos (conocidos como atributos) y funciones (conocidos como métodos) para
interactuar y comunicarse con otros objetos en el programa.

Lenguajes conocidos de este paradigma pueden encontrase a Java, C++, C#, Ruby, PHP,
Smalltalk.

Terminología básica en la programación.


Algoritmo: Es un método para resolver un problema [3]. Puede verse como una serie de pasos
ordenados lógicamente para realizar un trabajo o resolver una problemática.
Lenguaje de Programación: Es un lenguaje forma diseñado para realizar procesos que
pueden ser llevados a cabo por la maquinas como las computadoras. Pueden usarse para crear
programas que controlen el comportamiento físico o lógico de una maquina, para expresar
algoritmos con precisión, o como modo de comunicación humana [4].
Paradigma de programación: Representa fundamentalmente enfoques diferentes para la
construcción de soluciones de software [3].
Tipo de dato: Conjunto especifico de valores de los datos y un conjunto de operación que
actúan sobre esos datos.

Conclusiones.
Para cualquier estudiante nuevo en la programación los términos básicos de un algoritmo y sus
características es de vital importancia. En mi experiencia laboral, al enfrentarse a un problema
por resolver siempre es importante analizar antes de siquiera escribir una linea de código. Este
es un error sumamente cometido por expertos programadores que afectan a largo plazo la
solución del problema en cuestiones de defectos, lentitud o bien un mal diseño de código que
lleve a su refactorización.

6
Unidad 1: Paradigmas y algoritmos
Programación y Algoritmos

De igual forma, la mayor comprensión de el estudiante o nuevo programador debe conocer y


seguir en su estudio es el paradigma de programación. Aunque algunos paradigmas (como el
estructurado) son muy sencillos, otros como el funcional y el orientado a objetos pueden ser
mas complejos o complicados de entender. Una buena comprensión del paradigma conlleva a
un buen uso del lenguaje de programación y por lo tanto a un mejor código.

Entonces, para exponer la necesitad del uso de algoritmos puedo resumir que la inversión de
diseñar y analizar la problemática previo a codificar ayudará a largo plazo para evitar problemas
futuros, ya que conforme un sistema se haga mas y mas grande, la integración de nuevas
funcionalidades será más complicado si no se analiza como evitar efectos secundarios sobre lo
ya programado.

Referencias
[1] Cairo, O. (2006). Fundamentos de programación piensa en C. México: Pearson.
[2] Iranzo, J., Alpuente, M. (2007). Programación lógica Teoría y práctica. Madrid, España:
Pearson.
[3] Joyanes-Aguilar, L. (2008). Fundamentos de programación (4th ed.). Aravaca: McGraw-Hill
Interamericana de España.
[4] Lutz, M (2010). Learning Python, Fourth Edition. O'Reilly Media, Inc., O'Reilly.

You might also like