Uso específico de variables: contadores, acumuladores e indicadores
En muchos programas usamos variables con un propósito concreto: contar sucesos, acumular valores o recordar si ha ocurrido algo. Estas variables se conocen como contadores, acumuladores e indicadores.
Contadores
Un contador es una variable entera que utilizamos para contar cuántas veces ocurre un suceso. Su uso conlleva las siguientes etapas:
-
Declaración de la variable:
int contador{}; -
Inicialización a 0:
contador = 0; -
Incremento cada vez que ocurre el suceso:
contador = contador + 1; // o de forma abreviada: contador++;
Ejemplo con contador:
#include <iostream>
int main() {
int contador{0};
int numero{};
for (int i = 1; i <= 5; i++) {
std::cout << "Dime un número: ";
std::cin >> numero;
if (numero % 2 == 0) {
contador++;
}
}
std::cout << "Has introducido " << contador << " números pares." << std::endl;
return 0;
}
Acumuladores
Un acumulador es una variable numérica que usamos para sumar, multiplicar o acumular resultados parciales. Las etapas habituales son:
-
Declaración:
int suma{}; -
Inicialización, normalmente:
- A 0 si se va a realizar una suma.
- A 1 si se va a realizar un producto.
-
Acumulación del valor:
suma = suma + valor; // o de forma abreviada: suma += valor;
En el ejemplo vamos a sumar los números pares introducidos:
#include <iostream>
int main() {
int suma{0};
int numero{};
for (int i = 1; i <= 5; i++) {
std::cout << "Dime un número: ";
std::cin >> numero;
if (numero % 2 == 0) {
suma += numero;
}
}
std::cout << "La suma de los números pares es " << suma << std::endl;
return 0;
}
Indicadores
Un indicador o bandera es una variable booleana (true o false) que usamos para recordar si un suceso ha ocurrido. Las etapas de uso son:
-
Declaración:
bool ha_ocurrido{}; -
Inicialización, normalmente a
false:ha_ocurrido = false; -
Actualización cuando el suceso ocurre:
ha_ocurrido = true;
En el ejemplo vamos a comprobar si se ha introducido algún número par:
#include <iostream>
int main() {
bool hay_par{false};
int numero{};
for (int i = 1; i <= 5; i++) {
std::cout << "Dime un número: ";
std::cin >> numero;
if (numero % 2 == 0) {
hay_par = true;
}
}
if (hay_par) {
std::cout << "Has introducido al menos un número par." << std::endl;
} else {
std::cout << "No has introducido ningún número par." << std::endl;
}
return 0;
}