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

Introducción

Este es el ejer­ci­cio 5 de la serie de prob­le­mas bási­cos de pro­gra­mación en lengua­je C# para resolver en Uni­ty. En este prob­le­ma ten­emos como entra­da un número nat­ur­al y debe­mos realizar la suma de todos los números nat­u­rales menores o iguales al número de entra­da, es decir los n primeros números nat­u­rales. Por ejem­p­lo si la entra­da es 3 debe­mos realizar la operación 1+2+3 y mostrar el resul­ta­do en pantalla. 

En este prob­le­ma bási­ca­mente vamos a resolver una suma­to­ria, puedes ver este vídeo para infor­marte sobre la suma­to­ria y la notación sig­ma y tam­bién leer este artícu­lo sobre suma­to­ria y pro­duc­to­ria en pro­gra­mación.

Página de los ejercicios

🟢 Vídeo intro­duc­to­rio de la serie de ejercicios

🟢 Solu­ción del ejer­ci­cio 5 — Cómo sumar los primeros N números

VÍDEOS DEL CANAL CON MÁS BÚSQUEDAS

DE UNITY

DE BLENDER

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

El códi­go del algo­rit­mo que resuelve el prob­le­ma plantea­do debe ir den­tro de la fun­ción "Algo­rit­moE­jer­ci­cio" del Script cor­re­spon­di­ente, en este caso el script "Ejercicio5.cs". La fun­ción "Algo­rit­moE­jer­ci­cio" será eje­cu­ta­da al pul­sar el botón con el tex­to "Eje­cu­tar Algo­rit­mo" que hay en pantalla.

Lo que ten­emos que hac­er es tomar la entra­da ingre­sa­da por el usuario y con­ver­tir­la a un val­or numéri­co, de esta for­ma podremos hac­er opera­ciones matemáti­cas con ella.

Una vez que ten­emos el val­or ingre­sa­do, ten­emos que hac­er la suma de todos los números nat­u­rales des­de ese número has­ta el val­or ingre­sa­do inclu­sive y alma­ce­nar el resul­ta­do en una variable. 

Luego defin­i­mos una vari­able tipo string lla­ma­da "resul­ta­do", gen­er­amos el men­saje de respues­ta, que será la con­cate­nación de tex­to jun­to con el resul­ta­do de la suma­to­ria. Final­mente escribi­mos este resul­ta­do en pantalla.

Solución del ejercicio

El dato ingre­sa­do por el usuario estará alma­ce­na­do en las vari­able "dato1". Para con­ver­tir estas vari­ables tipo string a una vari­able tipo entera usamos la sigu­iente instrucción: 

int num1 = int.Parse(dato1);

De esta for­ma esta­mos definien­do una vari­able tipo int lla­ma­da "num1" que se ini­cial­iza con el val­or de la entra­da con­ver­tido a int. 

Es impor­tante aclarar que si el string dato1 no tiene for­ma­to numéri­co (por ejem­p­lo con­tiene letras), no se podrá hac­er la con­ver­sión y ten­dremos un error en tiem­po de eje­cu­ción. En este tipo de ejer­ci­cios se asume que la entra­da ingre­sa­da por el usuario estará en el for­ma­to correcto. 

Aho­ra que hemos con­ver­tido el strings a int podemos cal­cu­lar la suma­to­ria, para esto ten­emos que usar algu­na estruc­tura de con­trol repet­i­ti­va que nos per­mi­ta realizar una serie de cál­cu­los de man­era repet­i­ti­va, en este caso, como cono­ce­mos la can­ti­dad de repeti­ciones que hay que hac­er lo más con­ve­niente sería usar un bucle for. Pero antes, defi­namos un val­or entero para acu­mu­lar el resul­ta­do de la suma:

int suma = 0;

El acu­mu­lador se ini­cial­iza con el val­or 0, el cual es el ele­men­to neu­tro para la suma, esto sig­nifi­ca que sumar­lo no ten­drá efec­to sobre el total.

A con­tin­uación vamos a definir el bucle for de la sigu­iente manera:

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

Para definir un bucle for ten­emos que indicar algunos parámet­ros, primero la vari­able de iteración y su val­or ini­cial, se tra­ta de una vari­able que se irá mod­i­f­i­can­do en cada repeti­ción, en este caso lo hace­mos todo jun­to con la instruc­ción "int i=1", aquí esta­mos declaran­do a "i" como vari­able de iteración e indicamos que comien­za valien­do 1.

Luego declar­amos la condi­ción que se tiene que cumplir para seguir hacien­do repeti­ciones, en este caso como las opera­ciones que quer­e­mos hac­er depen­den del val­or de entra­da y si la entra­da es por ejem­p­lo 4 ten­emos que efec­tu­ar la operación "1+2+3+4", el bucle se tiene que repe­tir mien­tras la vari­able de iteración sea menor o igual al val­or de entra­da, por esta razón la condi­ción del bucle es "i<=num1".

Por últi­mo defin­i­mos la acción que ocurre al finalizar una iteración, usual­mente se incre­men­ta en 1 la vari­able de iteración, por esta razón ponemos "i++".

Luego de definir estos 3 parámet­ros abri­mos y cer­ramos llaves y den­tro colo­care­mos todas las instruc­ciones que deben eje­cu­tarse en cada iteración, he mar­ca­do esta zona con un comen­tario den­tro del bucle for.

Aho­ra ten­emos que ver que instruc­ción colo­care­mos den­tro del bucle for, en este caso lo que quer­e­mos hac­er es ir suman­do los val­ores enteros de la vari­able iteración, lo podemos hac­er de la sigu­iente manera:

suma = suma + i;

Es decir sumamos el val­or de la vari­able "suma" con la vari­able de iteración "i" y el resul­ta­do lo alma­ce­n­amos nue­va­mente en la vari­able suma, recordemos que en la primera iteración la vari­able "suma" vale 0 e "i" vale 1, por lo tan­to estare­mos real­izan­do la operación "0+1" y alma­ce­nan­do el resul­ta­do en "suma". Esta instruc­ción tam­bién la podemos resumir de la sigu­iente man­era y el resul­ta­do es el mismo:

suma += i;

Entonces cuan­do el bucle for final­ice, en "suma" ten­dremos acu­mu­la­do el val­or total de la suma­to­ria y la respues­ta a nue­stro prob­le­ma, así que defin­i­mos una vari­able tipo string lla­ma­da "resul­ta­do" y elab­o­ramos el men­saje de respues­ta, puede ser de la sigu­iente manera:

string resultado="El resul­ta­do de la suma es: "+ suma.ToString();

Es decir con­cate­n­amos un tex­to al val­or de la suma con­ver­tido a strings y eso lo alma­ce­n­amos en la vari­able "resul­ta­do"

Final­mente escribi­mos este resul­ta­do en el tex­to del Can­vas en pan­talla con la sigu­iente instrucción:

componenteTexto.text=resultado;

Scroll al inicio
Secured By miniOrange