martes, 19 de noviembre de 2013

INSTRUCCIÓN SALIRHACER E INSTRUCCIÓN HACER … REPETIR

La instrucción SalirHacer se usa para provocar una salida forzada de un bucle Hacer ... Repetir Mientras. El flujo del programa salta a la instrucción inmediatamente posterior al Repetir Mientras que marca la terminación del bucle. En el caso de bucles anidados SalirHacerafecta únicamente al bucle que está en proceso cuando se llega a esa instrucción de salida. Su uso antes o después de un bucleHacer ... Repetir Mientras no tiene ningún efecto al carecer de sentido.


SalirHacer puede encontrarse en cualquier punto intermedio entre el Hacer y Repetir Mientras. Normalmente irá después de evaluar una situación que evoluciona a medida que lo hace el bucle, y que es la desencadenante de la salida.

Disponer de la orden SalirHacer nos va a permitir introducir una variante de la instrucción   Hacer ... RepetirMientras. Dicha variante es esa misma instrucción pero sin la condición de salida Mientras. La sintaxis es la ya conocida:

Hacer
Instrucción 1
Instrucción 2
.
.
.
Instrucción n
Repetir


Queda claro que dentro del bucle habrá de existir una vía de salida a través de un SalirHacer, ya que en caso contrario el número de repeticiones sería infinito.


Ejemplo de uso de SalirHacer y de Hacer ... Repetir.



1.  Inicio [Mensaje si se acierta número secreto - aprenderaprogramar.com]

2.  Leer Secretcode [Valor del número secreto]

3.  Hacer

Mostrar “Introduzca número secreto”

Pedir Numero

Si Numero = Secretcode Entonces

Mostrar “Bienvenido. Su clave para operar será 685297”

SalirHacer

SiNo

Mostrar “Número erróneo”

i = i + 1

Si i > 19 Entonces

Mostrar “Excedido número de pruebas disponibles. Acceso denegado”

SalirHacer

FinSi

FinSi

Repetir

4.  Fin





Téngase en cuenta que este programa puede ser construido sin demasiada dificultad usando un Hacer ... Repetir Mientras sin necesidad de usar SalirHacer.

En este algoritmo aparte de la “salida obligatoria” que todo bucle Hacer... Repetirdebe tener, se ha incluido otra de seguridad. Algunos sistemas informáticos trabajan en continuo con repeticiones indefinidas. Piénsese por ejemplo en un ordenador a cargo de una red de cajeros automáticos: recibe datos, realiza procesos y vuelve a la “situación de espera”. En estos casos no hay salida excepto para circunstancias muy específicas controladas por el usuario.

Como venimos haciendo con las instrucciones anteriores propondremos:
·        Evitar el uso de SalirHacer siempre que sea posible.
  ·        Recordar lo expuesto en la introducción a la modificación directa del flujo de programas.



0 comentarios:

Publicar un comentario

deja un comentario