ALGORITMOS EJEMPLOS DE ALGORITMOS

EJEMPLO #1 Problema: Hallar la suma de los primeros 10 números enteros y luego mostrar dicha suma.

ALGORITMOS Fase de Análisis
ANALISIS DEL PROBLEMA.- En esta fase de solución al problema, estudiamos el problema a fin de poder entender QUE es lo que se tiene como problema y a lo cual se va a plantear una solución ALGORITMICA.

Del análisis de este problema podemos deducir que:
- Los primeros números enteros son: 1, 2, 3, 4, etc

- Luego lo que se quiere calcular es:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = ?

4. el 1 se convierte en 2. el cual se compone de 2 pasos: N  0 y N  N + 1 Los 2 pasos son asignaciones. 3. se puede ver que primero debemos obtener los numeros para luego sumarlos. etc. después en 4. Al ejecutarse repetitivamente la segunda asignación. Una forma de obtenerlos es con el contador. luego en 3.ALGORITMOS Fase de Análisis Prosiguiendo con el análisis. etc. 2. el primero inicializa N en 0 y el segundo incrementa este valor inicial en 1. Por lo tanto conseguimos generar los numeros enteros: 1. .

de la siguiente manera: Inicialmente N es 0 Pero el lado derecho. que le asigna un nuevo valor en cada iteración a N. en base al recalculo de la expresión del lado derecho (N + 1 ).ALGORITMOS Fase de Análisis La asignación N  N + 1 genera estos números enteros. o sea N + 1 se calcula como sigue: Dirección Contenido N N N 0 1 0 + 1 = El nuevo valor de N 1 .

ALGORITMOS Fase de Análisis Pero esta segunda asignación (N  N + 1) se la hace repetitivamente. Luego. un recalculo del lado derecho daría lo siguiente: Dirección Contenido N N N 1 2 1 + 1 = El nuevo valor de N 2 .

ALGORITMOS Fase de Análisis Otro recalculo de N  N + 1 cambiara el 2 por el 3 de la manera siguiente: Dirección Contenido N N N 2 3 2 + 1 = El nuevo valor de N 3 .

Es decir: Dirección N 0 1 2 3 Contenido 4 5 6 7 8 9 .ALGORITMOS Fase de Análisis Luego. se puede ver que este calculo repetitivo del lado derecho. genera los numeros enteros requeridos para efectuar la suma.

o sea S + X se calcula como sigue: Dirección Contenido S X X S 7 0 7 0 + 7 = El nuevo valor de S 7 . solo resta sumarlos. Esto se consigue con el acumulador: S 0 y S  S + X El recalculo de lado derecho de la segunda asignación (S + X ) asigna un nuevo valor en cada iteración a S. Inicialmente S es 0 Y el lado derecho.ALGORITMOS Fase de Análisis Obtenidos los numeros.

es decir que la segunda asignación ahora seria S  S + N. Luego.ALGORITMOS Fase de Análisis Si cambiamos el X del acumulador S  S + X por nuestro N del contador anteriormente visto. lo que se acumula en S es: Si el lado derecho S + N se calcula como sigue: Dirección Contenido S N N S 1 0 1 0 + 1 = El nuevo valor de S 1 .

lo que ahora se acumulara en S es: Si el lado derecho S + N se calcula como sigue: S N Dirección Contenido N S 1 2 1 3 1 + 2 = El nuevo valor de S 3 . en una siguiente iteración el 1 actual se incrementará a 2. Luego.ALGORITMOS Fase de Análisis Pero N es el contador (NN+1).

lo que ahora se acumulara en S es: Si el lado derecho S + N se calcula como sigue: Dirección Contenido N S 1 2 3 1 3 6 S N 6 = El nuevo valor de S 3 + 3 . en una siguiente iteración incrementará el 2 actual a 3.ALGORITMOS Fase de Análisis N el contador. Luego.

.ALGORITMOS Fase de Análisis Finalmente se puede ver que. una combinación apropiada del contador y el acumulador puede producir el resultado buscado: CONTADOR ACUMULADOR N0 NN+1 S0 SS+N La combinación apropiada seria juntar los elementos que no se repiten en primer lugar y luego los que se repiten.

.ALGORITMOS Fase de Diseño Inicialmente el algoritmo con estos elementos se vería así: 1..N  0 3.S  0 2.. ya que el primer numero N en acumularse en S debe ser el 1..S  S + N El orden entre los pasos 1 y 2 no es importante Pero si entre el paso 3 y 4.N  N + 1 4. . eso se consigue con este orden.

la parte del algoritmo que genera los 10 enteros y los acumula es: 1.N  0 3..ALGORITMOS Fase de Diseño Luego.Si N < 10 Entonces ir a 3 QUE SE EJECUTA EN EL ORDEN INDICADO POR LAS FLECHAS ..S  S + N 5.N  N + 1 4.S  0 2....

S  S + N 5....4 y 5 SE REPETIRAN UNA Y OTRA VEZ ..S  0 2.N  0 3.Si N < 10 Entonces ir a 3 LOS PASOS 3. la parte del algoritmo que genera los 10 enteros y los acumula es: 1.N  N + 1 4.ALGORITMOS Fase de Diseño Luego..

..Si N < 10 Entonces ir a 3 con lo que el paso 4 hace que el primer N que se acumula en S sea 1 ( N es 1.N  N + 1 4..S  S + N 5. N se pone en 1 1. el primer entero) .S  0 2.ALGORITMOS Fase de Diseño Con este algoritmo la primera vez que se ejecuta el paso 3..N  0 3..

Si N < 10 Entonces ir a 3 Con lo que el paso 4 hace que el segundo N. N se pone en 2 (se incrementa en 1) 1. el segundo entero) .ALGORITMOS Fase de Diseño La segunda vez que se ejecuta el paso 3.N  0 3.S  0 2....S  S + N 5..N  N + 1 4.. que se acumule en S sea 2 ( N es 2.

Si la condición (N<10) se cumple para algún N..N  0 3.Si N < 10 Entonces ir a 3 El paso 5 obliga a repetir los pasos 3 y 4.N  N + 1 4.ALGORITMOS Fase de Diseño 1..S  S + N 5... entonces se vuelve al paso 3.. . pero a su vez controla las veces que se repetirán estos.S  0 2.

Si N < 10 Entonces ir a 3 En este punto se advierte que con N igual a 10.S  S + N 5. . 1.. ya no se cumple la condición (N<10) en el paso 5.N  N + 1 4. N se pone en 10.S  0 2...ALGORITMOS Fase de Diseño La ultima vez que se ejecuta el paso 3. por lo cual el control ya no vuelve al paso 3...N  0 3. con lo que el ultimo N que se acumula en S es 10.

Mostrar S 7... ..FIN Que mostrara el contenido de S.N  0 3. como el resultado final (La Suma).Si N < 10 Entonces ir a 3 6... Esto se debe ejecutar como el paso 6. 1.S  0 2...S  S + N 5.ALGORITMOS Fase de Diseño El algoritmo ya concluyo el calculo de la suma y solo resta mostrar el resultado que no es mas que dicha suma.N  N + 1 4.