ejercicios de grafos java

3
Ejemplo de grafo de código Java. 1 while(a == 10){ 2 System.out.println(“a es igual a 10”); 3 if(b == 20){ 4 System.out.println(“a sigue siendo igual a 10”); 5 System.out.println(“b es igual a 20”); 6 } else { 7 if(c == 30){ 8 System.out.println(“c es igual a 30”); 9 } else{ 10 System.out.println(“c no es igual a 30”); 11 } 12 System.out.println(“b no es 20 y se imprimio el valor de c”); 13 } 14 a = lector.nextInt(); 15 } else{ 16 System.out.println(“a no es igual a 10”); 17 } Una vez analizado el código, se deben identificar las estructuras de control de flujo y las secuencias implicadas (en amarillo las estructuras de control y en azul las secuencias): 1 while(a == 10){ 2 System.out.println(“a es igual a 10”); 3 if(b == 20){ 4 System.out.println(“a sigue siendo igual a 10”); 5 System.out.println(“b es igual a 20”); 6 } else { 7 if(c == 30){ 8 System.out.println(“c es igual a 30”); 9 } else{ 10 System.out.println(“c no es igual a 30”); 11 } 12 System.out.println(“b no es 20 y se imprimio el valor de c”); 13 } 14 a = lector.nextInt(); 15 } else{ 16 System.out.println(“a no es igual a 10”); 17 } Como habrás visto, se identificaron 3 estatutos condicionales y 8 líneas de secuencias. Para facilitar el diseño del diagrama de flujo se procede a numerar cada una de estas identificaciones: 1 while(a == 10){ (1) 2 System.out.println(“a es igual a 10”); (2) 3 if(b == 20){ (3) 4 System.out.println(“a sigue siendo igual a 10”); (4) 5 System.out.println(“b es igual a 20”); (5) 6 } else { 7 if(c == 30){ (6) 8 System.out.println(“c es igual a 30”); (7) 9 } else{ 10 System.out.println(“c no es igual a 30”); (8) 11 } 12 System.out.println(“b no es 20 y se imprimio el valor de c”); (9) 13 }

Upload: ivan-fernando-diaz-castillo

Post on 05-Aug-2015

1.109 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Ejercicios de Grafos Java

Ejemplo de grafo de código Java.

1 while(a == 10){

2 System.out.println(“a es igual a 10”);

3 if(b == 20){

4 System.out.println(“a sigue siendo igual a 10”);

5 System.out.println(“b es igual a 20”);

6 } else {

7 if(c == 30){

8 System.out.println(“c es igual a 30”);

9 } else{

10 System.out.println(“c no es igual a 30”);

11 }

12 System.out.println(“b no es 20 y se imprimio el valor de c”);

13 }

14 a = lector.nextInt();

15 } else{

16 System.out.println(“a no es igual a 10”);

17 }

Una vez analizado el código, se deben identificar las estructuras de control de flujo y las secuencias implicadas (en amarillo las estructuras de control y en azul las secuencias): 1 while(a == 10){

2 System.out.println(“a es igual a 10”);

3 if(b == 20){

4 System.out.println(“a sigue siendo igual a 10”);

5 System.out.println(“b es igual a 20”);

6 } else {

7 if(c == 30){

8 System.out.println(“c es igual a 30”);

9 } else{

10 System.out.println(“c no es igual a 30”);

11 }

12 System.out.println(“b no es 20 y se imprimio el valor de c”);

13 }

14 a = lector.nextInt();

15 } else{

16 System.out.println(“a no es igual a 10”);

17 }

Como habrás visto, se identificaron 3 estatutos condicionales y 8 líneas de secuencias. Para facilitar el diseño del diagrama de flujo se procede a numerar cada una de estas identificaciones: 1 while(a == 10){ (1)

2 System.out.println(“a es igual a 10”); (2)

3 if(b == 20){ (3)

4 System.out.println(“a sigue siendo igual a 10”); (4)

5 System.out.println(“b es igual a 20”); (5)

6 } else {

7 if(c == 30){ (6)

8 System.out.println(“c es igual a 30”); (7)

9 } else{

10 System.out.println(“c no es igual a 30”); (8)

11 }

12 System.out.println(“b no es 20 y se imprimio el valor de c”); (9)

13 }

Page 2: Ejercicios de Grafos Java

14 a = lector.nextInt(); (10)

15 } else{

16 System.out.println(“a no es igual a 10”); (11)

17 }

Ya realizado el paso anterior, es necesario generar el diagrama de flujo del código:

Como último paso, se debe traducir el diagrama de flujo a un grafo:

Page 3: Ejercicios de Grafos Java

Si analizas la forma en la que se hizo la traducción del diagrama de flujo al grafo, podrás observar que las secuencias pueden englobarse en un mismo nodo del grafo, pues el tener un nodo separado por cada instrucción no afectará el cálculo de la complejidad ciclomática para continuar con el siguiente paso.