miércoles, 23 de marzo de 2011

Selección de acciones alternativas

 La sentencia IF

Puesto que las expresiones lógicas toman el valor verdadero o falso, se necesita una sentencia de control que indique a la computadora que ejecute una sentencia en caso de que la expresión sea verdadera y otra sentencia en el caso de que sea falsa. Esto se logra mediante la sentencia IF. El siguiente ejemplo describe su utilidad.

Ejemplo:

Program Numeros;
  Var

    Numero : Real;
  Begin

     Writeln (`Introduzca un número `);

     Read (Numero);

     If   Numero > 0.0 Then
            Begin

                 Writeln (`El número introducido es positivo´);

                 Readln
            End      Else             Begin

                Writeln (`El número introducido es negativo´);

                Readln

            End;

End.
 Sentencias IF anidadas

La sentencia que sigue a la palabra reservada then o else puede ser cualquiera, incluso otra sentencia if - then - else. Cuando existe una sentencia if - then - else dentro de otra sentencia if - then - else, se dice que dichas sentencias están anidadas.

Ejemplo:

Program Mayor;
  Uses

    Wincrt;      

Var

    A,B,C : Integer;

    Elmayor : Integer; 
  Begin

     Writeln (`Digite tres números enteros `);

     Readln (A,B,C);

     If   A > B Then

            If   A > C Then

                 Elmayor := A

            Else

                 Elmayor := C
     Else                     

            If   B > C Then

                 Elmayor := B

            Else

                 Elmayor := C;

    * Fundación Foro Educación a distancia Psicoterapias Cognitivas y Psicología Positiva
   

     Writeln (`El número mayor es: `,Elmayor)

End.
La sentencia CASE

La sentencia CASE se utiliza para elegir entre diferentes alternativas. Una sentencia CASE se compone de varias sentencias simples. Cuando un CASE se ejecuta, una y sólo una de las sentencias simples se selecciona y se ejecuta.

Ejemplo:

Program Cursor;

(* Este programa mueve el cursor a través de la pantalla mediante las teclas predefinidas, cuando se presiona otra tecla, emite un pitido de advertencia*)
  Uses

    Wincrt;      

Var

    X,Y : Integer;

    C : Char;
  Begin

     Clrscr;

      X := 40;

      Y := 10;

      GotoXY (X,Y);

      Write (`*´);

      Repeat

            C := Readkey;

            GotoXY (X,Y);

            Write (` `);

            Case C of

               `S´ : Y := Y - 1;

               `B´ : Y := Y + 1;

               `D´ : X := X + 1;

               `I´   : X := X - 1;

               `P´ :   Exit

            Else

               Write (Chr(7)

            End;  

            GotoXY (X,Y);

            Write (`*´)

      Until C = `P´       

End.

No hay comentarios:

Publicar un comentario