Contador en C++ (para que sirve)

Contadores en C++

Los contadores son muy utilizados en los programas de C++, realmente su implementación es a diario, la mayoría de los programas que van más allá de un simple lector de archivos de texto o una simple calculadora necesitarán uno o un par de contadores. En una definición sencilla podemos decir que un contador es una variable de tipo entero que se incrementará o decrementará de forma automática, a continuación podrá ver con ayuda de algunos ejemplos su implementación sencilla, y posteriormente tendrá a su disposición algunos códigos que implementan el uso de contadores para realizar diversas funciones.

Como hacer un contador en C++



Lo primero que haremos es crear una variable de tipo entero, está se implementará dentro de un bucle, los contadores pueden ser utilizados dentro de cualquier tipo de bucle (while, for y do while), dentro del bucle incrementaremos su valor en 1 por cada vuelta de bucle y este contador nos servirá para que el propio bucle se detenga, el principal uso de los contadores es controlar la cantidad de veces que un bucle se repetirá, veamos el ejemplo más sencillo que existe.

#include <iostream>

using namespace std;

int main(){

int contador=0; // Creamos la variable contador

while (contador<10){
cout << contador+1 << endl; // Imprimimos por consola su valor+1
contador=contador+1;// Incrementamos su valor en 1
}


system("pause");
}


Contador basico, codigo de ejemplo

En el ejemplo anterior hemos usado "contador=contador+1;" para incrementar su valor actual, de tal forma que si vale 8 valdrá 8+1 que es igual a 9, pero tenga en cuenta que existe una manera más fácil de incrementar su valor en uno, esta es la siguiente: "contador++;", le recomiendo que utilice esta última porque es la que encontrará en la mayoría de ejemplos y cuando trabaje con los códigos que otro programador desarrolle.

¿Desde qué número tiene que empezar un contador en C++?



Depende de donde se va a implementar, en el ejemplo anterior he inicializado la variable contador con el valor 1 para que imprima todos los números desde el 1 hasta el 10, pero cuando utilizamos arreglos conviene declarar el contador desde 0, porque los arreglos empiezan desde la casilla o índice 0,

Observe que el contador nos ha servido en esta ocasión para 2 cosas, la primera es controlar cuantas veces se ejecutará el bucle y la segunda es imprimir el valor del contador, recordemos que el contador también puede decrementarse observe el siguiente ejemplo.

Lista descendente del 10 al 1 en C++



#include <iostream>

using namespace std;

int main(){

int contador=10; // Empieza en 10

while (contador>0){ // Hacemos un par de cambios aqui
cout << contador << endl;
contador--;// Decrementamos su valor
}

system("pause");
}


Contador con cuenta regresiva

En este caso hicimos 3 pequeñas modificaciones indispensables para el funcionamiento del programa, hemos obtenido una lista descendente de los números del 10 al 0.

Ejemplo #3 de contadores en C++



En esta práctica crearemos un arreglo que almacenará 5 datos y recorreremos de forma automática los 5 espacios del arreglo imprimiendo el dato que contengan dentro, para recorrerlo utilizaremos un contador, aunque este ejemplo se realizará con 5 datos para su fácil comprensión, la verdadera utilidad de este algoritmo se evidencia cuando guardamos una lista con 20, 50, 100 o muchos más datos, donde no podríamos imprimir manualmente todos los datos.

#include <iostream>

using namespace std;

int main(){

int contador=0; // Empieza en 0
string arreglo[5]={"primer dato", "segundo texto", "80", "titulo", "fin"};

while (contador<5){ // Mientras sea menor que 5 (Explicacion abajo)
cout << arreglo[contador] << endl; // Explicacion abajo
contador++;
}

system("pause");
}

Ejemplo #3 compilado

El arreglo es de tipo string porque así podemos almacenar texto en el (lo explico por si todavía no conocía este tipo de datos), el bucle se ejecutará mientras contador sea menor a 5, eso se debe a que desde 0 hasta el 4 hay 5 números por tanto se ejecutará 5 veces, y como acabamos de mencionar los arreglos empiezan en la casilla(índice) 0.

Crear un arreglo dinámicamente y recorrerlo con un contador



Un arreglo creado dinámicamente es aquel que no tiene un tamaño definido por el programador no será arreglo[10] ni arreglo[11], se definirá su tamaño como resultado de la ejecución de algún código según la necesidad.

En esta práctica será el usuario el que decidirá mediante sus objetivos cual será el tamaño que tendrá el arreglo, le pediremos que nos diga cuantos números desea guardar, si él dice 100, entonces nuestro arreglo será de tamaño 100, pero si desea guardar 5 el arreglo se creara con un tamaño de 5 espacios.

#include <iostream>
#include <conio.h>

using namespace std;

int medida; // Aqui guardaremos el tamaño del arreglo
int actual=0; // Este contador servira para los bucles de abajo

int main ()
{

cout << "Cuantos numeros desea guardar" << endl;
cin >> medida; // Capturamos la cantidad de numeros que se sumarán
int arreglo[medida]; // Creamos el arreglo a partir de la cantidad anterior
while (actual<medida){ // Este bucle se repetira tantas veces como numeros se necesita guardar
cout << actual+1 << ") Ingrese un numero: "; // Uno por uno se pediran los numeros
cin >> arreglo[actual]; // Uno por uno guardaremos los numeros en el arreglo
actual++; // Incrementamos el valor de la variable actual en uno
}
actual=0; // Reseteamos la variable a 0 porque la necesitamos a continuacion
cout << "Los numeros guardados son: " << endl;
while (actual<medida){ // volvemos a recorrer el arreglo desde 0 con este bucle
cout << actual+1 << ") " << arreglo[actual] << endl; // En este bucle leemos los datos guardados
actual++;
}

getch();
}


Si se le dificulta entender un poco el código anterior no se preocupe, entre los ejercicios que acabamos de realizar este último es el más avanzado, razón mayor para que se esfuerce en entender que función realiza cada porción de código, recuerde que si se le dificulta entender algo o desea cambiar un código puede preguntar pues me mantengo atento para responder con prontitud.

En lecciones anteriores también les compartí un código para sumar todos los números contenidos en un arreglo, este ejemplo le servirá para pedirle a un usuario que ingrese por ejemplo 10 números y luego sumarlos de forma automática, si desea continuar practicando con contadores puede visitarlo.
Comentarios y preguntas