Resumen: Entrega nº35 del curso Bases de la programación Nivel II.
Codificación aprenderaprogramar.com: CU00236A

 

 

 

EJERCICIOS EJEMPLOS RESUELTOS DE VERIFICACIÓN CON TABLAS DE VARIABLES

Ahora procederemos a solucionar una serie de ejercicios.

 

Anagrama aprenderaprogramar.com

 

La solución de dichos ejercicios se realizará en pseudocódigo. A partir del pseudocódigo es fácil escribir el programa en cualquier lenguaje de programación.

 

 

EJERCICIO

Para los valores emp = - 1, emp = 0, emp = 1, emp = 4, emp = 7 y emp = 10 construir las tablas de variables que describen el funcionamiento del siguiente proceso:

i = emp

Mientras i <= 7 Hacer

i = i + 2

Mostrar “2 * i vale”, 2 * i

Repetir

 

 

SOLUCIÓN

emp = - 1

Estado

i

Visualización

Previo a bucle

- 1

 

Iteración 1

1

2

Iteración 2

3

6

Iteración 3

5

10

Iteración 4

7

14

Iteración 5

9

18

 

emp = 0

Estado

i

Visualización

Previo a bucle

0

 

Iteración 1

2

4

Iteración 2

4

8

Iteración 3

6

12

Iteración 4

8

16

 

emp = 1

Estado

i

Visualización

Previo a bucle

1

 

Iteración 1

3

6

Iteración 2

5

10

Iteración 3

7

14

Iteración 4

9

18

 

emp = 4

Estado

i

Visualización

Previo a bucle

4

 

Iteración 1

6

12

Iteración 2

8

16

 

emp = 7

Estado

i

Visualización

Previo a bucle

7

 

Iteración 1

9

18

 

emp = 10

Estado

i

Visualización

Previo a bucle

10

 

--

--

-- [No entra al bucle]

 

 

Comentarios: La organización de las tablas es a criterio del programador, de modo que podemos analizar lo que ocurre antes del bucle o no según nuestros intereses, podríamos no agrupar el valor de i con la visualización sino verlo como pasos separados, etc.

 

 

EJERCICIO

Construir una tabla de variables y procesos para la verificación del funcionamiento del siguiente algoritmo con los valores:

a) emp = 1 max = 5

b) emp = 2 max = 50

1. i = emp [Ejercicio aprenderaprogramar.com]

2. Mientras i <= 7 y Result < max Hacer

3. Desde j = 1 hasta i Hacer

4. emp = emp + j + 1

5. Desde m = emp hasta 2 * (j + i)

6. Result = Result + m

7. Mostrar Result

8. Siguiente m

9. Siguiente j

10. Hacer

11. emp = Truncar(emp / 2)

12. Repetir Mientras emp > 10

13. i = i + 1

14. Repetir

 

 

SOLUCIÓN

Emp = 1 max = 5

Estado

emp

max

i

j

2 * (j + i)

m

Result

Previo a bucle exterior Línea 1

1

5

1

0

~

0

0

Entrada a bucle Línea 2

~

5

1

~

~

~

0 [Entra bucle exterior]

Línea 3

~

~

1

1

~

~

~ [Entra bucle j]

Línea 4 – 5

3

~

1

1

4

3

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

3

3

Línea 8 – 5 – 6 – 7

~

~

~

~

~

4

7 [Sale bucle m] [Sale bucle j]

Línea 10 – 11 – 12

1

~

~

~

~

~

~ [Entra bucle HR] [Sale bucle HR]

Línea 13 – 14 – 2

~

5

2

~

~

~

7 [Sale bucle exterior]

 

 

El símbolo ~ representa que una variable o parámetro controlador de un bucle tiene un valor que no ha cambiado o simplemente que para un paso dado, nos da igual su valor y no nos molestamos en escribirlo. También se podría dejar la casilla en blanco.

Emp = 2 max = 50

Estado

emp

max

i

j

2 * (j + i)

m

Result

Previo a bucle exterior Línea 1

2

50

2

0

~

0

0

Entrada a bucle Línea 2

~

50

2

~

~

~

0 [Entra bucle exterior]

Línea 3

~

~

2

1

~

~

~ [Entra bucle j]

Línea 4 – 5

4

~

2

1

6

4

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

4

4

Línea 8 – 5 – 6 – 7

~

~

~

~

~

5

9

Línea 8 – 5 – 6 – 7

~

~

~

~

~

6

15 [Sale bucle m]

Línea 9 – 3

~

~

~

2

~

~

~

Línea 4 – 5

7

~

2

2

8

7

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

7

22

Línea 8 – 5 – 6 – 7

~

~

~

~

~

8

30 [Sale bucle m] [Sale bucle j]

Línea 10 – 11 – 12

3

~

~

~

~

~

~ [Entra bucle HR] [Sale bucle HR]

Línea 13 – 14 – 2

~

50

3

~

~

~

30

Línea 3

~

~

3

1

~

~

~ [Entra bucle j]

Línea 4 – 5

5

~

3

1

8

5

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

5

35

Línea 8 – 5 – 6 – 7

~

~

~

~

~

6

41

Línea 8 – 5 – 6 – 7

~

~

~

~

~

7

48

Línea 8 – 5 – 6 – 7

~

~

~

~

~

8

56 [Sale bucle m]

Línea 9 – 3

~

~

~

2

~

~

~

Línea 4 – 5

8

~

3

2

10

8

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

8

64

Línea 8 – 5 – 6 – 7

~

~

~

~

~

9

73

Línea 8 – 5 – 6 – 7

~

~

~

~

~

10

83 [Sale bucle m]

Línea 9 – 3

~

~

~

3

~

~

~

Línea 4 – 5

12

~

3

3

12

12

~ [Entra bucle m]

Línea 6 – 7

~

~

~

~

~

12

95 [Sale bucle m] [Sale bucle j]

Línea 10 – 11 – 12

6

~

~

~

~

~

~ [Entra bucle HR] [Sale bucle HR]

Línea 13 – 14 – 2

~

50

4

~

~

~

95 [Sale bucle exterior]

 

 

Comentarios: Se comprenderá fácilmente que para hacer un seguimiento de este tipo resultará en general mucho más efectivo recurrir al ordenador que hacerlo a mano, aunque también es positivo practicar este tipo de construcciones pues nos ayudarán a comprender mejor la programación.

Entre distintas variables hacemos un seguimiento también del parámetro 2 * (j + i) por ser un elemento de control de un bucle Desde. Por tanto nos interesa conocer qué valores va adoptando, aunque no esté definido como variable.

Se insertan como comentarios el seguimiento de la apertura y cierre de bucles. Todo bucle abierto ha de tener su cierre.

En este caso no habíamos definido un objetivo del seguimiento realizado, con lo cual no cabe hacer una valoración. Lo único que hemos comprobado es que en estos dos casos el algoritmo “parece que hace algo” (mostrar unos resultados), no presentando hojas o ramas muertas ni dando lugar a indeterminaciones matemáticas.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Descargar archivo: