2.3 Contadores y Acumuladores

Referencia: Rodriguez 3.3.1 p24, Van Rossum 9.3.3 p73,  Downey 22.9

Asignación de valores

En algoritmos se usan las expresiones de asignación para denotar la intención de resolver operaciones y cuyo resultado se almacena en una variable simple, por lo que se expresan de la forma:

c ← a + b
d ← x2 + y2

Debe observar que las asignaciones no son expresiones de igualdad, como las usadas en matemáticas, por lo que su símbolo corresponde a una flecha que apunta el sentido donde se almacena el resultado.


Contadores

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

Con el ejemplo, se observan notar ciertas características de contadores:

  • Siempre tienen un valor inicial
  • Su valor nuevo es el resultado del valor anterior más una constante.

Al inicio del día, el contador debe ser inicializado, de preferencia con 0, cuando un puesto de atención está listo para atención, el contador se incrementa en uno, suena una alerta, y se procede a atender al primer turno.

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

contador ← 0
contador ← contador + 1

La expresión del literal b se puede leer como: «valor nuevo” de acumulador se le asigna el «valor anterior» de acumulador sumado al valor de 1″

Desde luego que los contadores puede sumarse un valor diferente a 1, pero siempre será un valor constante; también pueden tener cambios de forma ascendente, o disminuir desde un valor inicial.

Un contador decreciente se encuentra en un cronometro, por ejemplo del microondas, en el que 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 en Python:

>>> contador = 0
>>> contador = contador + 1
>>> contador
1

Acumuladores

Una versión ampliada de contadores es la llamada acumuladores, tienen las mismas características que un contador excepto el valor de incremento que es un valor variable.

Una cuenta de ahorros puede representarse en un algoritmo mediante un acumulador, pues el ahorrista no siempre podrá ahorrar 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).

Recordar que:

El concepto de asignar se 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 en Python:

>>> acumulador = 0
>>> acumulador = acumulador + 4.5
>>> acumulador
4.5
>>> acumulador = acumulador - 1.3
>>> acumulador
3.2