sábado, septiembre 15, 2018

Como recorrer y ordenar un Array en Diagramas de Flujo

En esta nueva entrada vamos a aprender y resolver nuevos retos de programacion a través de los diagramas de flujo.

Iniciemos con uno sencillo, calcular el cuadrado de un numero:


1. Leemos un numero
2. Creamos una nueva caja de operaciones y en ella definimos una variable cuadrado, y le asignamos el valor de la multiplicación del numero por el mismo para calcular el cuadrado.
3. Imprimimos el valor del cuadrado
4. Capturamos si desea continuar
5. Preguntamos si la respuesta es S, si es S, lo enviamos a que capture un nuevo numero y vuelva a calcular el resultado.
6. Si es no, entonces terminamos.


Utilización de Bucles para ordenar

Un bucle es un grupo de instrucciones que se repiten un numero determinado de veces, el mas representativo de los bucles es la instrucción for, pero existen tambien while y do while.

El enunciado del reto es: Captura 50 números, ordénelos y muestre los 5 números mayores y los 5 menores.



1. Definimos una Array de una longitud de 50 elementos, para esto definimos una caja de operaciones, el array lo llamamos Numeros
2. Creamos un ciclo for, o un bucle for, en donde creamos una variable i que inicia en cero, valida que sea menor a 50 y se incremente de 1 en 1. 
3. Hacemos la captura del numero y lo almacenamos en N.
4. Almacenamos el numero capturado en el Array Numeros en la posición i, que es la que tenga el Bucle.
5. Cuando finaliza el ciclo, esto es en el conector A, debemos ordenar el array, para ello creamos un nuevo bucle for.
6. En este declaramos una variable TMP en la cual almacenamos el valor del array en la posición en valla la variable i
7. creamos una variable TPOS que inicializamos en cero (0).
8. Creamos un segundo bucle for, que inicia en el valor de i mas 1
9. Preguntamos si el valor de TMP es mayor que Numeros en la posición j
10. Si dice que No, en TMP almacenamos el valor del array en la posición j, y en TPOS, almacenamos el valor de j.
11. Continuamos el bucle.
12.Si la respuesta es SI a la pregunta TMP es mayor que Numeros en la posición j, entonces continuamos con la siguiente posición o iteración del ciclo.
13. Cuando termine el ciclo, preguntamos si TPOS es igual a cero (0).
14. Si, es SI, entonces lo enviamos que continúe el bucle for a la siguiente iteración.
15. Si es NO, entonces TMP lo hacemos igual a Numeros en la posición i
16. Numeros en la posición i lo hacemos igual a Numeros en la posición TPOS
17. Numeros en la posición TPOS lo hacemos igual al contenido de TMP
18. Lego en el conecto B de la imagen, termina el segundo bucle.
19. luego imprimimos los 5 números mayores del array.
20. Imprimimos los 5 números menores .
21. Finalizamos.


Calcular la Edad de una Factura

Ahora vamos a calcular la edad de una Factura, para esto, capturamos el numero de la factura, el cliente y la fecha de la factura.


Para esto, seguimos los siguientes pasos
1. Definimos un Array que llamamos Meses de 12 posiciones de longitud o tamaño.
2. Llenamos el array con los valores de los números de los dias en cada mes del año.
3. capturamos o pedimos los datos de la factura.
4, creamos una caja de operaciones, en la cual definimos una variable FechaActual, en la cual realizamos la operación de multiplicar el año por 365 y le sumamos el dia de la fecha.
5. Creamos una variable que llamamos AcumDiaMes y lo hacemos igual a cero.
6. Creamos un bucle for, aqui en AcumDiaMes acumulamos los dias de los meses, este bucle ira desde cero hasta el valor del mes actual.
7. En el operador A, realizamos los mismos pasos pero para la fecha de la factura
8. creamos una caja de texto después del bucle, en la cual calculamos la edad de la factura en una variable que llamamos EdadFactura, luego imprimimos el resultado.
9. Fin.

Calcular si un año es bisiesto o no

Para esto diseñamos el siguiente diagrama de flujo



1. Capturamos los datos, "Digite el año" 
2. creamos una variable que llamamos Bisiesto y la igualamos a cero.
3. en esta variable Bisiesto, calculamos el modulo o Mod de la división del año entre 4, Bisiesto = Anio MOD 4
4. Preguntamos  si bisiesto es mayor a 0
5. Si es cierto, entonces imprimimos el año no es bisiesto.
6. Si es falso, entonces mostramos un mensaje indicando que el año es bisiesto.
7. Finalizamos.