6

Contadores, acumuladores y centinelas.

¿Has terminado el curso de programación básica y buscas saber mas de la programación? Me gustaría aportar a la comunidad con conocimiento en el área de desarrollo con algunos conceptos sencillos en el mundo de la programación.

A medida que se van presentando problemas y los vas resolviendo con un código del cual te sientes orgulloso, llegas a darte cuenta que hay ciertos patrones que suelen aparecer en múltiples códigos, ciertas variables que tienen comportamientos similares sin importar la naturaleza del algoritmo.

Voy a explicar 3 conceptos interesantes, contadores, acumuladores y centinelas.

Contadores
Un contador, no es mas que una variable que cuenta (¿Parece obvio, no?). Los contadores suelen aparecer en ciclos o funciones recursivas (Tema bastante interesante).

var i = 1;
var par = 0;
while (i <= 10) {
	if ( i % 2 == 0 ){
		par++;
	}
	i++;
}

En este código, el contador es la variable “par”, normalmente son inicializadas en 0 antes de un ciclo y suelen aumentar su valor (par++) si se cumplen ciertas condiciones, en este caso, cuenta la cantidad de números pares que hay entre 1 y 10

Acumuladores
Los acumuladores son variables que almacenan datos de una suma continua, su característica mas común es que su valor suele ser siempre una suma o resta del valor actual con un dato nuevo.

var notas = [8, 7, 10, 9, 5];
var acum = 0;
var promedio;
for (var i = 0; i < notas.length; i++){
	acum = acum + notas[i];
}
promedio = acum / notas.length;

La variable que actúa como contador es “acum”, normalmente se inicializan en 0 antes de una ciclo y suelen sumar su valor actual con un nuevo dato (acum = acum + notas[i]). En este caso, suma todas las notas al recorrer el array notas y luego calcula el promedio.

Centinelas
Tambien llamados “banderas”, los centinelas son variables, normalmente de tipo lógicas (boolean), conservan un estado hasta que un evento requiera cambiarlo y ejecutar otra funcionalidad.

var arrelo = [1, 6, 8, 7, 9, 12];
var band = false;
var i = 0;
while (!band && i < arreglo.length){
	if (arreglo[i] == 9){
		band = true;
	}else{
		i++;
	}
}
if (band){
	console.log('Encontramos el numero 9')
}else{
	console.log('No encontramos el numero 9')
}

La variable “band” es la que vive como un centinela o bandera. Es una variable lógica que es inicializada en falso y hace que el ciclo while se ejecute hasta conseguir el numero 9 dentro de la variable “arreglo”. Podemos ver que luego del ciclo, preguntamos por el valor de band para saber si existe o no el numero 9 dentro de “arreglo”

Espero poder haber ayudado a comprender estos pequeños conceptos que les van a presentar en muchos proyectos a lo largo de su carrera como programador.

Escribe tu comentario
+ 2
1
3Puntos
6 años

This is different kind of the situations when we see this type of the coding windows split screen. This always show many of the routine ways which works very separately and have too much options for the users.

1
5 años

Hola, necesito hacer un acumulador que tome el valor de varios <input type=select> pero que no sólo sume sino que también reste los valores si el usuario decide cambiar por un valor menor. ¿Cómo sería la lógica para este problema? Muchas gracias