BotonMenu
BotonIndice

Visita : http://www.conoce3000.com
Paypal : https://www.paypal.me/conoce3000/1

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


4. ESTRUCTURAS DE CONTROL.
4.2. ESTRUCTURA DE CONTROL IF-THEN-ELSE.
4. ESTRUCTURAS DE CONTROL.
4.2. ESTRUCTURA DE CONTROL IF-THEN-ELSE.
4. ESTRUCTURAS DE CONTROL.
4.2. ESTRUCTURA DE CONTROL IF-THEN-ELSE.

SIGUIENTE

SIGUIENTE

SIGUIENTE


‒ Estructura de control if-then-else.

Es una estructura de control condicional, que nos permite bifurcar la ejecución de un programa en base a una condición.

La condición es una instrucción que mediante el uso de operadores de relación o booleanos, nos permite determinar que bifurcación seguir. Si la condición da como resultado un valor verdadero (true) entonces se ejecutaran las instrucciones que cumplan con esa condición; en caso contrario (false), se ejecutan las que no cumplan con esa condición. Para el uso de esta estructura de control se hace uso de las palabras reservadas if, then y else.

Si se quiere hacer un programa que pida dos números enteros, y nos muestren por pantalla sólo el mayor, entonces la condición del programa sería algo como : a>b. En donde el resultado de esa comparación, cuando sea verdadera (true) nos da a entender que a es el mayor, pero en caso contrario cuando sea falsa (false) nos da a entender que el mayor es b, a continuación el programa de ejemplo:


Descargar
{$codepage UTF8}

VAR a,b:Longint;
    Cond :boolean;

BEGIN
  Write('a : ');
  Readln(a);
  Write('b : ');
  Readln(b);
  Cond:=a>b;
  if Cond then Writeln('el mayor es : ',a)
          else Writeln('el mayor es : ',b);
  Readln
END.
Código fuente 1: Ejemplo de la estructura if-then-else.
Descargar

En el programa se declaran a y b, como variables de tipo longint, y Cond como de tipo boolean. Lo primero que hace el programa es pedir los dos números a y b usando las instrucciones readln. A continuación se hace la comparación usando el operador de relación mayor que, el resultado de esta comparación se almacena en la variable Cond.

Esta estructura condicional, siempre empieza con la palabra reservada if, seguido viene la condición que en este caso se determina con la variable Cond. Dependiendo del valor de la condición, si este valor es true, entonces se ejecutará la instrucción que se encuentra después de la palabra reservada then, pero si este vale false, se ejecutará la instrucción que se encuentra después de la palabra reservada else. Después de la instrucción que se ejecuta con else, se debe colocar el punto y coma, para indicar que se termina la estructura condicional.

Esta estructura también se puede usar sin else. Por ejemplo si quisiéremos hacer un programa que nos permita saber si un cliente recibirá un descuento del 2.5%, cuando el monto a pagar supere las 2000 unidades monetarias, no es necesario hacer uso de la palabra reservada else. A continuación el ejemplo:


Descargar
{$codepage UTF8}

VAR Monto,TotalPagar:Double;
    Descuento : Double;
    Porcentaje : Double;
    Cond: Boolean;

BEGIN
 Porcentaje:=0.025; // 2.5/100
 Descuento :=0;
 Write('Ingrese monto a pagar : ');
 Readln(Monto);
 Cond:=Monto>2000;

 if Cond then Descuento:=Monto*Porcentaje;

 TotalPagar:=Monto-Descuento;
 Writeln('Descuento : ',Descuento:10:3);
 Writeln('Total a Pagar : ',TotalPagar:10:3);
 Readln
END.
Código fuente 2: Ejemplo de la estructura if-then-else incompleta.
Descargar

El programa declara las variables necesarias para el monto, descuento, porcentaje y el total a pagar. En la variable Porcentaje se asigna el porcentaje a descontar en este caso 2.5% (0.025), en Descuento se asigna 0, ya que se asume que el monto siempre sera menor a 2000 unidades monetarias. Después de ingresar el monto, en la variable Cond se almacena el resultado de la comparación Monto>2000, en caso la variable Cond sea true nos dice que el monto ingresado es mayor, en caso contrario significa que el monto es menor.

La estructura if evalúa la variable Cond, y si el valor de la variable Cond es true entonces se ejecuta la instrucción Descuento:=Monto*Porcentaje, caso contrario no hace nada y continua la ejecución del programa, sin alterar el valor inicial de la variable Descuento. Cuando se usa el if-then-else sin else, el punto y coma se coloca después de la instrucción que se ejecuta con then, indicándole al compilador que ahí termina la estructura condicional.

En la estructura if-then-else, se pueden usar bloques de instrucciones, estos bloques se construyen usando las palabras reservadas Begin y end. El bloque que se use después de un then, no debe tener punto y coma, pero el bloque que se use después de un else si debe tener punto y coma, para indicar al compilador que ahí termina la estructura if-then-else.

El siguiente programa hace uso de un bloque de instrucciones. Este programa nos permite calcular el perímetro de un triángulo ingresando las dimensiones de sus lados. Siempre y cuando se cumpla la condición siguiente : “Siendo A,B, y C las dimensiones de los lados de un triángulo, entonces (A


Descargar
{$codepage UTF8}

VAR A,B,C,Perimetro:Double;
    Cond : Boolean;

BEGIN
 Writeln('Ingrese los 3 lados de un triangulo :');
 Write('A=');
 Readln(A);
 Write('B=');
 Readln(B);
 Write('C=');
 Readln(C);
 Cond:=(A<B+C) and (B<A+C) and (C<A+B);
 if Cond
   then Begin
          Perimetro:=A+B+C;
          Writeln('Perimetro : ',Perimetro:6:2)
        End
   else Writeln('Los lados no forman un triangulo');
 Readln
END.
Código fuente 3: Ejemplo de la estructura if-then-else con bloques.
Descargar

Como se puede observar el bloque de instrucciones, nos permite usar más de una instrucción dentro del bloque, ampliando las capacidades de la estructura if-then-else. Otra característica de la estructura if-then-else es el echo de que se pueden encadenar o concatenar, colocando estructuras if-then-else dentro de otras estructuras if-then-else. Cuando se encadenan varias estructuras if-then-else, hay que tener en cuenta que la palabra reservada else este asociado a la palabra reservada then más cercana. Por ejemplo, si queremos hacer un programa que nos permita determinar si los tres lados de un triángulo forman un triángulo Equilátero, Isósceles o Escaleno, el programa tendría que hacer algo parecido a lo siguiente : “Si todos sus lados son iguales entonces es Equilátero, caso contrario Si al menos dos de sus lados son iguales entonces es Isósceles, y en caso contrario es Escaleno“. Además asumiendo que A,B y C son los lados de un triángulo, entonces para saber si forman un triángulo Equilátero debemos usar la siguiente condición : (A=B) y (B=C); y cuando esa condición sea falsa, debemos comprobar si es un triángulo Isósceles usando la siguiente condición : (A=B) o (B=C) o (C=D). Las descripciones mencionadas anteriormente se escribirían encadenando los if-then-else del siguiente modo:

if (A=B) and (A=C)                        // Si todos sus lados son iguales
then Writeln('Es Equilatero')          // entonces es equilatero
else if (A=B) or (A=C) or (B=C)     // caso contrario, Si al menos dos de sus lados son iguales
          then Writeln('Es Isosceles') // entonces es Isósceles
          else Writeln('Es Escaleno')   // caso contrario es Escaleno

A continuación el programa completo :


Descargar
{$codepage UTF8}

VAR A,B,C,Perimetro : Double;
    Cond : Boolean;

BEGIN
 Writeln('Ingrese los 3 lados de un triangulo :');
 Write('A=');Readln(A);
 Write('B=');Readln(B);
 Write('C=');Readln(C);
 Cond:=(A<B+C) and (B<A+C) and (C<A+B);
 if Cond
    then if (a=b) and (a=c)
            then Writeln('Es Equilatero')
            else if (a=b) or (a=c) or (b=c)
                    then Writeln('Es Isosceles')  
                    else Writeln('Es Escaleno')   
    else Writeln('No forman un triangulo');
 Readln
END.
Código fuente 4: Ejemplo del uso de encadenar estructuras if-then-else.
Descargar

El programa empieza pidiendo los lados de un triángulo, luego verifica si estos lados forman un triángulo, guardando el resultado en la variable Cond. Lo más importante al encadenar los if-then-else, como se mostró en el programa anterior es saber donde colocar el punto y coma (;) debido a que las instrucciones están encadenados, el punto y coma se coloca al final del ultimo else de toda la estructura, en este ejemplo el ultimo else sería : else Writeln('No forman un triangulo'). Si colocáramos el punto y coma después de la instrucción : else Writeln('Es escaleno'), entonces el compilador nos informará a través de un mensaje de error que la estructura if correspondiente al último else esta incompleta. La ventaja de encadenar las estructuras if-then-else es que nos permite salir de todas las estructuras encadenadas, una vez que se satisface al menos una de las condiciones, permitiendo al programa obtener un resultado más rápido. Por ejemplo si queremos hacer un programa que nos permita determinar el descuento de una compra realizada por un cliente, de acuerdo a la siguiente tabla, realizado por un departamento de finanzas:

Monto para cualquier unidad monetaria. (u.m.) Descuento
0-100 No hay descuento.
101-200 1.00 %
201-300 1.50 %
301-1000 2.00 %
1001 - a más 2.50 %

Podemos hacer el programa encadenando las instrucciones if-then-else. A continuación el programa de ejemplo:


Descargar
{$codepage UTF8}

VAR Monto,TotalPagar:Double;
    Descuento : Double;
    Porcentaje : Double;
    Cond: Boolean;

BEGIN
  Descuento :=0;
  Porcentaje :=0;
  Write('Ingrese monto a pagar : ');
  Readln(Monto);

  if (Monto >= 1001)then Porcentaje:=2.5/100
  else if (Monto>=301) then Porcentaje:=2.0/100
  else if (Monto>=201) then Porcentaje:=1.5/100
  else if (Monto>=101) then Porcentaje:=1.0/100;

  Descuento:=Monto*Porcentaje;
  TotalPagar:=Monto-Descuento;
  Writeln('Descuento : ',Descuento:10:3);
  Writeln('Total a Pagar : ',TotalPagar:10:3);
END.
Código fuente 5: Otro ejemplo de encadenar estructuras if-then-else.
Descargar

Cuando el monto ingresado es de 1050.50 unidades monetarias, el programa evalúa la primera condición (Monto>=1001), y como esta condición se cumple, entonces se ignora el resto y pasa a calcular el Descuento y el total a pagar.


Última revisión: 09/04/2014.



SIGUIENTE
SIGUIENTE
SIGUIENTE



 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.


Comments System WIDGET PACK






PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.