1. Introducción a la Algoritmia

Esta sección cubre los conceptos iniciales sobre algoritmos.

1.1. Qué es un Algoritmo

Un algoritmo es una secuencia finita de instrucciones, reglas o pasos que describen de modo preciso las operaciones que una computadora debe realizar para ejecutar una tarea determinada en un tiempo finito.

También se puede decir que es:

  • Una fórmula para resolver un problema.

  • Un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven un problema.

Ejemplo de un algoritmo simple (pseudocódigo general):

Algoritmo (Nombre_algoritmo)
    Declaracion_de_variables
INICIO
    INSTRUCCIÓN 1
    INSTRUCCIÓN 2
    INSTRUCCIÓN 3
    ...
    INSTRUCCIÓN N
FIN_INICIO
Fin (Nombre_algoritmo)

1.2. Características de los Algoritmos

  • Preciso: Indicar el orden de realización de cada paso.

  • Definido: Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

  • Finito: Debe terminar en algún momento; tener un número finito de pasos.

  • Correcto: El resultado del algoritmo debe ser el resultado esperado.

  • Independiente: Del lenguaje de programación y de la computadora que lo ejecuta.

1.3. Entrada, Proceso y Salida

La definición de un algoritmo debe describir tres partes:

  • Entrada: Datos con los que se cuenta.

  • Proceso: Operaciones para transformar la entrada en salida.

  • Salida: Resultados esperados.

1.4. Tipos de Datos

En Pseudocódigo vamos a utilizar los siguientes tipos de datos:

1.4.1. Numéricos

Aquellos que representan una cantidad o valor determinado.

  • Enteros: Números completos, sin componentes fraccionarios o decimales. Ejemplos: 10, 5, 0, -234.

    Un dato que represente la edad de una persona, debe ser siempre del tipo Entero.

  • Reales: Subconjunto de los números reales, siempre tienen un punto decimal. Ejemplos: 0.345, 12.4, -231.005.

    Un dato que represente el peso de una persona, debe ser siempre del tipo Real.

1.4.2. Alfanuméricos

Datos que representan información textual (palabras, frases, símbolos, etc.). No representan valor alguno para efectos numéricos. Ejemplos: el nombre de una persona, alguna frase cualquiera.

1.4.3. Lógicos (Booleanos)

Dato que solo puede tomar uno de dos valores: Falso y Verdadero. Ejemplo: cuando se quiere determinar si un número es primo o no.

1.5. Estructuras de Datos Simples

1.5.1. Variables

Elementos de almacenamiento de datos. Representan una dirección de memoria donde se almacena un dato, cuyo contenido puede variar en el desarrollo del algoritmo. Formato de definición:

nombre_variable: tipo_de_dato

1.5.2. Constantes

Representan una zona de memoria donde se almacena un dato, pero su contenido no puede modificarse durante la ejecución del algoritmo.

1.6. Operadores y Operandos

Un operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.

1.6.1. Operadores de Asignación

Se utiliza para asignar un valor a una variable. El signo es :=. La acción de asignar es destructiva.

Edad := 29
precio := 25.45

1.6.2. Operadores Aritméticos

Son operadores binarios que realizan operaciones aritméticas.

  • + : Suma

  • - : Resta

  • * : Multiplicación

  • / : División real

  • MOD : Resto de la División entera

  • DIV : Cociente de la División entera

1.6.3. Operadores Relacionales

Sirven para realizar comparaciones. Proporcionan resultados lógicos (Verdadero/Falso).

  • = : Igual a

  • <> : No igual a

  • > : Mayor que

  • >= : Mayor o igual que

  • < : Menor que

  • <= : Menor o igual que

Formato: expresión1 operador_de_relación expresión2

1.6.4. Operadores Lógicos

Permiten la combinación de condiciones para formar una sola expresión lógica.

  • AND (Y, Λ): Conjunción.

    • V Y V -> V

    • V Y F -> F

    • F Y V -> F

    • F Y F -> F

  • OR (O, v): Disyunción.

    • V O V -> V

    • V O F -> V

    • F O V -> V

    • F O F -> F

  • NOT (NO): Negación.

1.7. Prioridad de los Operadores (General)

  1. Paréntesis ()

  2. Signo (+, - unarios), Negación (NO)

  3. Potencia (**)

  4. Multiplicación (*), División (/, DIV), Módulo (MOD)

  5. Suma (+), Resta (-)

  6. Concatenación (+ para cadenas, si aplica)

  7. Relacionales (<, <=, >, >=, =, <>)

  8. Conjunción (Y)

  9. Disyunción (O)

1.8. Prueba de Escritorio

Comprobación de un algoritmo para saber si está bien realizado. Consiste en tomar datos específicos como entrada y seguir la secuencia indicada hasta obtener un resultado. Se realiza en base a una tabla con las variables como encabezados.

Ejemplo de tabla de prueba de escritorio:

ESTADO

a

b

suma

Eo = Einicial

¿?

¿?

¿?

E1 (a := 2)

2

¿?

¿?

E2 (b := 3)

2

3

¿?

E3 (suma := a + b)

2

3

5

E4 (suma := suma + 1)

2

3

6