Búsqueda personalizada
Curso de Pascal (Turbo Pascal)
 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
 Mi Blog 
  
 Sitios Amigos
 Casas Rurales
 Directorio Web

 
[más enlaces] 
  
 Contenidos > 2.4 Anidamiento
Las instrucciones alternativas y repetitivas pueden escribirse una dentro de otra. A este hecho se le conoce como anidamiento.

Las instrucciones alternativas permiten realizar las siguientes combinaciones de anidamiento:
  • Doble en doble.
  • Doble en simple.
  • Doble en múltiple.
  • Simple en simple.
  • Simple en doble.
  • Simple en múltiple.
  • Múltiple en múltiple.
  • Múltiple en doble.
  • Múltiple en simple.
De ellas, vamos a estudiar, como ejemplo, las siguientes combinaciones:
  • Doble en doble.
  • Múltiple en doble.

Alternativa doble en doble

En Pascal, para anidar una alternativa doble en otra, se utiliza la sintaxis:


   if <expresión_lógica_1> then
      begin

         { Inicio del anidamiento }
         if <expresión_lógica_2> then
            begin
               <bloque_de_instrucciones_1>
            end
         else
            begin
               <bloque_de_instrucciones_2>
            end
         { Fin del anidamiento }

      end
   else
      begin
         <bloque_de_instrucciones_3>
      end
 

O también:


   if <expresión_lógica_1> then
      begin
         <bloque_de_instrucciones_1>
      end
   else
      begin

         { Inicio del anidamiento }
         if <expresión_lógica_2> then
            begin
               <bloque_de_instrucciones_2>
            end
         else
            begin
               <bloque_de_instrucciones_3>
            end
         { Inicio del anidamiento }

      end

 

Ejemplo 1: Se quiere escribir un programa que:

1º) Pida por teclado la nota (real) de una asignatura.
2º) Muestre por pantalla:
  • "APTO", en el caso de que la nota sea mayor o igual que 5 y menor o igual que 10.
  • "NO APTO", en el caso de que la nota sea mayor o igual que 0 y menor que 5.
  • "ERROR: Nota incorrecta.", en el caso de que la nota sea menor que 0 o mayor que 10.
En pantalla:


   Introduzca nota (real): 7.5

   APTO

 


   Introduzca nota (real): 12.2

   ERROR: Nota incorrecta.

 

Una solución al problema es:

program EJE12061;

uses Crt;

var Nota : Real;

begin
   ClrScr;
   GotoXY( 4, 2 );
   Write( 'Introduzca nota (real): ' );
   ReadLn( Nota );

   GotoXY( 4, 4 );
   if ( Nota >= 5 ) and ( Nota <= 10 ) then
      Write( 'APTO' )
   else

      { Inicio del anidamiento }
      if ( Nota >= 0 ) and ( Nota < 5 ) then
         Write( 'NO APTO' )
      else
         Write( 'ERROR: Nota incorrecta.' );
      { Fin del anidamiento }

end.


Fíjese que, en este caso, se puede prescindir de las palabras reservadas beginend de la sintaxis de las alternativas dobles, ya que, los bloques de instrucciones sólo contienen una instrucción.

Como se puede observar, el anidamiento de instrucciones alternativas permite ir descartando valores hasta llegar al bloque de instrucciones que se debe ejecutar.


Alternativa múltiple en doble

En Pascal, para anidar una alternativa múltiple en una alternativa doble, se utiliza la sintaxis:


if <expresión_lógica> then
 begin

  { Inicio del anidamiento }
  case <expresión> of
   <lista_de_constantes_1> : begin
                             <bloque_de_instrucciones_1>
                             end;
   <lista_de_constantes_2> : begin
                             <bloque_de_instrucciones_2>
                             end;
   ...
   <lista_de_constantes_n> : begin
                             <bloque_de_instrucciones_n>
                             end
   [ else
        begin
           <bloque_de_instrucciones_n+1>
        end ]
  end

  { Fin del anidamiento }

 end
else
 begin
    <bloque_de_instrucciones_n+2>
 end
 

Ejemplo 2: Así por ejemplo, el primer ejemplo del apartado anterior, 2.3 Alternativa múltiple, también se puede resolver anidando una alternativa múltiple en una alternativa doble.

program EJE12081;

uses Crt;

var Dia : Integer;

begin
   ClrScr;
   GotoXY( 4, 2 );
   Write( 'Introduzca dia de la semana: ' );
   Read( Dia );

   GotoXY( 4, 4 );
   if ( Dia >= 1 ) and ( Dia <= 7 ) then

   { Solo si el dia es valido, se ejecuta la
   instruccion alternativa multiple }

      { Inicio del anidamiento }
      case Dia of
         1 : Write( 'Lunes' );
         2 : Write( 'Martes' );
         3 : Write( 'Miercoles' );
         4 : Write( 'Jueves' );
         5 : Write( 'Viernes' );
         6 : Write( 'Sabado' );
         7 : Write( 'Domingo' )
      end
      { Fin del anidamiento }

   else
      Write( 'ERROR: Dia incorrecto.' )
end.

 Más información
Texto extraído del libro EMPEZAR DE CERO A PROGRAMAR EN PASCAL.
 Contenidos > Apartado siguiente
3.1 Repetitiva mientras ( la instrucción while )
Búsqueda personalizada
 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
 Secciones
Inicio Libros Librerías Mapa Web Artículos Cursos Ejercicios Guías de uso Mini Diccionario Enlaces Carlos Pes Mi Blog
© Carlos Javier Pes Rivas, 2006-2008
Política de privacidad - Contactar