Introducción
En este artículo vamos a analizar un algoritmo para sumar los números del 1 al 10, es decir crearemos una función que nos resuelva la operación 1+2+3+…+10, esta función la programaremos de manera genérica para calcular la suma de todos los números naturales del 1 al N, siendo N cualquier número natural, por ejemplo si N vale 100, nuestro algoritmo sumará los números naturales del 1 al 100.
Cómo se puede resolver esta situación?
Algo que podríamos hacer es sumar explícitamente todos esos números, como se muestra a continuación:
suma = 1+2+3+4+5+6+7+8+9+10
Aquí a la variable suma se le asigna la suma de todos los números enteros hasta el 10.
Sin embargo esta manera de hacerlo es muy rígida, solo nos permite resolver esa operación en particular, si quisiéramos sumar los números hasta el 15, tenemos que ir al código y agregar los número manualmente y esto por supuesto es muy impráctico y no lo se puede modificar en tiempo de ejecución. Además, ¿por qué tomarse la molestia de escribir la suma cuando se podría asignar directamente el valor 55 a la variable suma, verdad?
Así que vamos a resolver este problema con una estrategia más flexible, vamos a hacer esta operación en varios pasos usando propiedades matemáticas como la asociativa o la existencia del elemento neutro para la suma. Esto nos permitirá tener un algoritmo que no solo sume los números enteros del 1 al 10 sino del 1 a cualquier número que queramos.
Algoritmo para sumar los números del 1 al 10
Podemos pensar esta suma grande en sumas más pequeñas, por ejemplo si partimos desde 0, primero resolvemos 0+1 y almacenamos este resultado en una variable, luego en otro paso, al resultado de 0+1 le sumamos 2, en otro paso, a ese resultado le sumamos 3 y así sucesivamente hasta llegar al último valor que se quiere sumar. La cantidad de pasos que hay que dar van desde el primer elemento que hay que sumar hasta el último elemento, osea en el ejemplo, desde el Paso 1 hasta el Paso 10.
Eso se puede resolver usando una variable que funcione como acumulador de la suma y un bucle repetitivo que vaya sumando los números al acumulador en cada iteración. Así que para las variables declaramos:
public int suma;
public int n=10;
El acumulador se inicializa en 0, porque el 0 es el elemento neutro para la suma, 0 sumado a cualquier número es igual a ese número. Esto lo hacemos con la siguiente instrucción:
suma=0;
Luego definimos un bucle for, si estás usando Visual Studio algo que puedes hacer es escribir «for» y apretar dos veces la tecla Tab, eso va a autocompletar la sintaxis del bucle for.
El bucle lo vamos a inicializar en el valor 1 y hacer que termine en la variable N, en este caso en particular es importante que usemos el signo “menor o igual”. Resumiendo lo que vamos a obtener es una primera iteración en la que «i» vale 1 y en la última iteración i vale 10 (en este caso particular).
for(int i=1;i<=n;i++){
suma=suma+i;
}
Dentro del bucle ejecutaremos la instrucción que se observa, variable suma igual a la variable suma más i, esto significa que primero vamos a calcular esta operación y luego vamos a asignarla a esta variable, en la primera iteración, suma vale 0, a eso le sumamos i que vale 1, 0+1 igual 1 y eso lo asignamos en la variable suma, en la siguiente iteración suma vale 1 e i vale 2, de modo que se resuelve la operación 1+2 y se asigna en la variable suma. Así sucesivamente hasta llegar al último número.
Prueba de funcionamiento del algoritmo en Unity
El código completo en lenguaje C# quedaría aproximadamente de la siguiente manera:
public int suma;
public int n=10;
void Start(){
suma=0;
for(int i=1;i<=n;i++){
suma=suma+i;
}
}
Procedemos a testear el código, guardamos los cambios en el Script y lo ejecutamos, en nuestro caso esto lo hacemos asignando el Script que contiene al código a cualquier GameObject de la jerarquía de nuestro proyecto en Unity y entrando en el modo juego. Al hacer esto, Unity ejecuta automáticamente la función Start de ese Script y el resultado de la suma queda almacenado en la variable suma.
Como la variable «n» es pública, se puede modificar su valor en el inspector, por ejemplo poner 100 y se va a resolver la suma de los números naturales del 1 al 100.
Vídeo tutorial con la implementación del algoritmo para sumar N números en C# Unity
En este vídeo muestro cómo implementar un ALGORITMO para SUMAR los números del 1 al 10 en lenguaje C# en Unity.