El presente documento corresponde al Taller 4 de la asignatura, desarrollado en el lenguaje R. Su propósito es aplicar estructuras básicas de programación como condicionales, bucles y operaciones matemáticas para resolver problemas prácticos. Además, se busca compartir el conocimiento mediante la publicación en RPubs y la generación de un informe en PDF.
Aplicar funciones básicas de R para resolver problemas prácticos.
Desarrollar ejercicios con planteamiento y solución en código R.
Publicar el trabajo en RPubs como parte del compartir académico.
Generar un documento en PDF para la entrega formal.
Planteamiento del problema:
Escribir un programa que pida la temperatura y si está en Fahrenheit o
Celsius y presentar en pantalla su transformación en la otra medida.
temp <- as.numeric(readline("Ingrese la temperatura: "))
## Ingrese la temperatura:
tipo <- readline("Está en Celsius (C) o Fahrenheit (F)? ")
## Está en Celsius (C) o Fahrenheit (F)?
if(tipo == "C"){
resultado <- (temp * 9/5) + 32
cat("La temperatura en Fahrenheit es:", resultado)
} else if(tipo == "F"){
resultado <- (temp - 32) * 5/9
cat("La temperatura en Celsius es:", resultado)
} else {
cat("Debe ingresar C o F")
}
## Debe ingresar C o F
Planteamiento del problema:
Calcular la paga de un trabajador considerando horas normales y horas
extras con diferente valor.
horas <- as.numeric(readline("Ingrese el número de horas trabajadas: "))
## Ingrese el número de horas trabajadas:
costo <- as.numeric(readline("Ingrese el costo por hora: "))
## Ingrese el costo por hora:
extras <- as.numeric(readline("Ingrese el número de horas extras: "))
## Ingrese el número de horas extras:
costo_extra <- as.numeric(readline("Ingrese el costo por hora extra: "))
## Ingrese el costo por hora extra:
paga <- (horas * costo) + (extras * costo_extra)
cat("La paga total es:", paga)
## La paga total es: NA
Planteamiento del problema:
Calcular la suma de los primeros n enteros positivos.
n <- as.integer(readline("Ingrese un número entero positivo: "))
## Ingrese un número entero positivo:
suma <- n * (n + 1) / 2
cat("La suma de los primeros", n, "enteros es:", suma)
## La suma de los primeros NA enteros es: NA
Planteamiento del problema:
Calcular el índice de masa corporal (IMC).
peso <- as.numeric(readline("Ingrese su peso en kg: "))
## Ingrese su peso en kg:
estatura <- as.numeric(readline("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
Planteamiento del problema:
Calcular el capital obtenido en una inversión.
cantidad <- as.numeric(readline("Ingrese la cantidad a invertir: "))
## Ingrese la cantidad a invertir:
interes <- as.numeric(readline("Ingrese el interés anual (%): "))
## Ingrese el interés anual (%):
años <- as.numeric(readline("Ingrese el número de años: "))
## Ingrese el número de años:
capital <- cantidad * (1 + interes/100)^años
cat("El capital obtenido es:", round(capital, 2))
## El capital obtenido es: NA
Planteamiento del problema:
Transformar tiempo entre horas, minutos y segundos.
tiempo <- as.numeric(readline("Ingrese el tiempo: "))
## Ingrese el tiempo:
tipo <- readline("Está en horas (H), minutos (M) o segundos (S)? ")
## Está en horas (H), minutos (M) o segundos (S)?
convertir <- readline("Desea convertir a horas (H), minutos (M) o segundos (S)? ")
## Desea convertir a horas (H), minutos (M) o segundos (S)?
if(tipo == "H" & convertir == "M"){
resultado <- tiempo * 60
} else if(tipo == "H" & convertir == "S"){
resultado <- tiempo * 3600
} else if(tipo == "M" & convertir == "H"){
resultado <- tiempo / 60
} else if(tipo == "M" & convertir == "S"){
resultado <- tiempo * 60
} else if(tipo == "S" & convertir == "H"){
resultado <- tiempo / 3600
} else if(tipo == "S" & convertir == "M"){
resultado <- tiempo / 60
} else {
resultado <- NA
}
cat("El resultado es:", resultado)
## El resultado es: NA
Planteamiento del problema:
Ordenar una lista de números ingresados por el usuario.
nums <- scan(what = numeric(), quiet = TRUE)
cat("Números ordenados:", sort(nums))
## Números ordenados:
Planteamiento del problema:
Calcular el factorial de un número.
n <- as.integer(readline("Ingrese un número: "))
## Ingrese un número:
if(is.na(n) || n < 0){
cat("Debe ingresar un número entero positivo")
} else {
factorial <- 1
if(n == 0){
factorial <- 1
} else {
for(i in 1:n){
factorial <- factorial * i
}
}
cat("El factorial de", n, "es:", factorial)
}
## Debe ingresar un número entero positivo
Planteamiento del problema:
Determinar si un número es primo.
n <- as.integer(readline("Ingrese un número: "))
## Ingrese un número:
if(is.na(n)){
cat("Debe ingresar un número válido")
} else {
es_primo <- TRUE
if(n <= 1){
es_primo <- FALSE
} else {
for(i in 2:(n-1)){
if(n %% i == 0){
es_primo <- FALSE
break
}
}
}
if(es_primo){
cat(n, "es primo")
} else {
cat(n, "no es primo")
}
}
## Debe ingresar un número válido
Planteamiento del problema:
Determinar si un número es par o impar.
n <- as.integer(readline("Ingrese un número: "))
## Ingrese un número:
if(is.na(n)){
cat("Debe ingresar un número válido")
} else if(n %% 2 == 0){
cat(n, "es par")
} else {
cat(n, "es impar")
}
## Debe ingresar un número válido
Se aplicaron estructuras básicas de programación en R para resolver problemas prácticos.
El uso de readline() permitió interacción directa
con el usuario.
Los resultados se muestran en pantalla de manera clara y ordenada.
Mantener la estructura planteamiento + código en futuros talleres.
Publicar siempre en RPubs para compartir con la comunidad.
Guardar en PDF para cumplir con los requisitos de entrega académica.
RStudio Team (2024). RStudio: Integrated Development Environment for R. RStudio, PBC.
Wickham, H. (2019). Advanced R. Chapman & Hall/CRC.
Grolemund, G., & Wickham, H. (2017). R for Data Science. O’Reilly Media.