Tema 2: Estructura general de un algoritmo

 

Un algoritmo es una secuencia de instrucciones ordenadas para solucionar un problema. La estructura de un algoritmo consiste en un proceso que mediante una entrada de datos se obtiene una salida. Los algoritmos que se analizarán tienen que contar al menos con datos de entrada.


COMPILACIÓN Y ERRORES

Se llaman errores de compilación a aquellos que se producen cuando el IDE compila un programa. Un caso típico son los errores de sintaxis: si escribimos código fuente que el IDE no puede comprender, nunca podrá compilar el programa y crear la aplicación, ya que no sabrá qué hacer con el código.

Un ejemplo sencillo:

      A = (B * C

Aquí hay un paréntesis sin cerrar, lo que produce un error de compilación.

Dependiendo del lenguaje y del compilador utilizado, un error de compilación puede mostrar tantos errores. Por ejemplo, olvidar un punto y coma al final de una línea, cuando un lenguaje lo requiere, puede causar errores de análisis porque el compilador no sabe cuándo se supone que termina una línea en particular. Este error de análisis puede manifestarse como muchos errores de compilación, haciendo que parezca que de repente hay problemas horribles con el código en lugar de un pequeño error tipográfico. En general, una cuidadosa atención a obedecer las reglas de un lenguaje de computadora puede prevenir este tipo de errores. De la misma manera, si aparece una avalancha repentina de errores de compilación, el programador experimentado generalmente puede inferir que un solo pequeño error causó la mayoría de ellos.

En un programa podemos encontrarnos con distintos tipos de errores, pero a grandes rasgos podemos decir que todos los errores pertenecen a una de las siguientes categorías:

·         Errores de sintaxis

·         Errores lógicos

·         Errores de ejecución 

Si desea conocer un poco sobre estos tipos de errores, le recomiendo que vea el siguiente video a continuación.



CONTADORES Y ACUMULADORES



¿Qué es un contador en programación? ¿Qué es un acumulador en programación? Son conceptos de uso cotidiano que son el resultado de la suma de una serie de números. Los conceptos se pueden explicar con los siguientes ejemplos:

CONTADORES 

Al visitar el departamento de servicio al cliente en una empresa, los clientes para obtener un turno deben tomar un ticket. Un letrero electrónico indica el número del cliente que se está atendiendo, luego este número cambia incrementándose en 1 para anunciar el siguiente turno a ser atendido.

El ejemplo de uso práctico de un contador permite observar dos características:

·     Siempre tienen un valor inicial

·     El valor nuevo del contador es el resultado del valor anterior más una constante.

Al inicio del día, el contador de tickets debe ser inicializado, de preferencia con 0. Cuando un puesto de atención está listo para atención, el contador se incrementa en uno, se escucha una alerta y el cliente se puede acercar con el ticket del primer turno.

Las características descritas en forma algorítmica se escriben como:

contador 0

contador contador + 1

La expresión de la segunda línea se puede leer como: «valor nuevo” de contador es el resultado del «valor anterior» incrementando en 1.

Desde luego que los contadores pueden sumarse un valor diferente a 1, pero siempre será un valor constante, como cuando se cuenta de dos en dos. Contador decreciente en programación.


La variable contador también pueden tener cambios de forma ascendente, o disminuir desde un valor inicial (decreciente).

Un ejemplo de contador decreciente se observa en cronometro del microondas para calentar alimentos. El valor inicial son los segundos que permanecerá encendido. El contador de tiempo disminuye en uno cada segundo y al llegar a 0 se apaga el microondas.

Ejemplo de contador con instrucciones:


>>> contador = 0

>>> contador = contador + 1

>>> contador

1

.. [ contador ] [ acumulador]


ACUMULADORES

Un acumulador en programación es una versión ampliada de un contador. El acumulador tiene las mismas características que un contador excepto el valor de incremento que es un valor variable.

Por ejemplo, una cuenta de ahorros puede representarse en un algoritmo mediante un acumulador, pues quien ahorra no siempre lo hará con una cantidad fija en la cuenta: un día deposita 10, otro día deposita 30, otro deposita 5.

Con el ejemplo de ahorro, se puede determinar que en el acumulador no siempre se añade un valor positivo, pues cuando se hace un retiro, se puede interpretar como que el valor añadido es negativo.

Las características descritas para forma algorítmica se escriben como: 


acumulador 0

acumulador acumulador + X


La expresión del literal b se para una cuenta puede leer como: «saldo nuevo” de acumulador es el «saldo anterior» de acumulador considerando el deposito (+x) o retiro (-x).

Recuerde que:

El concepto de asignar es usado en algoritmos “=” carece de sentido matemático.

Si tomamos como ejemplo el acumulador, si se expresa como una igualdad, se interpretaría como:


acumulador = acumulador + X

acumulador - acumulador = X

0 = X


Cuando en el algoritmo se quiere expresar en realidad es una asignación, por lo que se utiliza el símbolo “


acumulador acumulador + X


Esta aclaración permite formalizar la diferencia de comparación de igualdad “=” usada dentro de los condicionales.

Ejemplo de acumulador en:

 

>>> acumulador = 0

>>> acumulador = acumulador + 4.5

>>> acumulador

4.5

>>> acumulador = acumulador - 1.3

>>> acumulador

3.2

Video explicativo de contador y acumulador en Pseint




Video de ejemplo de contador y acumulador en Pseint


TIPOS DE OPERADORES


Los operadores son símbolos que indican cómo se deben manipular los operandos. Los operadores junto con los operandos forman una expresión, que es una fórmula que define el cálculo de un valor. Los operandos pueden ser constantes, variables o llamadas a funciones, siempre que éstas devuelvan algún valor. El compilador evalúa los operadores, algunos de izquierda a derecha, otros de derecha a izquierda, siguiendo un orden de precedencia. Este orden se puede alterar utilizando paréntesis para forzar al compilador a evaluar primero las partes que se deseen.

Operaciones de asignación

Los operadores de asignación o assignment operators, nos permiten realizar una operación y almacenar su resultado en la variable inicial. Podemos ver como realmente el único operador nuevo es el “=”. El resto son abreviaciones de otros operadores que habíamos visto con anterioridad. Ponemos un ejemplo con:          x=7

El signo igual (=) significa que el computador va a realizar lo que está a la derecha del igual y lo va a almacenar en la variable que se encuentre a la izquierda de este.

EJEMPLO

Si x no tiene un valor antes de ejecutar y = x + 1, se producirá un error lógico.

x = 2;

y = x + 1;

Si a, b y c no tienen un valor antes de ejecutar z = a + b + c, se producirá un error lógico.

a = 3 , b = 4, c = 8;

z = a + b + c;

m=1

m= m+1

m= m+1

m= m+5

Print (m)

 Tabla de operadores de asignación

Operadores matemáticos o aritméticos

Existen operadores aritméticos binarios y unarios.

Los binarios son:

+ :       Suma de dos o más valores o variables.

- :        Resta de dos o más valores o variables.

* :       Multiplicación de dos o más valores o variables.

/ :        División de dos o más valores o variables.

% :     Modulo (obtención del residuo de una división) de dos o más valores y variables.

// ; div :     Devuelve la parte entera de una división

 Los unarios:

++ :         Aumenta el valor de una variable en una unidad. for (i=0;i<=10; i++)

-- :          Disminuye el valor de una variable en una unidad. For(i=10; i>=1;i--)

- :           Cambia el signo de una variable, es como multiplicar por -1

 

Tabla de operadores matemáticos o aritméticos 


Operadores relacionales o de comparación

Son operadores que se encargan de unir y comparar dos o más valores

!=, <> :     diferente a, distinto, no es igual

= :             igual

> :             mayor que

< :             menor que

>= :           mayor igual que

<= :           menor igual que

Estos operadores se usan para comparar valores de variables por pares es decir,

no se pueden comparar más de 2 valores al mismo tiempo:

a > b > c                         //Error

(a > b) && (b > c)         //Correcto

Tabla de operadores relacionales o de comparación. 


Operadores Lógicos

Son operadores de unión, también llamados compuertas lógicas, estos operadores pueden unir dos o más pares de valores comparados por medio de los operadores relaciones:

&& :     Operador AND (Y) todas las condiciones deben ser verdaderas para que se ejecute una acción. (conjunción)

|| o #:      Operador OR (O) de todas las condiciones solo una debe ser verdadera y con ello hace una determinada acción. (disyunción)

! :            Operador NOT (No) se niega la afirmación para cambiar su valor, es decir cambia de verdadero a falso y de falso a verdadero. (negación)

Tabla de operadores lógicos






Autor: John Silva Triviño