[C con Clase] Sumar todos los elementos de un array
Steven Davidson
srd4121 en njit.edu
Vie Feb 5 18:20:48 CET 2010
Hola Pablo,
pablo wrote:
> Hola tengo el problema de que tengo un array de 10 elementos de los
> cuales quiero sacar la suma de todos los elementos del mismo, tengo
> dudas con la sintaxis, pensaba que lopodia hacer de la siguiente
> manera pero veo que se vuelve engorroso asi que imagino que debe
> haber otra forma mas sencilla.
> La forma que pensaba es:
>
> int num [10];
> int suma = (num [0] + num [1] + .... + num [9]);
> cout << "la suma es (num) " << endl;
>
> Espero no estar tan equivocado, agradeceria que me saquen de esta
> duda. Desde ya gracias!
>
Como puedes observar, si realizas todas las sumas explícitamente, puedes
tardar una eternidad especialmente si existen miles o millones de
elementos en un array. También tendrías problemas si después de escribir
todo el código del programa, averiguas que la cantidad de elementos del
array es incorrecta. Esto significa que tendrías que modificar el
programa por lo menos la parte de la suma, y posiblmente otras partes.
Cuando no puedas realizar una operación compleja en un solo instante,
entonces divide el problema en varias acciones de operaciones más
simples. La solución en tu caso es realizar varias sumas parciales, para
obtener la suma total. La operación más simple que puedes hacer es sumar
dos números. Al principio, sumamos los dos primeros números. Después
podemos ir sumando la suma parcial y el siguiente número en el array.
Por ejemplo,
suma = num[0] + num[1];
suma += num[2];
suma += num[3];
suma += num[4];
...
suma += num[9];
Aquí la variable 'suma' actúa como un "acumulador", ya que va acumulando
el resultado hasta que terminemos con nuestro algoritmo.
Obviamente, tampoco vamos a escribir todo esto explícitamente. Sin
embargo, vemos que existe un patrón. También vemos que el patrón repite
varias veces. Esto implica que usaremos un bucle para llevar a cabo
todas estas operaciones relacionadas.
La primera suma no parece que pertenezca al patrón, pero podemos
modificarla para cambiar su forma a la del patrón. En la suma, el número
0 (cero) es el elemento neutro que no la varía. Aplicamos esta propiedad
aritmética sumando 0 al principio. Obtenemos lo siguiente:
suma = 0;
suma += num[0];
suma += num[1];
suma += num[2];
...
suma += num[9];
Ahora podemos ver un patrón común a todos los elementos.
Espero que este análisis aclare las dudas.
Steven
Más información sobre la lista de distribución Cconclase