Análisis del bucle MIENTRAS

De Ejercicios

Contenido

Enunciado

Analiza los siguientes trozos de pseudocódigo y responde a las preguntas.

Enunciado a)

¿Cuántas veces se ejecutará la Acción 1?

 Cont <- 0
 MIENTRAS Cont<10 HACER
   Cont <- Cont+1
   SI Cont=10 ENTONCES
      Accion 1
   FIN SI
 FIN MIENTRAS

Enunciado b)

¿Qué escribirá el siguiente bucle?

 Numero <-- 1
 MIENTRAS Numero < 11 HACER
    Numero <-- Numero + 1
    ESCRIBIR Numero
 FIN_MIENTRAS

Enunciado c)

¿Cuántas iteraciones del bucle se realizarán?

 Numero <-- 2
 hecho <-- FALSO
 MIENTRAS NO hecho HACER
      Numero <-- Numero * 2
      SI Numero > 64 ENTONCES 
           hecho <-- verdadero
      FIN_SI
 FIN_MIENTRAS

Soluciones

Solución a)

 Cont <- 0
 MIENTRAS Cont<10 HACER
   Cont <- Cont+1
   SI Cont=10 ENTONCES
      Accion 1
   FIN SI
 FIN MIENTRAS

La Accion 1 no se ejecutará nunca porque, según el diseño, para que se ejecute, la variable Cont tiene que ser igual a 10, pero la orden condicional SI está dentro de un bucle MIENTRAS que se ejecuta sólo si la variable Cont es menor que 10. Por lo tanto no se ejecutará en ningún momento ya que Cont no llega a ser nunca 10.

Solución b)

 Numero <-- 1
 MIENTRAS Numero < 11 HACER
    Numero <-- Numero + 1
    ESCRIBIR Numero
 FIN_MIENTRAS

A la variable Numero en cada vuelta del bucle MIENTRAS se le suma 1, como entra en el bucle valiendo 1 irá tomando valores desde 2 hasta 11 que será su valor final, ya que el bucle acaba cuando Numero es menor que 11. Por lo tanto, escribirá en el dispositivo de salida todos los números del 2 al 11.

Solución c)

 Numero <-- 2
 hecho <-- FALSO
 MIENTRAS NO hecho HACER
      Numero <-- Numero * 2
      SI Numero > 64 ENTONCES 
           hecho <-- VERDADERO
      FIN_SI
 FIN_MIENTRAS

El bucle se ejecuta 6 veces, ya que en la quinta iteración, el valor de Numero (en la condición SI) es de 64, por lo tanto, no entra dentro de la condición. Sin embargo en la sexta iteración el valor de Numero (en la condición SI) es de 128, haciendo verdadera la condición y cambiando el valor de hecho a VERDADERO. Al cambiar el valor de hecho a verdadero, no vuelve a entrar en el bucle MIENTRAS.

Tipos de soluciones