domingo, 29 de abril de 2018

Estructuras de Control


Nuevamente bienvenidos a este curso de Programación Básica. En esta oportunidad le presentaremos uno de los capítulos más relevante: Las estructuras de control. Hasta ahora nuestros programas han sido muy "lineal", esto es, desde que se inicia hasta que finaliza no se ha tomado ningun tipo de decisión, únicamente se han ejecutado instrucciones netamente operativas. 

Permítame explicarme mejor: En el ejercicio de suma del capítulo anterior se solicita por teclado los valores del primer y segundo número, estos se adiccionan y, posteriormente, se muestra el resultado. En ningún momento se ha tomado una decisión al respecto, como por ejemplo, realizar la suma si el primer número es mayor que el segundo.


Sentencia IF - ELSE

Cuando es requerido tomar decisiones dentro del programa hacemos uso de las sentencias de control: IF - ELSE. La estructura es la siguiente:

if (condición){
   // instrucciones;
   // ...;
} else {
   // instrucciones;
   // ....
}

¿Cómo funciona esto? Pues, primero se evalúa la condición del if si esta se cumple se ejecutarán las instrucciones que se encuentran debajo de ella, en caso contrario se ejecutarán las instrucciones debajo del else (el else es opcional, no es obligatorio incluirlo). Note que el if se abre y se cierra con llaves { } y dentro de ellas las instrucciones que se ejecutarán. Lo mismo ocurre con el else

Veamos un ejemplo para comprender mejor lo anterior: Realicemos un programa que muestre en pantalla un mensaje cuando una persona posea una edad mayor a 17 años.

#include <stdlib.h>
#include <iostream>
using namespace std;

int main(){
   int edad;
   cout << "Indique su edad: ";
   cin >> edad;
   if (edad > 17){
      cout << "Usted es mayor de edad";
   }
   return 0;
}

Al ejecutarse este programa se solicitará al usuario que ingrese su edad. Si la edad es mayor a 17 se ejecutará la instrucción cout << "Usted es mayor de edad", en caso contrario se terminará el programa. Ahora, si no queremos que termine el programa al no cumplirse la condición sino que muestre otro mensaje nos apoyaremos con la sentencia else de esta forma:

#include <stdlib.h>
#include <iostream>
using namespace std;

int main(){
   int edad;
   cout << "Indique su edad: ";
   cin >> edad;
   if (edad > 17){
      cout << "Usted es mayor de edad";
   } else {
      cout << "Usted es menor de edad";
   }
   return 0;
}

Ahora, en el caso de no cumplirse la condición del if se ejecutará las instrucciones que están enmarcadas en el else. Para el else no es requisito evaluar una condición ya que, como se mencionó anteriormente, esta opción que se ejecutará cuando no se cumpla el if. 

Nota: Dentro de la condición se coloca operadores que son las que permiten evaluar la condición, estos operadores pueden verlos en el Apendice: Operadores.

En los casos anteriores sólo se evaluaron dos condiciones, si la edad es mayor a 17 años o, de lo contrario,  que no lo sea. Pero si deseamos evaluar más de dos condiciones lo podemos lograr concantenando un if después de un else (en algunos lenguaje de programación es conocido como elseif). Como ejemplo veamos el siguiente código: 

#include <stdlib.h>
#include <iostream>
using namespace std;

int main(){
   int edad;
   cout << "Indique su edad: ";
   cin >> edad;
   if (edad > 18){
      cout << "Usted es mayor de edad";
   } else if (edad == 18){
      cout << "Bienvenido a la mayoría de edad";
   } else {
      cout << "Usted es menor de edad";
   }
   return 0;
}

Vemos ahora que tenemos tres condiciones:
  1. Cuando la edad es mayor a 18 (edad > 18).
  2. Cuando la edad es igual a 18 (edad == 18).
  3. Cuando no es mayor ni igual a 18, es decir, cuando es menor a 18.
Con esta estructura podremos construir flujo de ejecución de programas tan complejas tales que nos permitan particularizar ciertas instrucciones para condiciones muy específicas. 

Para cerrar haremos un ejercicio del cual quedará de su parte su análisis, si tienen alguna duda comente y con gusto les apoyaré. El enunciado de la actividad es el siguiente: Realizar un programa que simule la ejecución de una calculadora que permita sumar, restar, multiplicar y dividir dos números, en la cual el usuario deberá seleccionar cual operación matemática quiere hacer.

#include <stdlib.h>
#include <iostream>
using namespace std;

int main (){
   int opcion;
   float num1, num2, resultado;

   cout << "Que operacion matematica desea realizar" << endl;
   cout << "1.- Suma" << endl;
   cout << "2.- Resta" << endl;
   cout << "3.- Multiplicacion" << endl;
   cout << "4.- Division" << endl;
   cout << "Seleccione una opcion --> ";
   cin >> opcion;

   cout << "Introduzca el numero 1 ";
   cin >> num1;
   cout << "Introduzca el numero 2 ";
   cin >> num2;

   if (opcion == 1){
      resultado = num1 + num2;
      cout << "El resultado es " << resultado;
   } else if (opcion == 2){
      resultado = num1 - num2;
      cout << "El resultado es " << resultado;
   } else if (opcion == 3){
      resultado = num1 * num2;
      cout << "El resultado es " << resultado;
   } else if (opcion == 4){
      resultado = num1 / num2;
      cout << "El resultado es " << resultado;
   } else {
      cout << "Opcion incorrecta";
   }
   return 0;
} 

0 comentarios:

Publicar un comentario