control

Estructuras de Selección

 

La Estructura de Selección if

La  sentencia if se le conoce como estructura de selección simple y su función es realizar o no una determinada acción o sentencia, basándose en el resultado de la evaluación de una expresión (verdadero o falso), en caso de ser verdadero se ejecuta la sentencia.

  conds
Fig. 5.1

La estructura de selección if (que se muestra en la figura 5.1) trabaja de la siguiente manera: si la evaluación de la expresión o expresiones es verdadera ( 1 ) entonces se ejecuta la sentencia a la cual se refiere la estructura de control if.

Si fueran varias sentencias a las que se refiere la estructura if (como se muestra en la figura 5.2) se tiene que encerrar todas las sentencias entre llaves ( { } ) y si la evaluación de la expresión es correcta entonces se ejecuta todas las sentencias contenidas entre las llaves.

conds
Fig. 5.2

Si la evaluación de la expresión o expresiones resultaría falsa (0), entonces no se ejecuta las sentencias.

Por ejemplo si dada la edad de una persona quiero dar un mensaje de que es o no mayor de edad, suponiendo que una persona mayor de edad tiene por lo menos 21 años, el procedimiento será el siguiente.

#include <iostream>

using namespace std;
int main()

{
int edad;
cout<<"¿Qué edad tienes? ";
cin>>edad;
if ( edad > 20 )
    cout<<"Eres mayor de edad" ;
}

#include <iostream>

using namespace std;

int main()
{
cout<<"¿Qué edad tienes? \n";
cin>>edad;
if ( edad > 20 )
   { cout<<"Eres mayor de edad";
      cout<<"Te estas volviendo viejo ";
   }
}

 

En Pseudocódigo el anterior ejemplo se vería de la siguiente forma:

Inicio
Mostrar
“¿Qué edad tienes?”
Leer edad
Si Edad >20 Entonces
         Mostrar “Eres mayor de Edad”
Fin Si
Fin


El diagrama de flujo de la estructura if se muestra en la Fig. 5.3, este diagrama contiene el símbolo diamante que es llamado el símbolo de decisión, que indica que decisión se debe tomar. El símbolo de decisión contiene una expresión, y la evaluación de ésta será verdadera o falsa. Las flechas nos indican los dos posibles caminos que se pueden tomar.

conds
fig 5.3

El anterior diagrama de flujo funciona de la siguiente manera:

1. Si Edad es mayor 20 (verdadero) entonces se muestra “Eres mayor de Edad”

2. Si no, entonces no hace nada

Importante. Para mantener el código legible es bueno dejar espacios o sangrías en todas las líneas de código que están dentro de una estructura if / else o if, estas instrucciones se alinean un poco más a la derecha y así podemos notar claramente que forman parte de las sentencias que componen a la estructura if.

Esta práctica se puede aplicar a cualquier estructura de control.

Tambien se puede unir condiciones utilizando los operadores logicos and, or y not, por ejemplo si se desea saber si 2 condiciones si han cumplido es necesario tener un formato como:

If ( matematicas >=60 and quimica>=80 )
{
cout << "pasaste ambas materias, felicidades;
}

Nota: solo si tu calificacion de matematicas es igual o mayor a 60 y la de quimica es igual o mayor a 80 se desplegara el mensaje de "pasaste...."

Los principales simbolos de comparacion son:
< menor a
> mayor a
!= no igual a
== igual a
>= mayor o igual a
<= menor o igual a

PROBLEMARIO BASICO, Ejercicios 21, 22 y 23

Estructura de Selección if / else

La  estructura if / else lo que hace es ejecutar una acción si el resultado de la evaluación de la expresión es verdadera y otra acción si el resultado de la  evaluación es falsa.

La diferencia con utilizar sólo la estructura if es que si la expresión evaluada es verdadera sólo en ese caso se ejecuta una acción de otro modo se pasa de largo. En cambio en la estructura if / else si la expresión es falsa entonces se ejecuta otra acción.

conds

Fig. 5.4

En síntesis lo que hace esta estructura es realizar una acción si la expresión es verdadera y otra si es falsa.
Aquí tenemos un ejemplo para ilustrar la estructura if / else.

#include <iostream>

using namespace std;

int main()
{
if ( edad > 20 )
    cout<<"Eres mayor de edad" ;
else
    cout<<"No eres mayor de edad";
}

El diagrama de flujo correspondiente a esta estructura es el siguiente:

conds
fig. 5.5

El anterior diagrama de flujo funciona de la siguiente manera:

1. Si Edad es mayor que 20 (verdadero) entonces se muestra: “Eres mayor de Edad”.

2. Si no entonces se muestra: “NO eres mayor de Edad”.

PROBLEMARIO BASICO, Ejercicios 24, 25

Estructuras Condicionales Anidadas

Existe el caso de estructuras if, if/else anidadas, que no es más que una estructura if o if/else dentro de otra.

Por ejemplo se desea conocer cuál es el mayor de tres números A, B ,C.

 1: #include <iostream> 
 2: int main()
 3: {
 4: int A=0, B=0, C=0;
 5: cout<<"Ingrese 3 números";
 6: cin>>A>>B>>C; //Lectura de valores por teclado
 7: if ( A > B )
 8:    { if (A > C )
 9:          cout<<"A es el número mayor";
10:      else
11:          cout<<"C es el número mayor";
12:    }
13: else
14:    { if ( B > C )
15:          cout<<"B es el número mayor";
16:      else
17:          cout<<"C es el número mayor";
18:    }
19: }

Para explicar el funcionamiento del problema anterior se han enumerado todas las líneas de tal programa.
Suponiendo que los valores ingresados por teclado fueran: A=2, B=1, C=5. El programa actuaría de la siguiente manera.
El programa se ejecuta secuencialmente hasta la línea 7 donde encuentra una expresión. Cuando se evalúe la expresión (A > B) línea 7, el resultado es verdadero (2  > 1), por lo tanto el programa ejecuta la línea 8, en dicha línea encuentra otra expresión (A > C) y el resultado de evaluar dicha expresión es falso (2 > 5) por lo que el programa salta hasta la línea 11 y muestra "C es el número mayor". Luego va a la línea 12 y verifica el cierre de llaves y finalmente salta  hasta la línea 19 siendo la última línea de ejecución.