Category Archives: Práctica

Cómo contar el número de veces que sucede algo

Bueno, en esta ocasión vamos a ayudarle a un comentarista de este blog con sus problemas, el me ha pedido un programa que cuente la cantidad de números primos que hay en un rango, no se ha conformado con saber si un número es primo o no o con saber cómo mostrar los números primos en un rango, así que le vamos a ayudar con la única parte de su programa que le falta: saber cómo contar el número de veces que sucede algo.

Para esto vamos a usar una variable tipo int (entero) que va a ir aumentando una unidad cada vez que ocurra ese ‘algo’ que queremos contar. Veamos como funcionaría un contador dentro de un ciclo:

#include
using namespace std;

int main()
{
    int contador=0;
    for(int i=0; i<10; i++)
        contador++;
    cout << contador;
}

Obviamente esto muestra un 10 en pantalla. Porque la variable ‘contador’ aumenta una unidad cada vez que el ciclo da una vuelta.
contador++; es lo mismo que contador = contador + 1;
Ahora veamos como funciona si agregamos una condición:

#include
using namespace std;

int main()
{
    int contador=0;
    for(int i=0; i<10; i++)
    {
        if(i==5)
            contador++;
    }
    cout << contador;
}

Esto obviamente muestra en pantalla un 1, porque solo una vez i vale 5. Ahora con una condición más complicada:

#include
using namespace std;

int main()
{
    int contador=0;
    for(int i=0; i<10; i++)
    {
        if(i%2==0)
            contador++;
    }
    cout << contador;
}

Con el operador % se obtiene el residuo de la división de los dos números entre los que está. Si la condición es que i/2 tenga residuo un de 0, significa que estamos dejando pasar sólo los números pares, por lo que deberá mostrarse en pantalla un 5.

Qué fácil no?, ahora nuestro amigo ya tiene todo lo necesario para armar su programa.

Advertisements

Declarar variable dentro de un ciclo for

En el programa anterior use la “técnica” de declarar una variable dentro de un ciclo for y luego de publicarla me di cuenta de que algunas personas podrían encontrar eso algo confuso.

Es casi exactamente lo mismo escribir esto:
int i=0;
for(i=0; i<=10; i++)
{
printf("%i", i);
}

…que esto:
for(int i=0; i<=10; i++)
{
printf("%i", i);
}

La única diferencia es que en el primero ‘i’ es una variable como cualquier otra y en el segundo ‘i’ solo sirve dentro del ciclo for. Esto mas que ser una desventaja es una ventaja, ya que te permite usar la misma variable en todos lo ciclos que quieras en el mismo programa. Yo en lo personal siempre uso ‘i’ como la variable que controla cualquier ciclo, si llegara a haber un ciclo dentro de otro, uso ‘ii’.