top of page

ESTRUCTURAS CONDICIONALES (IF)

Ancla 1

Estructuras condicionales

¿QUÉ ES UNA ESTRUCTURA CONDICIONAL?

 

Todos tomamos a decisiones a diario sobre nuestras acciones. Para ello, solemos basarnos en las características del entorno en el que nos encontramos. Por ejemplo, si es invierno, no vamos a ir a la playa. La programación, a menudo, busca traducir en un conjunto de códigos, que se ejecuten de forma automática, algunas de las acciones humanas.

 

Así, los bucles ‘if’ o estructuras condicionales son la manifestación de este proceso mental de toma de decisiones. Este funciona, al igual que nuestra mente, realizando una acción si se cumple una cierta condición, y otra (o ninguna), si no se cumple.

 

Por ejemplo, en un cierto cine, los niños menores de 5 años y los adultos mayores de 65, pagan 7€, mientras que el resto pagan 10€. Mentalmente, si vamos al cine con nuestra abuela y nuestro hermano pequeño, nos preguntaremos quién cumple las condiciones y, a partir de eso, calcularemos el precio del cine. Utilizando el bucle if, se podría diseñar un programa que hiciera este cálculo automáticamente (resuelto abajo). (EJEMPLO 1)

 

Las condiciones más simples solo constan de dos opciones: sí o no. Sin embargo, pueden existir condiciones más complejas en las que entren varios factores en juego. Por ejemplo, supongamos que en el cine anteriormente mencionado, los menores de 5 años pagan 7€, los mayores de 65 años 5€, y el resto 10€. Entonces, habría que preguntarse primero si la persona tiene menos de 5 años, luego si tiene más de 65 y, finalmente, si ninguna se cumple, asumir que está entre dicho rango de edad. Esto, en R, se expresa utilizando ‘else if’. (EJEMPLO 2)

¿Cómo creo estructuras condicionales?

Para expresar una condición, se utiliza la instrucción if, cuya sintaxis general en R es:

 

         

                                                                               If ( condición1 ) {Proceso1}

                                                                               Else if (condición 2){Proceso2 }

                                                                               …Else if (condición n){Proceso n}

                                                                               Else {Proceso n+1}

 

Las primeras estructuras ('If' y 'Else If') recogen las condiciones y los procesos que se deben realizar si estas se cumplen. La estructura ‘Else’, recoge el proceso a realizar si ninguna de las condiciones anteriores se cumple.

¡A TENER EN CUENTA!

 

Aunque la forma aparentemente más sencilla de escribir las estructuras condicionales es la anterior, en programas un poco más complejos, podemos necesitar introducir más bucles o instrucciones dentro de el primero. Por lo tanto, el profesor recomendó una sintexis más clara, que facilita la visualización de las diferentes intrucciones:

 

   If (condición1) {

   Proceso1

   } else if (condición2) {

   Proceso2

   } else if (condición 3){

   Proceso 3

   } … else if (condición n){

   Proceso n

   } else{

   Proceso n+1

   }

 

También se pueden añadir comentarios en los distintos puntos del bucle para indicar los pasos que se están dando (utilizando #comentario)

Conectores lógicos

Se pueden utilizar los operadores lógicos AND y OR para expresar las condiciones. Con ellos, se pueden expresar varias condiciones en una sola expresión, por lo que ayuda a simplificar y acortar los programas.

AND : implica que, para que sea verdadero, es necesario que se cumplan ambas condiciones.

                                                                                                         &

 

OR : implica que, para que sea verdadero, solo se tiene que cumplir alguna de las condiciones.

                                                                                                          |

Ejemplo ilustrativo

Ejemplo

Incluímos un par de ejemplos ilustrativos, expuestos en la explicación teórica de las estructuras condicionales, para aclarar el uso de esta instrucción.

EJEMPLO 1: en un cierto cine, los niños menores de 5 años y los adultos mayores de 65, pagan 7€, mientras que el resto pagan 10€. 

I)  Generamos un valor aleatorio de edad entre el 1 y el 90. Para esto utilizamos el comando sample ( ), el cual nos dará un número entero aleatorio (ver 'instrucciones básicas, generación de número aleatorios').



 

 


 

II) Establecemos la condición del precio del cine para saber cuanto tendría que pagar una persona cuya edad fuera la generada de forma aleatoria. Utilizamos un bucle if.

EJEMPLO 2: en el cine anteriormente mencionado, los menores de 5 años pagan 7€, los mayores de 65 años 5€, y el resto 10€. 

I) Generamos un valor aleatorio de edad entre el 1 y el 90. Para esto utilizamos el comando sample ( ), el cual nos dará un número entero aleatorio.


 

 


 

II) Establecemos las condiciones del precio del cine para saber cuando tendría que pagar una persona cuya edad fuera la generada de forma aleatoria. Utilizamos un bucle if.

Ancla 2

Ejercicios

DIFICULTAD BAJA

 

Ejercicio 1:

Construir matriz diagonal superior 4*4 a partir de los siguientes vectores

r=c(2,5,6,3)

t=c(6,7,8,9)

y=c(1,7,9,4)

u=c(4,8,2,5)

Ejercicio 2: 

Realizar un programa que, para a>b haga la operación (a^2)+b-(5*b) y para a<b haga a-(b^5)

(Probar con distintos valores de a y b)

DIFICULTAD MEDIA

En una clase hay 20 alumnos que han hecho un examen. El profesor quiere realizar un programa que clasifique las notas de los alumnos de tal manera que si la nota del alumno está en el intervalo:

  • [0, 5) tendrá un insuficiente.

  • [5, 6) tendrá un suficiente.

  • [6, 7) tendrá un bien.

  • [7, 9) tendrá un notable.

  • [9, 10) tendrá un sobresaliente.

Por último hará una tabla con las notas numéricas en una columna y las calificaciones en otra.

Pasos a seguir:

  1. Crear un vector llamado notas con las 20 notas. Crear un vector llamado calificaciones e inicializarlo a 0.

  2. Inicializar i para que el programa empiece por el primer dígito del vector notas y del vector calificaciones.

  3. Crear un bucle while para que el programa vaya clasificando cada nota del vector notas.

  4. Crear bucles if y if else en los cuales según el intervalo en el que esté la nota el programa escriba, por ejemplo, ‘Bien’ (usando el comando print). Y guarde la palabra que ha escrito en el vector calificaciones.

  5. Cerrar el bucle while.

  6. Crear una tabla en la que una columna tenga el vector notas y otra, el vector calificaciones (usar data.frame).

Ancla 3

SOLUCIONES

DIFICULTAD BAJA

EJERCICIO 2

EJERCICIO 1

DIFICULTAD MEDIA 
bottom of page