Ejercicio 5 – Resolver la suma de los n primeros números

Introducción

En este problema tenemos como entrada un número natural y debemos realizar la suma de todos los números naturales menores o iguales al número de entrada, es decir los n primeros números naturales. Por ejemplo si la entrada es 3 debemos realizar la operación 1+2+3 y mostrar el resultado en pantalla. Este es el ejercicio 5 de la serie de problemas básicos de programación en lenguaje C# para resolver en Unity.

En este problema básicamente vamos a resolver una sumatoria, puedes ver este vídeo para informarte sobre la sumatoria y la notación sigma y también leer este artículo sobre sumatoria y productoria en programación.

Todos los ejercicios aquí

Solución del ejercicio 5 – Algoritmo para sumar los primeros N números


Descripción del problema y estrategia para la resolución

El código del algoritmo que resuelve el problema planteado debe ir dentro de la función «AlgoritmoEjercicio» del Script correspondiente, en este caso el script «Ejercicio5.cs». La función «AlgoritmoEjercicio» será ejecutada al pulsar el botón con el texto «Ejecutar Algoritmo» que hay en pantalla.

Lo que tenemos que hacer es tomar la entrada ingresada por el usuario y convertirla a un valor numérico, de esta forma podremos hacer operaciones matemáticas con ella.

Una vez que tenemos el valor ingresado, tenemos que hacer la suma de todos los números naturales desde ese número hasta el valor ingresado inclusive y almacenar el resultado en una variable.

Luego definimos una variable tipo string llamada «resultado», generamos el mensaje de respuesta, que será la concatenación de texto junto con el resultado de la sumatoria. Finalmente escribimos este resultado en pantalla.

Solución del ejercicio

El dato ingresado por el usuario estará almacenado en las variable «dato1». Para convertir estas variables tipo string a una variable tipo entera usamos la siguiente instrucción:

int num1 = int.Parse(dato1);

De esta forma estamos definiendo una variable tipo int llamada «num1» que se inicializa con el valor de la entrada convertido a int.

Es importante aclarar que si el string dato1 no tiene formato numérico (por ejemplo contiene letras), no se podrá hacer la conversión y tendremos un error en tiempo de ejecución. En este tipo de ejercicios se asume que la entrada ingresada por el usuario estará en el formato correcto.

Ahora que hemos convertido el strings a int podemos calcular la sumatoria, para esto tenemos que usar alguna estructura de control repetitiva que nos permita realizar una serie de cálculos de manera repetitiva, en este caso, como conocemos la cantidad de repeticiones que hay que hacer lo más conveniente sería usar un bucle for. Pero antes, definamos un valor entero para acumular el resultado de la suma:

int suma = 0;

El acumulador se inicializa con el valor 0, el cual es el elemento neutro para la suma, esto significa que sumarlo no tendrá efecto sobre el total.

A continuación vamos a definir el bucle for de la siguiente manera:

for(int i=1; i<=num1;i++){
//Instrucciones a repetir
}

Para definir un bucle for tenemos que indicar algunos parámetros, primero la variable de iteración y su valor inicial, se trata de una variable que se irá modificando en cada repetición, en este caso lo hacemos todo junto con la instrucción «int i=1«, aquí estamos declarando a «i» como variable de iteración e indicamos que comienza valiendo 1.

Luego declaramos la condición que se tiene que cumplir para seguir haciendo repeticiones, en este caso como las operaciones que queremos hacer dependen del valor de entrada y si la entrada es por ejemplo 4 tenemos que efectuar la operación «1+2+3+4», el bucle se tiene que repetir mientras la variable de iteración sea menor o igual al valor de entrada, por esta razón la condición del bucle es «i<=num1«.

Por último definimos la acción que ocurre al finalizar una iteración, usualmente se incrementa en 1 la variable de iteración, por esta razón ponemos «i++«.

Luego de definir estos 3 parámetros abrimos y cerramos llaves y dentro colocaremos todas las instrucciones que deben ejecutarse en cada iteración, he marcado esta zona con un comentario dentro del bucle for.

Ahora tenemos que ver que instrucción colocaremos dentro del bucle for, en este caso lo que queremos hacer es ir sumando los valores enteros de la variable iteración, lo podemos hacer de la siguiente manera:

suma = suma + i;

Es decir sumamos el valor de la variable «suma» con la variable de iteración «i» y el resultado lo almacenamos nuevamente en la variable suma, recordemos que en la primera iteración la variable «suma» vale 0 e «i» vale 1, por lo tanto estaremos realizando la operación «0+1» y almacenando el resultado en «suma». Esta instrucción también la podemos resumir de la siguiente manera y el resultado es el mismo:

suma += i;

Entonces cuando el bucle for finalice, en «suma» tendremos acumulado el valor total de la sumatoria y la respuesta a nuestro problema, así que definimos una variable tipo string llamada «resultado» y elaboramos el mensaje de respuesta, puede ser de la siguiente manera:

string resultado=»El resultado de la suma es: «+ suma.ToString();

Es decir concatenamos un texto al valor de la suma convertido a strings y eso lo almacenamos en la variable «resultado»

Finalmente escribimos este resultado en el texto del Canvas en pantalla con la siguiente instrucción:

componenteTexto.text=resultado;

Scroll al inicio
Secured By miniOrange