You are on page 1of 26

SERVICIO NACIONAL DE APRENDIZAJE SENA

ANÁLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIÓN SENA – 1564966


Fase II – Análisis

JONATAN JASITH RUZ LOPEZ


ALGORITMOS A DESARROLLAR

Diseñar y Construir los algoritmos mediante diagramas de flujo utilizando la


herramienta de software DFD, a partir de los siguientes enunciados:

1. Una persona deposita hoy al Banco cierta cantidad de dinero, donde le


reconocen un interés del 2% mensual, capitalizado mensualmente.

¿Cuál será el saldo al cabo de 5 años?

Formula a utilizar:

Valor Futuro = Valor Presente * (1+intereses)^meses

Para solucionar el Ejercicio, se requiere que usted desarrolle un algoritmo que


le permita conocer a una persona ¿Cuál será el saldo al cabo de 5 años?, si
deposita hoy cierta cantidad de dinero. Como resultado se debe imprimir en
pantalla:

Valor consignado: $XXXXX


Valor futuro en 5 años: $XXXXXXX

DESARROLLO EJERCICIO 1 - DFD:

→ El presente ejercicio lo desarrolle en dos versiones de manera diferente,


la primera utilizando la formula dada en el enunciado del problema:

Valor Futuro = Valor Presente * (1+intereses)^meses

→ La segunda versión 1.2, la realice haciendo uso de un ciclo para, en el


cual incremento el valor del interés al valor inicial, durante los 5 años (12
meses * 5 años).
→ Al final en ambas versiones el algoritmo da el mismo resultado,
ingresando cualquier valor.
→ Podrimos mostrar el resultado solo la parte entera con la función DFD
“trunc”, sin embargo el ejercicio no lo estipula.
DIAGRAMA DE FLUJO
RESULTADOS
DIAGRAMA DE FLUJO VERSIÓN 1.2
RESULTADOS VERSIÓN 1.2
2. Una frutería ofrece las manzanas a $4.200 el kilo, con un descuento de
acuerdo a la siguiente tabla:

Desarrollar un algoritmo que le permita a la frutería y al cliente conocer


cuánto pagará un cliente que compre manzanas.

Muestre los resultados así:

La compra de N kilos tiene un valor de $, pero usted tiene un descuento por


valor de $, por lo tanto el valor a pagar es: $.

DESARROLLO EJERCICIO 2

→ El presente ejercicio se realiza mediante el uso de condiciones


anidadas, a fin de establecer y aplicar el descuento pertinente.
DIAGRAMA DE FLUJO
RESULTADOS
3. Dada la siguiente función: Y = x^2 – 2x
Se requiere desarrollar un algoritmo que imprima en pantalla, para valores de x
desde 1 a 10, lo siguiente:

a) La suma de todos los valores de Y.


b) Valores de Y múltiplos de 3.
c) Suma de los valores de Y múltiplos de 3.
d) Valores de Y cuyo último digito sea 5.
e) Suma de los valores de Y cuyo último digito es 5.

Resultados esperados:

a. Suma de todos los valores de Y: 275


b. Valores de Y múltiplos de 3:
3
15
24
48
63
c. Suma de los valores de Y múltiplos de 3: 153
d. Valores de Y cuyo último digito es 5:
15
35
e. Suma de los valores de Y cuyo último digito es múltiplo de 5: 50

DESARROLLO EJERCICIO 3

→ Hay que mencionar, es que por alguna razón el programa DFD,


presento fallas al ejecutar el algoritmo lo que llevo a tener que
desarrollarlo 2 veces, por tal razón especifico cada elemento del DFD
a continuación.
DIAGRAMA DE FLUJO
DESARROLLO PASO A PASO

Creacion e iniciación de
contadores para el arreglo
(array) que almacenara el
contenido de los valores de
Y.

contador3: (cuenta los


valores de Y cuando son
multiplos de 3)

contador5: (cuenta los


valores de Y cuando el
ultimo digito es 5)

totaly: (variable que sumara


todos los valores de y)
total3: (variable que sumara
todos los valores de y
cuando sean multiplos de 3)

total5: (variable que sumara


todos los valores de y
cuando el ultimo digito sea 5)

Ciclo que se realizara 10


veces para determinar los
valores de Y de 1 a 10.

Empleo la variable x como


contador.

Creo un arreglo y(),


asignandole en la posicion
y(x) el resultado de la
función, x^2 – 2x en donde, x
es el contador del ciclo para
que ira cambiando desde 1
hasta 10.

Igualmente para despejar, 2x


multiplico asi 2 * x.

Asigno a la variable totaly: la


suma del totaly + el valor de
y(x)
residuo3: y(x) MOD 3
En esta variable la asigno el
resultado que me arroja la
funcion MOD al operar el
valor de y(x) con 3.

Y(x) (puede ser 1, 2, 3, 4, 5,


6, 7, 8, 9, 10; dependiendo
del valor de x, es decir del
valor del cotador del ciclo
para).

residuo5: y(x) MOD 10


En esta variable almaceno e
resultado de la funcion MOD
operandola entre 10.

NOTA: MOD, me devuelve el


residuo de una division, por
ejemplo al dividir 15/10 = 1.5
(1 y me sobran 5), es decir 1
de resultado y 5 como
residuo.

La desición residuo3=0, es
para determinar si el numero
es multiplo de 3.

Si al efectuar en la anterior
asignación:

residuo3= y(x) MOD 3

En donde si reemplazamos x
por 3. Al realizar la funcion 3
MOD 3, nos va a guardar en
residuo3 = 0

PORQUE: 3/3 = 1.0 (1 y


sobra 0)
Si se cumple la condición
pregunto su y(x) es > 0
continue.

Porque pregunto, porque si


y(x) llega a ser 0 y dividimos
0/3 me va a dar como
residuo 0 es decir MOD = 0.

Lo cual llenaria mi array con


un 0 y 0 no es multiplo de 3.
Si se cumple la condicion
anterior:

Asignamos al arreglo
resultado3(posicion del
contador3) el valor de y(x)

resultado3(contador3) = y(x)

Sumamos los valores de y(x)


en la variable total3

total3= total3+y(x)

Incrementamos el contador3
contador3 = contador3+1
La desición residuo5=0, es
para determinar si el ultimo
digito es 5.

Si al efectuar la siguiente
operación:

residuo5= y(x) MOD 10

En donde si reemplazamos x
por 35. Al realizar la funcion
35 MOD 10, nos va a
guardar en residuo5 = 5

PORQUE: 35/10 = 3.5 (3 y


sobra 5)
Asignamos al arreglo
resultado5(posicion del
contador5) el valor de y(x)

resultado5(contador5) = y(x)

Sumamos los valores de y(x)


en la variable total5

Total5= total5+y(x)

Incrementamos el contador5
contador5 = contador5+1

Imprimimos en pantalla los


resultados:
Informamos que
mostraremos los valores de
Y multiplos de 3

Realizmos un para que inicie


en I = 1, hasta el valor del
contador3-1
incrementandose de 1 en 1
para recorrer el arreglo
resultados3()

Resto 1 a contador3 porque


este viene incremetnado en
1 en un ciclo anterior.
Muestro en patalla los
resultados de resultado3(en
la posicion i)

Recordando que i va ir de 1
hasta el valor del contador3-
1

Mostramos la suma de los


valores multiplos de 3

Donde la suma de esos


valores la tenemos en la
variable total3
Informmos que mostraremos
los valores de Y cuyo ultimo
digito sea 5

Creamos un ciclo para


recorrer el arreglo
resultado5(), que inicie en
j=1 hasta el valor del
contador5-1 incrementadose
en 1

Resto 1 a contador5 porque


este viene incremetnado en
1 en un ciclo anterior.
Muetro la suma de los
valores de Y cuyo ultimo
digito es 5

Imprimiendo en pantalla el
valor del arreglo resultado5(j)
Mustro la suma de los
valores de Y cuyo ultimo
digito es 5.

Recordando que dicha suma


la hicimos y guardamos en la
variable total5

Final de la ejecución

RESULTADOS
4. Desarrollar un algoritmo que lea un número N entero positivo de cualquier
número de dígitos, calcule la suma de sus dígitos y que imprima en pantalla el
número leído y la suma de sus dígitos. Se requiere que en el desarrollo utilice
la Estructura Cíclica Mientras.

Ejemplo:

N= 3567
SUMA= 21

DESARROLLO EJERCICIO 4

→ Este ejercicio es realmente sencillo, hacemos uso de la función MOD


que me devuelve el residuo de una división en una variable (var1).
→ Igualmente usamos la operación división para que nos devuelva el
resultado de la misma en una variable(var2).
Aquí hay que tener en cuenta que para almacenar la parte solo
entera de una división empleamos la función trunc. “trunc(numero /
10)”

→ Sabiendo que al dividir 5354 / 10 nos va a dar como resultado 535 y


como residuo (MOD) 4, es decir su última cifra
→ Realizamos un mientras para que recorra cada una de las cifras del
número digitado, con la condición: mientras que el residuo sea
diferente de 0.
→ Sumamos cada digito del numero ingresado y listo. Final.
DIAGRAMA DE FLUJO
RESULTADOS

You might also like