Actividad de autoevaluación 3

Esta autoevaluación DEBE ser completada sin usar R para poder razonar las preguntas.

Pregunta 1

¿Qué problema/s tiene la siguiente definición de una función en R?

f0 <- function(a b) {
  x <- a + b
  x * 100
}

Pregunta 2

Considerar la siguiente función:

f1 <- function(x, y) {
  if(y == "operar") {
    x <- x * 2
    rtdo <- x + 100
  } else {
    rtdo <- x
  }
  return(rtdo)
}

¿Qué valor se obtiene si se evalúa f1(2, "operar")?

¿Qué valor se obtiene si se evalúa f1(2, "no operar")?

¿Qué valor se obtiene si se evalúa f1("operar", 2)?

¿Qué valor se obtiene si se evalúa f1(2)?

¿Qué valor se obtiene si se evalúa f1("2", "operar")?

¿Qué valor se obtiene si se evalúa f1("2", "jaja")?

Pregunta 3

Considerando la función f1 anterior junto con la función f2 y el programa que se muestran a continuación, indicar si cada una de las siguientes afirmaciones es VERDADERA o FALSA o elegir la respuesta correcta:

# Definición de funciones
f1 <- function(x, y) {
  if(y == "operar") {
    x <- x * 2
    rtdo <- x + 100
  } else {
    rtdo <- x
  }
  return(rtdo)
}

f2 <- function(z) {
  return(z + b)
}

# Programa
x <- 10
palabra <- "operar"
a <- f1(x, palabra)
cat("Mensaje 1: el valor encontrado es ", a, "y la variable x vale ", x, "\n")
b <- 12
c <- f2(15)
cat("Mensaje 2: el valor encontrado es ", c, "\n")
d <- f1(5, "no operar") + f1(5, "operar")
cat("Mensaje 3: el valor encontrado es", d, "\n")

La variable d es local a f1:

La variable c es global:

La función f2 respeta el principio de transparencia referencial:

La función f2 puede devolver distintos resultados aunque le pasemos siempre el mismo valor para el parámetro formal z:

La variable rtdo existe en el ambiente global del programa:

La variable rtdo es local a la función f1:

El texto mostrado por el primer mensaje será:

El texto mostrado por el segundo mensaje será:

El texto mostrado por el tercer mensaje será:

Pregunta 4

Seleccionar la opción correcta:

warning()

message()

stop()

NULL, NA y NaN son tres objetos que tienen comportamientos semejantes en las operaciones.