2.3 Contadores y Acumuladores en programación

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

¿Qué es un contador  en programación? ¿Qué es un acumulador en programación? Simplificando, es un concepto de uso cotidiano que es el resultado de la suma de una serie de números. El concepto y diferencias se puede explicar con los siguientes ejemplos:

..


¿Qué es un contador en programación? ejemplo

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 éste número cambia incrementándose en 1 para anunciar el siguiente turno a ser atendido.


El ejemplo, es un uso práctico de un contador, con el que se observan  ciertas características:

  • 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, se escucha una alerta y se puede acercar el cliente con el 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 contador es el resultado del «valor anterior» sumado el «valor de 1» o incrementando en 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 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 en Python:

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

..


¿Qué es un acumulador en programación?

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 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 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 Python:

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

En la siguiente página se presentan algunos ejemplos como ejercicios resueltos sobre contadores y acumulafores de examenes anteriores.