INTRODUCCIÓN

En el presente taller se desarrollan varios ejercicios utilizando el lenguaje R y RMarkdown.
Cada ejercicio contiene el planteamiento del problema y el código correspondiente para resolverlo.

OBJETIVOS

Objetivo General

Desarrollar programas básicos en R utilizando estructuras condicionales, ciclos y operaciones matemáticas.

Objetivos Específicos

  • Aplicar programación básica en R.
  • Utilizar variables y operadores matemáticos.
  • Resolver problemas mediante algoritmos.
  • Generar documentos en RMarkdown.

EJERCICIO 1

Planteamiento del problema

Escribir un programa que pida la temperatura y si esta es en Fahrenheit o Celsius y presentar en pantalla su transformación en la otra medida.

temperatura <- as.numeric(readline(prompt = "Ingrese la temperatura: "))
## Ingrese la temperatura:
tipo <- readline(prompt = "Ingrese C si es Celsius o F si es Fahrenheit: ")
## Ingrese C si es Celsius o F si es Fahrenheit:
if(tipo == "C" || tipo == "c"){
  
  fahrenheit <- (temperatura * 9/5) + 32
  
  cat("La temperatura en Fahrenheit es:", fahrenheit)

} else if(tipo == "F" || tipo == "f"){

  celsius <- (temperatura - 32) * 5/9
  
  cat("La temperatura en Celsius es:", celsius)

} else{

  cat("Opción incorrecta")

}
## Opción incorrecta

EJERCICIO 2

Planteamiento del problema

Escribir un programa que pregunte al usuario por el número de horas trabajadas y el costo por hora. Además, preguntar si existen horas extras y calcular la paga total.

horas <- as.numeric(readline(prompt = "Ingrese las horas trabajadas: "))
## Ingrese las horas trabajadas:
costo <- as.numeric(readline(prompt = "Ingrese el costo por hora: "))
## Ingrese el costo por hora:
extras <- as.numeric(readline(prompt = "Ingrese las horas extras: "))
## Ingrese las horas extras:
costo_extra <- as.numeric(readline(prompt = "Ingrese el costo por hora extra: "))
## Ingrese el costo por hora extra:
paga_normal <- horas * costo

paga_extra <- extras * costo_extra

paga_total <- paga_normal + paga_extra

cat("La paga total es:", paga_total)
## La paga total es: NA

EJERCICIO 3

Planteamiento del problema

Escribir un programa que lea un entero positivo, n, introducido por el usuario y después muestre en pantalla la suma de todos los enteros desde 1 hasta n.

n <- as.numeric(readline(prompt = "Ingrese un número entero positivo: "))
## Ingrese un número entero positivo:
suma <- (n * (n + 1)) / 2

cat("La suma de los números desde 1 hasta", n, "es:", suma)
## La suma de los números desde 1 hasta NA es: NA

EJERCICIO 4

Planteamiento del problema

Escribir un programa que pida al usuario su peso y estatura, calcule el índice de masa corporal y muestre el resultado.

peso <- as.numeric(readline(prompt = "Ingrese su peso en kg: "))
## Ingrese su peso en kg:
estatura <- as.numeric(readline(prompt = "Ingrese su estatura en metros: "))
## Ingrese su estatura en metros:
imc <- peso / (estatura^2)

cat("Tu índice de masa corporal es:", round(imc, 2))
## Tu índice de masa corporal es: NA

EJERCICIO 5

Planteamiento del problema

Escribir un programa que pregunte al usuario una cantidad a invertir, el interés anual y el número de años, y muestre el capital obtenido en la inversión.

capital <- as.numeric(readline(prompt = "Ingrese la cantidad a invertir: "))
## Ingrese la cantidad a invertir:
interes <- as.numeric(readline(prompt = "Ingrese el interés anual (%): "))
## Ingrese el interés anual (%):
anios <- as.numeric(readline(prompt = "Ingrese el número de años: "))
## Ingrese el número de años:
monto <- capital * (1 + interes/100)^anios

cat("El capital obtenido es:", round(monto, 2))
## El capital obtenido es: NA

EJERCICIO 6

Planteamiento del problema

Realizar un programa que pida el tiempo ya sea en horas, minutos o segundos, luego indicar en qué tipo de tiempo desea transformar y presentar el resultado.

tiempo <- as.numeric(readline(prompt = "Ingrese el tiempo: "))
## Ingrese el tiempo:
unidad <- readline(prompt = "Ingrese la unidad actual (h/m/s): ")
## Ingrese la unidad actual (h/m/s):
convertir <- readline(prompt = "Ingrese la unidad a transformar (h/m/s): ")
## Ingrese la unidad a transformar (h/m/s):
if(unidad == "h" && convertir == "m"){

  resultado <- tiempo * 60

} else if(unidad == "h" && convertir == "s"){

  resultado <- tiempo * 3600

} else if(unidad == "m" && convertir == "h"){

  resultado <- tiempo / 60

} else if(unidad == "m" && convertir == "s"){

  resultado <- tiempo * 60

} else if(unidad == "s" && convertir == "m"){

  resultado <- tiempo / 60

} else if(unidad == "s" && convertir == "h"){

  resultado <- tiempo / 3600

} else{

  resultado <- tiempo

}

cat("El resultado es:", resultado)
## El resultado es: NA

EJERCICIO 7

Planteamiento del problema

Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.

numeros <- as.numeric(strsplit(
  readline(prompt = "Ingrese varios números separados por espacio: "),
  " "
)[[1]])
## Ingrese varios números separados por espacio:
ordenados <- sort(numeros)

cat("Los números ordenados son:\n")
## Los números ordenados son:
print(ordenados)
## numeric(0)

EJERCICIO 8

Planteamiento del problema

Escribir un programa que calcule el factorial de un número digitado por el usuario.

numero <- as.numeric(readline(prompt = "Ingrese un número: "))
## Ingrese un número:
factorial_numero <- factorial(numero)

cat("El factorial de", numero, "es:", factorial_numero)
## El factorial de NA es: NA

EJERCICIO 9

Planteamiento del problema

Escribir un programa que pida un número e indique si el número es primo o no.

numero <- 7

primo <- TRUE

if(numero <= 1){

  primo <- FALSE

} else{

  for(i in 2:(numero - 1)){

    if(numero %% i == 0){

      primo <- FALSE

    }

  }

}

if(primo){

  cat("El número es primo")

} else{

  cat("El número no es primo")

}
## El número es primo

EJERCICIO 10

Planteamiento del problema

Escribir un programa que pida un número e indique si el número es par o impar.

numero <- 8

if(numero %% 2 == 0){

  cat("El número es par")

} else{

  cat("El número es impar")

}
## El número es par