sábado, septiembre 01, 2018

Diagrama de flujo para Calcular si un numero es primo

1- Diagrama de Flujo para calcular si un Numero es primo o no.
A continuación iniciaremos un diagrama de flujo para resolver el reto de como calcular si un numero es primo o no. Un número es primo cuando es divisible por el y por la unidad, recuerden que esta división debe ser una división exacta. 
En la imagen tenemos como calcular y resolver para saber al capturar un numero N, validar si es un numero primo o no.
tenemos como ejemplo el numero 11, y se realiza la prueba de escritorio del diagrama de flujo, allí se van colocando los valores que toman cada variable y cada operación después de una pasada de los pasos del diagrama de flujo.


2- Que es una prueba de escritorio, como realizarla
Una prueba de escritorio es colocar valores e ir probando si los pasos y los resultados del diagrama de flujo corresponden y son correctos y arrojan los valores deseados.

En el ejemplo anterior del diagrama de flujo, del numero primo, están colocados los valores que van tomando las variables en sus diferentes tiempos y puntos, asi verificamos que esta correcto el diagrama, que los pasos que estamos realizando son los correctos.

Entonces por cada diagrama de flujo, se debe realizar una prueba de escritorio, reemplazando los valores de las variables por valores numéricos y verificar que el resultado es correcto, además, verificar todas las bifurcaciones que se den en el diagrama por las condiciones que nos exija el algoritmo que estemos realizando.

3- Diagrama de Flujo de una pantalla de Login. 
A continuación haremos el diagrama de como funciona una pantalla de Login a nuestras redes sociales o al correo electrónico.


1. Se ingresan los datos de usuario y clave en la pantalla.
2. Se verifica si el usuario existe, para esto, se consulta en la base de datos del sitio,
3. Si No existe, mostramos pantalla para registro de usuario.
4. Si desea registrarse, pide los datos del registro, usuario, clave y email.
5. Guarda los datos en la base de datos.
6. Va a la pantalla de Login para autenticarse.
7. Si no desea registrarse, se envía a la pantalla de Login.
8. Si el usuario Existe, vamos a la base de datos de la aplicacion y traemos la información del usuario.
9. Verificamos si el password esta correcto,
10. Si No es correcto, mostramos mensaje de "usuario no es valido"
11. regresamos a la pantalla de login a pedir usuario y clave.
12. Si es Correcto, mostramos un mensaje "usuario autenticado"
13. Fin.


4- Capturar 5 números enteros. (Array)
Antes de iniciar con este nuevo reto de programación,  vamos a conocer y entender que es un Array.
Un Array, es una variable que puede contener uno o varios valores del mismo tipo de datos, esto es, diferentes números enteros, diferentes palabras o frases, y que nos permite llamar a cada uno de estos valores a través de un índice o una posición del elemento dentro del Array.
Los arrays pueden ser unidimensionales, cuando tienen o una fila o una columna, o multidimensionales, estos generalmente tienen filas y columnas, pero pueden tener mas dimensiones como profundidad, etc.
En la imagen se pinta de manera grafica un array Bi-Dimensional (2 dimensiones, por eso tiene filas y columnas) y un array unidimensional de 5 elementos, el índice siempre va desde cero (0) en adelante.




EL reto ahora es realizar un diagrama de flujo que permita capturar y almacenar 5 números enteros.

Los pasos en palabras, esto tambien es conocido como pseudo código. (No se asusten!) simplemente es que con palabras hagamos lo mismo que con el diagrama de flujo.

Ahora iniciemos los pasos para resolver el reto:
1. Inicio
2. Creamos una caja de definición de variables, definimos una variable que llamamos Números de tipo Array con una longitud o tamaño del array de 5 elementos. Este array es unidimensional: Numeros[5], además, definimos una variable entera que llamamos i y le asignamos 0, esta variable nos servirá para posicionarnos en el array y seleccionar un elemento del array.
3. Luego realizamos la entrada del numero en la variable N
4. Luego almacenamos el Numero N capturado en el elemento i del array, esto lo hacemos en la caja e operaciones.
5. Creamos una nueva caja de operaciones y en esta, lo que hacemos es incrementar el valor de i en 1, para controlar los diferentes elementos del array.
6. Creamos un Rombo que nos sirve para una decisión, esta decisión es preguntar si el valor de i es mayor a 4, Esta decisión tiene dos caminos, el del NO y el del SI.
7. NO, Si el valor de i no es mayor a 4, entonces volvemos a pedir un nuevo numero, pues aun no hemo terminado de capturar los 5 números de nuestro reto. Aqui utilizamos un circulo con una letra A, esto indica que el flujo va al Conector A que se encuentra con una flecha a la derecha y apunta encima de la Caja de captura de datos N, Con esto volvemos a capturar otro numero y almacenarlo en N y volvemos a ejecutar todos los pasos anteriores hasta verificar el valor de i.
8. SI. Si el valor de i es Mayor a 4, quiere decir que ya capturamos los 5 números de nuestro reto, pues hemos venido incrementado el valor de i de 1 en 1.  Entonces ahora creamos una nueva caja de operaciones, y en ella creamos dos variables, una llamada ACUM y la otra llamada PROM ambas las hacemos igual a cero, en el caso de la variable PROM la igualamos a 0.0 para indicar que es una variable numérica con decimales, aqui calcularemos el  promedio de los 5 números capturados.
9. Luego creamos una nueva caja de operaciones y volvemos a colocar el valor de i en cero.
10. Creamos una nueva caja de texto e esta caja de operaciones vamos a asignarle valor a la variable ACUM = ACUM + Numeros[i], lo que estamos aqui haciendo es acumulando los diferentes valores que capturamos y guardamos en el array, con esto al final podremos calcular el promedio.
11. Creamos una nueva caja de texto e incrementamos el valor de i en 1, i = i + 1.
12. Creamos una caja de decisiones, un rombo, aqui volvemos a preguntar si i es mayor a 4.
13. NO. Si no se cumple esta condición, entonces regresamos con la flecha y volvemos a acumular ACUM = ACUM + Numeros[i] y seguimos los mismos pasos anteriores hasta que la condición sea verdadera y salga por el SI.
14. SI. Si la condición se cumple entonces vamos al conector B (Conector: Circulo con una letra o numero adentro).
15. Creamos una caja de operaciones en la cual ya podremos calcular el Promedio, aqui entonces escribimos PROM = ACUM / 5, podemos escribir el 5 o podemos escribir i que contiene el numero de elementos del array.
16. Luego creamos un símbolo de salida de datos, en este símbolo mostramos PROM que seria el promedio que calculamos.
17. Terminamos en el conector de FIN.
A continuación el Diagrama de Flujo de este reto.




Conceptos:

Contador: es una variable ( o sea un espacio de memoria en el computador que almacena un dato), que se incrementa su valor en un valor constante, generalmente de 1 en 1, en el ejemplo del diagrama anterior es la variable i.

Acumulador: es una variable que almacena diferentes valores, funciona de manera muy similar al contador, sin embargo, los valores que se suman no son constantes, son variables.

Promedio: es una operación de estadística en donde se suman o acumulan un numero determinado de valores, luego este resultado se divide entre el numero de valores acumulados.