Búsqueda personalizada
Curso de Diseño de Algoritmos
 Principal
 Inicio
 Libros
 Librerías
 Mapa Web
 
 Recursos
 Artículos
 Cursos
 Ejercicios
 Guías de uso
 Mini Diccionario 
  
 Sintaxis
 ANSI C
 Ordinogramas
 Pascal
 Pseudocódigo 
  
 Acerca de
 Carlos Pes
 Colaboradores
 Taller de ideas 
  
 Sitios Amigos
 Blogs,...
 Informática,...
 Directorios,...
 Empresas,...
 Gente,...
 Ocio,...
 Tutoriales,...
  
 Mis Blogs en
 Blogger
 BuscoAfiliados 
  
 Contenidos > 11.1 Instrucción interrumpir
11.1 Instrucción interrumpir
En pseudocódigo, para escribir una instrucción de salto interrumpir, se utiliza la sintaxis:


   interrumpir
 

La instrucción de salto interrumpir siempre se usa para interrumpir (romper) la ejecución normal de un 
bucle, es decir, la instrucción interrumpir finaliza (termina) la ejecución de un bucle y, por tanto, el control del programa se transfiere (salta) a la primera instrucción después del bucle.

Ejemplo 1: Estúdiese el siguiente algoritmo:

 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." )
         interrumpir
         /* En el caso de que n sea un cero,
            el bucle se interrumpe. */
       fin_si
       escribir( "El opuesto es: ", -n )
       a 
a + n
    mientras ( n >= -10 y n <= 10 )
    escribir( "Suma: ", a )
 fin

El algoritmo puede ser la solución del problema siguiente:

Diseñe el agoritmo de un programa que:

1º) Pida por teclado un número (dato entero).
2º) Si el número introducido por el usuario es distinto de cero, muestre por pantalla el mensaje:
  • "El opuesto  es: <-número>".
3º) Repita los pasos 1º y 2º, mientras que, el usuario introduzca un número mayor o igual que -10 y menor o igual que 10.
Pero, si el usuario introduce un cero, el bucle también finaliza, mostrándose por pantalla el mensaje:
  • "ERROR: El cero no tiene opuesto.".
4º) Muestre por pantalla la suma de los números introducidos por el usuario.

En pantalla:


   Introduzca un número entero: 15

   El opuesto es: -15


   Suma: 15


 

La traza del algoritmo es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1  0 0 ?
Inicio de la iteración 1.
2 escribir( "Introduzca un número entero:" ) 0 ?
3 leer( n ) 0 15
4 (Comprobar si = 0) 0 15
La condición de la alternativa simple es falsa.
5 escribir( "El opuesto es: ", -n ) 0 15
6  a + n 15 15
Fin de la iteración 1.
7 (Comprobar si >= -10 y n <= 10) 15 15
La condición del bucle es falsa.
El bucle finaliza después de 1 iteración.
8 escribir( "Suma: ", a ) 15 15

Figura. Traza del ejemplo 1.

El bucle ha finalizado porque la condición ( 
>= -10 y n <= 10 ) es falsa, ya que, 15 no es mayor o igual que -10 y menor o igual que 10.

Sin embargo, el bucle también puede finalizar, no porque sea falsa la condición  ( 
>= -10 y n <= 10 ), sino, porque se ejecute la instrucción interrumpir. Esto ocurrirá cuando el usuario introduzca un cero. Por ejemplo:


   Introduzca un número entero: 8

   El opuesto es: -8


   Introduzca un número entero: -7

   El opuesto es: 7


   Introduzca un número entero: 0

   ERROR: El cero no tiene opuesto.


   Suma: 1

 

La traza en este caso es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1  0 0 ?
Inicio de la iteración 1.
2 escribir( "Introduzca un número entero:" ) 0 ?
3 leer( n ) 0 8
4 (Comprobar si = 0) 0 8
La condición de la alternativa simple es falsa.
5 escribir( "El opuesto es: ", -n ) 0 8
6  a + n 8 8
Fin de la iteración 1.
7 (Comprobar si >= -10 y n <= 10) 8 8
La condición del bucle es verdadera.
Inicio de la iteración 2.
8 escribir( "Introduzca un número entero:" ) 8 8
9 leer( n ) 8 -7
10 (Comprobar si = 0) 8 -7
La condición de la alternativa simple es falsa.
11 escribir( "El opuesto es: ", -n ) 8 -7
12  a + n 1 -7
Fin de la iteración 2.
13 (Comprobar si >= -10 y n <= 10) 1 -7
La condición del bucle es verdadera.
Inicio de la iteración 3.
14 escribir( "Introduzca un número entero:" ) 1 -7
15 leer( n ) 1 0
16 (Comprobar si = 0) 1 0
La condición de la alternativa simple es verdadera.
17 escribir( "ERROR: El cero no tiene opuesto." ) 1 0
18 interrumpir 1 0
El bucle se interrumpe en la 3ª iteración.
El control del programa se transfiere (salta)
 a la primera instrucción después del bucle.
19 escribir( "Suma: ", a ) 1 0

Figura. Traza del ejemplo 1.

Normalmente, cuando en un bucle se utiliza una instrucción interrumpir, la ejecución de ésta se condiciona.

En el ejemplo 1, el bucle se interrumpe si la condición ( 
= 0 ) es verdadera. Nótese que, dicha condición no está contemplada en la condición de salida estándar del bucle, por lo que, a la condición ( = 0 ) se le considera condición de salida interna del bucle.

Ejemplo 2: No obstante, el problema también se puede resolver sin hacer uso de la instrucción interrumpir:

 algoritmo Numeros_opuestos_del_menos_10_al_mas_10

 variables
    entero numero, acumulador

 inicio
    acumulador
0
    hacer
       escribir( "Introduzca un número entero: " )
       leer( numero )
       si ( numero = 0 )
         escribir( "ERROR: El cero no tiene opuesto." )
       sino
         escribir( "El opuesto es: ", -numero )
         acumulador acumulador + numero
       fin_si
    mientras ( numero >= -10 y numero <= 10 y
               numero <> 0 )
    escribir( "Suma: ", acumulador )
 fin

Obsérvese que, en este algoritmo, sí se contempla en la condición de salida del bucle la posibilidad de que el usuario teclee un cero, en cuyo caso, el bucle deja de iterar de forma natural.

Los resultados por pantalla de este algoritmo son idénticos a los del algoritmo anterior.

 Más información
Texto extraído del libro DOMINE LA PROGRAMACIÓN EN LENGUAJE C.
 Contenidos > Apartado siguiente
11.2 Instrucción continuar
 A destacar
Cursos Ejercicios Libros Enlaces Recomendados
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Marketing en Internet
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
Tutoriales y Cursos
Gane dinero con su web
Comprar dominio
Programación Informática
100% Adsense
Búsqueda personalizada
 Más Webs Interesantes
© 2006-2009 CarlosPes.com