Solución con gráficos de flujo usando Flowgorithm.

Leonel Parra Pinilla

Desarrollo y ejecución de problemas con Flowgorithm.

 

Para usar la herramienta de diagramas Flowgorithm, el lector debe desarrollar su habilidad de entender el enunciado estructurando la solución completa en los pasos lógicos necesarios para llegar al resultado, encontrando cuales son los datos que necesita para procesar, como los procesa y que resultados obtiene para la solución.

Flowgorithm es una plataforma que permite crear y ejecutar la solución de un problema con diagramas de flujo mediante una interfaz gráfica, además cuenta con la posibilidad de transcribir dichos diagramas a otros lenguajes.

Flowgorithm is a graphical authoring tool which allows users to write and execute programs using flowcharts. The approach is designed to emphasize the algorithm rather than the syntax of a specific programming language.[1] The flowchart can be converted to several major programming languages. Flowgorithm was created at Sacramento State University, california state university sacramento is a public university in Sacramento, California Founded in 1947 as Sacramento State College.

Su Instalación puede hacerse siguiendo imágenes y descripciones tomadas de la organización Flowgorithm.org

Flowgorithm was created at Sacramento State University.[2]

Ingresar al siguiente enlace: http://www.flowgorithm.org/download/

4.2 Problemas resueltos.

4.2.1 Determinación de años bisiestos.

4.2.1.1 Conocer si un año es bisiesto o no.

Análisis para la solución.

Un año se considera bisiesto si cumple dos condiciones a) Que sea divisible entre 4 y b) que también lo sea entre400.

https://learn.microsoft.com/es-es/office/troubleshoot/excel/determine-a-leap-year

Solución como algoritmo.

  1. Leer el número del año (al que se quiere saber si es bisiesto)
  2. Dividirlo entre 4. Si la división es exacta (su cociente es entero),
  3. Dividirlos entre 100. Si la división es exacta (su cociente es entero)
  4. Si se cumplen ambas condiciones, Escribir AÑO BISIETO
  5. Si no escribir NO ES BISIESTO.

Solución con seudocódigo flowgorithm.

Función Principal

… SABER SI UN AÑO ES BISIESTO

Declarar Entero a

Entrada a

Declarar Entero a4

Declarar Entero a100

 

… es bisiesto si se puede dividir exactamente entre 4 y 100

Declarar Entero coa4

 

Asignar coa4 = int(a/4)

Si a = coa4 * 4

Declarar Entero co100

 

Asignar co100 = int(a/100)

Si a=co100*100

Salida a & ” Si es bisiesto”

Falso:

Salida a& ” No es bisiesto”

Fin

Falso:

Salida a& ” No es bisiesto”

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

Análisis de resultados.

Se comprueba con dos años diferentes el año 2000 que es BISIESTO y el 2023 que no lo es.

4.2.1.2 Determinar que años son bisiestos de un número N de años..

Análisis para la solución.

Un año se considera bisiesto si cumple dos condiciones a)Que sea divisible entre 4 y b) que también lo sea entre 400.

https://learn.microsoft.com/es-es/office/troubleshoot/excel/determine-a-leap-year

Solución como algoritmo.

  1. Leer el número N de años que quiere analizar (p ej: N =5 años)
  2. La siguiente estructura debe repetirse N veces(una vez por cada año)
  3. Leer el número del año ( al que se quiere saber si es bisiesto)
  4. Dividirlo entre 4. Si la división es exacta (su cociente es entero),
  5. Dividirlos entre 100. Si la división es exacta (su cociente es entero)
  6. Si se cumplen ambas condiciones, Escribir AÑO BISIETO
  7. Si no Escribir NO ES BISIESTO.

Solución con seudocódigo flowgorithm.

Función Principal

… ANALIZAR DE VARIOS AÑOS CUALES SON BISIESTOS

Declarar Entero año

Declarar Entero a

Declarar Entero i

Declarar Entero n, co, pro

 

… n significa cuantos años quiere analizar si son o no bisiestos

Salida “Introduzca nro de años por analizar ”

Entrada n

Para a = 1 hasta n

Salida “Introduzca año ”

Entrada año

 

… PRUEBA PASO A PASO SI ES MULTIPLO DE 4

… LO MISMO PARA SI DE 100 O DE CUALQUIE NUMERO ENTERO

Asignar co = int(año/4)

 

… int( ) sale la parte entera de la división

Asignar pro = co*4

Si pro = año

Asignar co = int(año/100)

Asignar pro = co*100

Si pro <> año

Salida año

Salida ” SI ES BISIESTO ”

Falso:

Asignar co = int(año/400)

Asignar pro = co*400

Si pro = año

Salida año

Salida ” SI ES BISIESTO ”

Falso:

Salida año

Salida ” NO ES BISIESTO ”

Fin

Fin

Falso:

Salida año

Salida “NO ES BISIESTO ”

Fin

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

Análisis de resultados.

Se comprueba con varios años, depende del valor N que introduzca , para la verificación incluya p ej: 5 años diferentes, el actual, el de su nacimiento, el próximo y otros que usted conozca.

4.2.2 Operaciones con números.

4.2.2.1 Hallar la suma de los N primeros números enteros.

Análisis para la solución.

Los números enteros se consiguen sumando uno al entero anterior.

La serie de números enteros es 1, 2, 3, 4, .. n-1, n, n+1. . infinitos.

Solución como algoritmo.

  1. Leer N el número de enteros que desea sumar
  2. Repetir la siguiente estructura N veces
  3. Iniciar la suma s en cero haga s = 0
  4. Iniciar i en uno, primer entero
  5. Hacer suma s = s + i
  6. Aumentar i en 1
  7. Al final escribir la suma s, después de acabar la repetición

Solución con seudocódigo flowgorithm.

Función Principal

… HALLAR LA SUMA DE LOS N PRIMEROS NUMEROS NATURALES

Declarar Entero n

Declarar Entero s

Declarar Entero i

 

Entrada n

 

… suma s = 0 antes de sumar los naturales 1 2 … n-1 n

Asignar s = 0

Para i = 1 hasta n

Asignar s = s+i

Fin

Salida s

Fin

Elaboración del diagrama solución con flowgorithm.

 

Análisis de resultados.

Se comprueba con la fórmula suma de i desde i = 1 a n es = n(n+1)/2

4.2.2.2 Hallar la suma de los pares comprendidos entre M y N ( N > M números enteros positivos).

Análisis para la solución.

Los números pares se consiguen dividiendo entre 2 y que no haya residuo

Ej: 8/2 no hay residuo, 13/2 hay residuo.

Solución como algoritmo.

  1. Leer N el número entero que será el límite superior
  2. Leer M el número inferior (N > M )
  3. Hacer suma = 0
  4. Repetir la siguiente estructura hasta N ( analiza N y M )
  5. Dividir M entre 2 si no hay resido
  6. Hacer suma = suma + M
  7. Aumentar M en 1
  8. Al terminar la repetición escribir suma

Solución con seudocódigo flowgorithm.

Función Principal

Declarar Entero n, m, supa, i, co, pro

 

Salida “Teclle valor de n debe ser mayor que m ”

Entrada n

Salida ” tecle valor de m ”

Entrada m

Asignar supa = 0

Para i = m hasta n

 

… i vale m m+1 m+2 m+3 . . hasta n

… Probar si i es múltiplo de 2 ( i vale m

… m+1 m+2.

Asignar co = int(i/2)

Asignar pro = co*2

Si pro=i

Asignar supa = supa + i

Fin

Fin

Salida “suma pares incluidos n y m ”

Salida supa

Fin

Elaboración del diagrama solución con flowgorithm.

Análisis de resultados.

Comprobar o verificar con N =10 y M = 3, la suma debe ser 4+6+8+10

4.2.3 Operaciones con cifras y raíces de números.

4.2.3.1 Hallar cuántas veces está la cifra o dígito mayor, de un número entero mayor que 1000.

Análisis para la solución.

  1. Leer un número entero N > 1000
  2. hacer contador de cifra mayor = 0 inicialmente
  3. Repetir siguiente estructura
  4. Sacar cifra al Número N mediante división entera
  5. Comparar si es mayor que la cifra anterior y asumirla como nueva mayor
  6. Contarla
  7. Repetir hasta que N se conserve > que cero (se sacan cada vez sus cifras)
  8. Escribir la mayor cifra cuántas veces se repitió

Solución con seudocódigo flowgorithm.

Función Principal

… PARA UN NUMERO ENTERO > QUE 1000, SACAR SUS CIFRAS Y DECIR CUANTAS VECES ESTA SU CIFRA MAYOR, EN EL NUMERO

Declarar Entero N

Declarar Entero Co

Declarar Entero PRO

 

… Ci es cada cifra del número N

Declarar Entero Ci

 

… Cu es el contador de cuantas veces está la mayor cifra

 

Declarar Entero Cu

Declarar Entero SC

 

Salida “Ingrese un numero mayor a 1000”

Entrada N

Declarar Entero ncopia

 

… Como N se destruye queda en cero , lo guardo en

… ncopia para poderlo escribir al final, es decir

… conservo el N original como una copia

Asignar ncopia = N

Si N > 1000

Asignar SC = 0

Asignar Cu = 0

 

… PROCESO SACAR LAS CIFRAS DEL NUMERO Y CONTAR CADA CIFRA CUANTAS VECES ESTÁ

Mientras N > 0

 

… N QUEDARA EN

… CERODESPUES DE

… SACAR SUS CIFRAS

Asignar Co = int(N/10)

Asignar PRO = Co*10

 

… SE OBTIENE

… CADA CIFRA

Asignar Ci = N – PRO

Si Ci > Cu

Asignar Cu = Ci

Asignar SC = 1

Falso:

Si Ci=0

Falso:

Si Ci=Cu

… SUMAR QUE ESTA

… 1 VEZ MAS LA MAYOR CIFRA

Asignar SC = SC+1

Fin

Fin

Fin

Asignar N = Co

 

… N SE CONVIERTE EN EL COCIENTE

… VA QUEDANDO SIN CIFRAS

… CUANDO SEA CERO EL NUMERO N

… YA NO SE SACAN MAS CIFRAS

Fin

Salida “En el numero ” &ncopia& ” la mayor cifra ” &cu& ” ocurrió ” &sc& ” veces ”

Falso:

Salida “El numero no es mayor a 1000”

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

Análisis de resultados.

Comprobar o verificar con N = 747566, debe salir el 7 ocurrió dos veces.

4.2.3.2 Hallar la raíces de una ecuación de 2do orden aX2 + bX + c = 0

La solución es X1,2 = [-b + – (raíz de b2 – 4ac)] / 2a

Solución con seudocódigo flowgorithm.

Función Principal

Declarar Entero a

 

Salida “tECLEE COEFIENTE a = ”

Entrada a

Declarar Real b

 

Salida “TECLEE COEFICIENTE b = ”

Entrada b

Declarar Real c

 

Salida “TECLEE COEFICIENTE c = ”

Entrada c

Declarar Real d

 

Asignar d = b*b-4*a*c

Declarar Real rd

 

Si d>=0

Asignar rd = sqrt(d)

Salida ” TIENE RAICES REALES ”

Declarar Entero x1

 

Asignar rd = sqrt(d)

Asignar x1 = -b+ ( rd/(2*a))

Declarar Entero x2

 

Asignar x2 = -b- (rd/(2*a))

Salida “raiz 1 = ” &x1

Salida ” raiz 2 = ” &x2

Falso:

 

… hay raices imaginarias

Asignar d = -d

Asignar rd = sqrt(d)

Declarar Real xir

 

… parte real

Asignar xir = -b/(2*a)

Declarar Real xii

 

… parte imaginaria

Asignar xii = rd/(2*a)

 

… raices son de la forma compleja a + bi

Salida “TIENE RAICES IMAGINARIAS”

Salida “raiz 1 = “&xir &” + ” &xii& ” i”

Salida “raiz 2 = “&xir &” – ” &xii& ” i”

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

4.2.3.3 Hallar la combinatoria (N M) = N! /(N-M)! * M! para N>M

Solución con seudocódigo flowgorithm.

Función Principal

… Teclear N y M N > M

Declarar Entero n

 

Entrada n

Declarar Entero m

 

Entrada m

 

… combinatoria n m = n! / (n – m)! * m!

Declarar Entero fn

 

Asignar fn = 1

Declarar Entero i

 

… se calcula factorial de N

Para i = 1 hasta n

Asignar fn = fn*i

Fin

Declarar Entero fm

 

Asignar fm = 1

 

… Se calcula factorial de M

Para i = 1 hasta m

Asignar fm = fm*i

Fin

Declarar Entero k

 

Asignar k = n-m

Declarar Entero fk

 

Asignar fk = 1

 

… se calcula factorial de k ue es N – M

Para i = i hasta k

Asignar fk = fk*i

Fin

Declarar Entero co

 

Asignar co = (fn)/(fm*fk)

Salida “Combinatoria ” &n& ” ” &m& ” = “&co

Fin

Elaboración del diagrama solución con flowgorithm.

4.2.4 Números Fibonacci y Primos.

4.2.4.1 Generar 10 números de la serie Fibonacci.

 

Serie Fibonacci es 0 1 1 2 3 5 8 13 21 34 55 …. Infinito

Se consigue sumando los dos anteriores

Solución con seudocódigo flowgorithm.

Función Principal

… Generar 15 números fibonacci

Declarar Entero a

 

… la serie fibonacci es:

… 0 1 1 2 3 5 8 13 21 ..

… se consigue sumando los dos anteriores partiendo de 0 y 1

Asignar a = 0

Declarar Entero b

 

Asignar b = 1

Declarar Entero i

 

 

Para i = 1 hasta 10

Declarar Entero c

 

Asignar c = a+b

Salida c

Asignar a = b

Asignar b = c

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

4.2.4.2 Hallar si un número es primo o no.

Solución con seudocódigo flowgorithm.

Función Principal

Declarar Entero x

 

… Teclear número para saber si es o no primo

Salida “número x = ”

Entrada x

Declarar Entero fin

 

Asignar fin = x-1

Declarar Entero clave

 

Asignar clave = 1

Declarar Entero i

 

Para i = 2 hasta fin

Declarar Entero co

 

Asignar co = x/i

Declarar Entero pr

 

Asignar pr = co*i

Si pr=x

Asignar clave = 0

Asignar i = fin

Fin

Fin

Si clave=1

Salida ” es primo”

Falso:

Salida “no es primo”

Fin

Fin

Elaboración del diagrama solución con flowgorithm.

 

4.3 Problemas propuestos para resolver con Flowgorithm.

4.3.1 Compruebe que la suma de los primeros N números naturales se puede calcular como suma = N (N + 1) / 2

4.3.2 Halle cuánto vale la suma de las cifras de un número entero X

4.3.3 Busque cuáles de los primero 1000 números impares son primos.

 

4.3.4 Hallar el seno de cada uno de N ángulos por el método numérico de Taylor

4.3.5 De un grupo de N estudiantes, Diga cuál es el estudiante que tiene más años.

4.3.6 Hallar la raíz de un número entero X.

 

Scroll to Top
Abrir chat
1
Scan the code
Hola
¿En qué podemos ayudarte?