Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: splendid37 en 22 Abril 2018, 12:46 pm



Título: Grafo de flujo duda
Publicado por: splendid37 en 22 Abril 2018, 12:46 pm
Tengo que representar un grafo de flujo del siguiente código que calcula un factorial (he identificado las diferentes partes del código con las secciones del grafo de abajo):

Código
  1. public float factorial(byte n) throws Exception { // Inicio
  2.    if (n < 0) {  // Nodo 1.
  3.        throw new Exception("Error. El número tiene que ser >=0"); // Nodo 2.
  4.    }
  5.    float resultado = 1; // Nodo 3.
  6.    for (int i = 2; i <= n; i++) { // Nodo 4.
  7.        resultado *= i;
  8.    }
  9.    return resultado; // Nodo 5.
  10. }
  11.  

Esto es lo que he realizado, pero no sé si lo tengo hecho correctamente:

(https://i.stack.imgur.com/zmLHA.png)


Título: Re: Grafo de flujo duda
Publicado por: user-marcos en 22 Abril 2018, 13:03 pm
Cada nodo es un cambio de flujo, no cada línea, suponiendo que si lanzas la excepción la ejecución continúa, yo lo haría así:
https://bit.ly/2HRl7QH (https://bit.ly/2HRl7QH)


Título: Re: Grafo de flujo duda
Publicado por: splendid37 en 22 Abril 2018, 13:24 pm
Cada nodo es un cambio de flujo, no cada línea, suponiendo que si lanzas la excepción la ejecución continúa, yo lo haría así:
https://bit.ly/2HRl7QH (https://bit.ly/2HRl7QH)

Código
  1.  
  2. public float factorial(byte n) throws Exception {
  3.    if (n < 0) {  // Nodo 1.
  4.        throw new Exception("Error. El número tiene que ser >=0"); // Nodo 2.
  5.    }
  6.    float resultado = 1;
  7.    for (int i = 2; i <= n; i++) { // Nodo 3.
  8.        resultado *= i;  // Nodo 4.
  9.    }
  10.    return resultado; // Nodo 5.
  11. }
  12.  
  13.  

(https://image.ibb.co/cXnh6x/Sin_t_tulo.jpg)

¿Estaría así correcto?.

Saludos.


Título: Re: Grafo de flujo duda
Publicado por: user-marcos en 22 Abril 2018, 13:33 pm
1- if
2- throw
3- for
4- resultado *= i
5- return

En Internet hay muchos ejemplos, incluso hay programas que le pasas el código y te generan el diagrama.


Título: Re: Grafo de flujo duda
Publicado por: splendid37 en 22 Abril 2018, 13:40 pm
1- if
2- throw
3- for
4- resultado *= i
5- return

En Internet hay muchos ejemplos, incluso hay programas que le pasas el código y te generan el diagrama.

Muchas gracias por la ayuda.

La verdad es que no encontré muchos ejemplos sobre estos diagramas, me podrías decir el nombre de algún programa que los realize?

Gracias, Saludos.