|
|
| Contenidos > 11.3
Instrucción ir_a |
|
|
| 11.3 Instrucción ir_a |
|
|
|
En
pseudocódigo,
para escribir una instrucción
de salto ir_a,
se utiliza la sintaxis:
ir_a <nombre_de_la_etiqueta>
|
La instrucción de salto ir_a
se puede usar en cualquier parte del cuerpo
de un algoritmo,
para
transferir incondicionalmente el control del algoritmo (o programa)
a
la primera instrucción después de una etiqueta, o dicho
de otra forma, al ejecutar una instrucción ir_a,
el control del
programa se transfiere (salta) a la primera instrucción
después de una etiqueta. Una etiqueta se define
mediante su
nombre (identificador)
seguido del carácter dos puntos (:).
Ejemplo
1: En el
siguiente algoritmo se
utiliza la instrucción ir_a
para resolver el mismo problema que el del ejemplo 1 del apartado 11.1
Instrucción interrumpir:
algoritmo
Numeros_opuestos_del_menos_10_al_mas_10
variables
entero
n, a
inicio
a ←
0
hacer
escribir( "Introduzca
un número entero: "
)
leer( n )
si ( n = 0 )
escribir(
"ERROR: El cero no tiene opuesto." )
ir_a etiqueta_1
/*
En el caso de que n sea un cero,
el control del programa salta a la primera
instrucción después de etiqueta_1. */
fin_si
escribir( "El
opuesto es: ", -n
)
a ←
a + n
mientras
( n >=
-10 y
n <=
10 )
etiqueta_1:
escribir(
"Suma: ",
a )
fin |
Los resultados por pantalla de este algoritmo son idénticos
a
los de los algoritmos de los ejemplos 1 y 2 del apartadado 11.1
Instruccion interrumpir.
En pantalla:
Introduzca un número entero: -4
El opuesto es: 4
Introduzca
un número entero: 12
El opuesto
es: -12
Introduzca
un número entero: 0
ERROR: El
cero no tiene opuesto.
Suma: 8
|
La traza
del algoritmo es:
Secuencia: |
Acción
(instrucción): |
Valor
de:
|
|
|
a |
n |
| 1 |
a ← 0 |
0 |
? |
|
Inicio
de la iteración 1. |
|
|
| 2 |
escribir( "Introduzca
un número entero:"
) |
0 |
? |
| 3 |
leer( n ) |
0 |
-4 |
| 4 |
(Comprobar
si n = 0) |
0 |
-4 |
|
La
condición de la alternativa simple es falsa. |
|
|
| 5 |
escribir( "El
opuesto es: ", -n
) |
0 |
-4 |
| 6 |
a ← a
+ n |
-4 |
-4 |
|
Fin
de la iteración 1. |
|
|
| 7 |
(Comprobar
si n >= -10 y n <= 10) |
-4 |
-4 |
|
La
condición del bucle es verdadera.
Inicio de la iteración 2. |
|
|
| 8 |
escribir( "Introduzca
un número entero:"
) |
-4 |
-4 |
| 9 |
leer( n ) |
-4 |
12 |
| 10 |
(Comprobar
si n = 0) |
-4 |
12 |
|
La
condición de la alternativa simple es falsa. |
|
|
| 11 |
escribir( "El
opuesto es: ", -n
) |
-4 |
12 |
| 12 |
a ← a
+ n |
8 |
12 |
|
Fin
de la iteración 2. |
|
|
| 13 |
(Comprobar
si n >= -10 y n <= 10) |
8 |
12 |
|
La
condición del bucle es verdadera.
Inicio de la iteración 3. |
|
|
| 14 |
escribir( "Introduzca
un número entero:"
) |
8 |
12 |
| 15 |
leer( n ) |
8 |
0 |
| 16 |
(Comprobar
si n = 0) |
8 |
0 |
|
La
condición de la alternativa simple es verdadera. |
|
|
| 17 |
escribir( "ERROR: El
cero no tiene opuesto."
) |
8 |
0 |
| 18 |
ir_a etiqueta_1 |
8 |
0 |
|
El
bucle se interrumpe en la
3ª iteración.
El control del programa se transfiere (salta) a la
primera instrucción después de etiqueta_1. |
|
|
| 19 |
escribir( "Suma: ", a ) |
8 |
0 |
Figura. Traza
del ejemplo 1.
Normalmente,
al igual que ocurre con las instrucciones interrumpir
y continuar,
cuando en un algoritmo se utiliza una instrucción ir_a,
la ejecución de ésta también se
condiciona.
|
|
|
|
|
|
|