Algoritmos y Programación — Parte I

Algunos conceptos básicos de Algoritmos y Programación

Juan Manrique
5 min readApr 22, 2019

Algoritmo

Es un conjunto de instrucciones o reglas bien definidas, claras, ordenadas y precisas que permite realizar una actividad. Ej. sacar dinero de un cajero, calcular el factorial de un número, hacer una torta, etc.

Los algoritmos,

  • Se usan para resolver problemas -> solucionan algo
  • No son ambiguos -> siempre tienen el mismo comportamiento
  • Son una abstracción -> hay que abstraerse; es un proceso creativo

Cómo representar un algoritmo

  • Lenguaje natural
  • Diagramas de flujo (representación gráfica)
  • Pseudocódigo (mezcla informal entre lenguaje natural y lenguaje de programación)
  • Código fuente (en algún lenguaje de programación)

Pseudocódigo

El objetivo del pseudocódigo es permitir que el programador se centre en lo aspectos lógicos de la solución, evitando las reglas de sintaxis de un lenguaje de programación.

Análisis del problema y diseño de algoritmos

  1. Leer detalladamente el planteamiento y entender el problema (varias veces si es necesario) -> Qué se pide
  2. Plantear la solución con lógica/matemática (la obvia) -> Qué hace
  3. Identificar las partes (primera abstracción) -> Qué recibe, qué devuelve y cómo obtenerlo
  4. Escribir el algoritmo estructurado (abstracción más detallada) -> Usando la programación estructurada. El papel es muy buena idea
  5. Verificar el algoritmo -> Hacer corridas en frío con casos borde de prueba
  6. Implementación — Escribir el algoritmo en un lenguaje de programación y corregir

Verificación de algoritmos: corridas en frío

Una vez que se ha terminado de escribir un algoritmo, es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado.

El modo de comprobar un algoritmo es mediante su ejecución manual, anotando en una hoja de papel las modificaciones que se producen en las variables más significativas durante su ejecución. Esta prueba manual es conocida como corrida en frío.

Programación

Es la escritura de instrucciones correctas para que sean interpretadas por una computadora.

Programa

Un programa de computadora es un conjunto de instrucciones que se introducen en la máquina y se utilizan para conseguir que la computadora produzca un resultado específico.

Lenguaje de programación

Son lenguajes formales que permiten escribir programas informáticos mediante códigos fuentes. Estos códigos, una vez escritos, serán traducidos a instrucciones que el computador puede realizar (lenguaje máquina), mediante un traductor de lenguaje, lo que permitirá la ejecución del programa en dicho computador.

Los lenguajes de programación ofrecen una serie de elementos que pueden ser usados para la escritura de programas. Algunos de estos elementos son:

Símbolos
-
Operadores

Reglas sintácticas
- Sintaxis
- Palabras reservadas

Reglas semánticas
- Tipos de datos
- Expresiones
- Estructuras de control

La creación de un programa se planifica inicialmente en papel, mediante la creación de algoritmos, que son un conjunto de instrucciones o reglas bien definidas, claras, ordenadas y precisas que permite realizar una actividad. Luego, estos algoritmos se introducen a la computadora mediante su escritura en código fuente en algún lenguaje de programación.

Operaciones con datos

Los operadores son símbolos que indican que debe realizarse una operación entre dos (2) valores (datos). Existen tres (3) tipos básicos de operadores aplicables a tipos de datos de diversa naturaleza:

Operadores aritméticos

Operadores aritméticos

Operadores relacionales

Operadores relacionales

Operadores lógicos

Operadores lógicos

Definición de las Operaciones Lógicas (Tabla de Verdad)

Tabla de verdad

Expresiones

Son la forma básica de representar un cómputo mediante la combinación de variables, constantes y/o funciones que el lenguaje interpreta de acuerdo a su precedencia y asociación.

Una expresión es una representación de un valor

Jerarquía o Precedencia de operadores

Es la jerarquía que indica el orden de evaluación de los operadores en las expresiones. Ej:

                    4 + 5 - 3 / 2 * 2 - 1 = 6

La precedencia de operadores aritméticos de la mayoría de los lenguajes de programación, puede recordarse mnemotécnicamente con el acrónimo:

                    PEMDRAS
------->
  1. Paréntesis
  2. Exponencial
  3. Multiplicación, División y Residuo
  4. Adición y Sustracción

Los paréntesis se usan para anular la precedencia regular y forzar prioridades de operadores en una expresión. Ej:

4 + 5 – 3 / (2 * 2) — 1 = 84 + (5 – 3) / 2 * 2 – 1 = 54 + 5 — (3 / 2) * 2 – 1 = 6

Asociación de operadores

Es el orden en que se evalúan los operadores de igual precedencia ubicados consecutivamente dentro de una expresión. La mayoría de los lenguajes de programación implementan asociación por la izquierda (de izquierda a derecha). Ej:

4 + 5 – 3 – 2 – 2 + 1 = 3

Sentencias

Son instrucciones escritas en un lenguaje de programación de alto nivel que ordenan a la computadora a que realice un una acción determinada. Un programa está formado por una secuencia de una o más sentencias.

Sintaxis

Es el conjunto de reglas que hay que seguir para que el compilador de un lenguaje reconozca un código como válido.

Palabras reservadas

Son palabras que pertenecen a la especificación de un lenguaje y tienen un significado gramatical especial, por lo que su uso dentro de un programa queda restringido. Dicho de otra forma, una palabra reservada no puede usarse como nombre de variable.

Cada lenguaje tiene su propia sintaxis y cuenta con sus propias palabras reservadas.

La publicación anterior trata sobre el Curso Introductorio. La próxima publicación será sobre El Teorema del Programa Estructurado.

Ejercicios propuestos

  1. Escriba un algoritmo para hacer una taza de café.
  2. Escriba un algoritmo para hacer arepas para 23 personas en un budare con capacidad para 4 arepas simultáneas.
  3. Escriba un algoritmo para cobrar un cheque genérico en un banco.
  4. Escriba un algoritmo para poner gasolina desde un dispensador de una gasolinera.
  5. Escriba un algoritmo para retirar dinero de un telecajero genérico.

--

--

Juan Manrique

SW developer. Coding Mentor @academia_hack. Agile promoter. Writer. Simplifier. Motivator. Venezuelan Rums Expert Evangelist. At your services.