TEC · Técnica 4 · Control de flujo

20.Contadores y acumuladores

Variables que se actualizan en cada vuelta de un ciclo: el contador suma de uno en uno para contar; el acumulador va sumando valores para obtener un total.

¿Qué es?

Un contador es una variable que cuenta cuántas veces pasa algo: suma 1 cada vez. Un acumulador es una variable que va sumando valores para obtener un total.

Piensa en una caja de supermercado: el contador dice cuántos productos llevas; el acumulador, cuánto vas a pagar.

Contador Acumulador
Para qué Contar Sumar valores
Inicio típico 0 0 (o 1 si se multiplica)
En cada vuelta contador += 1 total += valor
Ejemplo Alumnos aprobados Suma de calificaciones

Sintaxis (pseudocódigo / Python)

Promedio de N calificaciones y cuántas son aprobatorias.

PSeInt

Algoritmo Promedio
	Definir n, i, aprobadas Como Entero
	Definir calificacion, suma Como Real
	Escribir "¿Cuántas calificaciones?"
	Leer n
	suma <- 0
	aprobadas <- 0
	Para i <- 1 Hasta n Hacer
		Escribir "Calificación ", i, ":"
		Leer calificacion
		suma <- suma + calificacion
		Si calificacion >= 6 Entonces
			aprobadas <- aprobadas + 1
		FinSi
	FinPara
	Escribir "Promedio: ", suma / n
	Escribir "Aprobadas: ", aprobadas
FinAlgoritmo

Python

n = int(input("¿Cuántas calificaciones? "))
suma = 0
aprobadas = 0
for i in range(1, n + 1):
    calificacion = float(input(f"Calificación {i}: "))
    suma += calificacion
    if calificacion >= 6:
        aprobadas += 1
print("Promedio:", round(suma / n, 2))
print("Aprobadas:", aprobadas)

Ejemplo guiado

Problema: registrar ventas del día hasta que se escriba 0, y mostrar el número de ventas, el total, la venta mayor y la menor.

Variables: un contador (ventas), un acumulador (total) y dos variables para el máximo y el mínimo.

ventas = 0
total = 0
mayor = None
menor = None

monto = float(input("Monto de la venta (0 para terminar): "))
while monto != 0:
    ventas += 1
    total += monto
    if mayor is None or monto > mayor:
        mayor = monto
    if menor is None or monto < menor:
        menor = monto
    monto = float(input("Monto de la venta (0 para terminar): "))

if ventas > 0:
    print("Ventas:", ventas)
    print("Total:", total)
    print("Mayor:", mayor)
    print("Menor:", menor)
else:
    print("No hubo ventas")

Resumen que muestra al final (después de capturar 150, 80, 320 y 0):

Ventas: 3
Total: 550.0
Mayor: 320.0
Menor: 80.0

Errores comunes

# ✗ Error lógico: la suma se reinicia en cada vuelta
for calificacion in [8, 9, 10]:
    suma = 0
    suma += calificacion
print(suma)   # 10, no 27
# ✗ Incorrecto
for calificacion in [8, 9, 10]:
    suma += calificacion
NameError: name 'suma' is not defined

Buenas prácticas

  • Nombres claros: total_ventas, num_aprobados, no c o a.
  • Inicializa todos juntos antes del ciclo, para verlos de un vistazo.
  • Usa += para actualizarlos.
  • En Python, conoce las funciones que ya hacen esto con listas: sum(), len(), max(), min().

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

© solutions_ · Fundamentos de programación · 20 Contadores y acumuladores