Se presentan diez ejercicios de programación resueltos en lenguaje R. Cada ejercicio aborda una situación problemática que requiere el uso de operaciones aritméticas, estructuras condicionales, ciclos y funciones propias de R para la manipulación de datos y la interacción con el usuario mediante la consola.
Los problemas planteados incluyen conversiones entre unidades de medida, cálculos financieros y operaciones matemáticas.
Desarrollar diez programas en lenguaje R que resuelvan problemas matemáticos y lógicos, aplicando estructuras de control, operaciones aritméticas, conversiones de unidades y validaciones numéricas para fortalecer las competencias básicas en programación con R.
for, while, entre otros,...) y vectores.EJERCICIO 1:
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("Ingresa la temperatura: "))
#cat("\n¿Qué tipo de temperatura es?\n")
#cat("1. Celsius (°C)\n")
#cat("2. Fahrenheit (°F)\n")
#tipo <- as.integer(readline("Elige 1 o 2: "))
#if(tipo == 1){
# # Celsius a Fahrenheit
# resultado <- (temperatura * 9/5) + 32
# cat("\n", temperatura, "°C equivalen a", resultado, "°F\n")
# } else
# if(tipo == 2) {
# # Fahrenheit a Celsius
# resultado <- (temperatura - 32) * 5/9
# cat("\n", temperatura, "°F equivalen a", resultado, "°C\n")
# } else {
# cat("\nOpción no válida\n")
#}
EJERCICIO 2:
Escribir un programa que pregunte al usuario por el número de horas trabajadas y el coste por hora. Después debe mostrar por pantalla la paga que le corresponde, además debe preguntar si existen horas extras que tienen un valor diferente y con estos valores se calcule la paga correspondiente.
#horas <- as.numeric(readline("Horas: "))
#pago <- as.numeric(readline("Costo/hora: "))
#extras <- readline("¿Horas extras? (s/n): ")
#if(extras == "s") {
# horaex <- as.numeric(readline("Horas extras: "))
# pago2 <- as.numeric(readline("Costo extra/hora: "))
# total <- (horas * pago) + (horaex * pago2)
#} else {
# total <- horas * pago
#}
#cat("\nPaga total:", total, "\n")
EJERCICIO 3:
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.integer(readline(prompt="Ingrese un entero positivo: "))
#suma <- (n * (n + 1)) / 2
#print(suma)
EJERCICIO 4:
Escribir un programa que pida al usuario su peso (en kg) y estatura
(en metros), calcule el índice de masa corporal y lo almacene en una
variable, y muestre por pantalla la
frase Tu índice de masa corporal es <imc>
donde <imc> es el índice de masa corporal calculado
redondeado con dos decimales.
#peso <- as.numeric(readline(prompt="Ingrese su peso en kg: "))
#estatura <- as.numeric(readline(prompt="Ingrese su estatura en metros: "))
#imc <- round(peso / (estatura^2), 2)
#cat("Tu índice de masa corporal es", imc)
EJERCICIO 5:
Escribir un programa que pregunte al usuario una cantidad a invertir, el interés anual y el número de años, y muestre por pantalla el capital obtenido en la inversión.
#cantidad <- readline("Introduce la cantidad a invertir: ")
#interes <- readline("Introduce el interés anual (%): ")
#anos <- readline("Introduce el número de años: ")
#cantidad <- as.numeric(cantidad)
#interes <- as.numeric(interes)
#anos <- as.numeric(anos)
#capital_final <- cantidad * (1 + interes / 100) ^ anos
#cat("El capital obtenido después de", anos, "años es:", capital_final, "\n")
EJERCICIO 6:
Realizar un programa que pida el tiempo ya sea en horas, minutos o segundos, luego indicar en qué tipo de tiempo desea transformar y luego presentar el resultado.
#valor <- as.numeric(readline("Ingresa la cantidad de tiempo: "))
## Seleccionar unidad de origen
#cat("\n UNIDAD DE ORIGEN \n")
#cat("1. Horas\n")
#cat("2. Minutos\n")
#cat("3. Segundos\n")
#origen <- as.integer(readline("Elige 1, 2 o 3: "))
## Seleccionar unidad de destino
#cat("\n CONVERTIR A \n")
#cat("1. Horas\n")
#cat("2. Minutos\n")
#cat("3. Segundos\n")
#destino <- as.integer(readline("Elige 1, 2 o 3: "))
## Primero convertir todo a segundos (más fácil)
#if (origen == 1) { # Horas a segundos
# segundos <- valor * 3600
#} else
# if (origen == 2) { # Minutos a segundos
# segundos <- valor * 60
#} else
# if (origen == 3) { # Segundos a segundos
# segundos <- valor
#} else {
# stop("Opción de origen no válida")
#}
## Luego convertir de segundos a la unidad deseada
#if (destino == 1) { # Segundos a horas
# resultado <- segundos / 3600
# unidad_destino <- "horas"
#} else
# if (destino == 2) { # Segundos a minutos
# resultado <- segundos / 60
# unidad_destino <- "minutos"
#} else
# if (destino == 3) { # Segundos a segundos
# resultado <- segundos
# unidad_destino <- "segundos"
#} else {
# stop("Opción de destino no válida")
#}
## Mostrar el resultado
#cat("\n", valor, "equivalen a", round(resultado, 4), unidad_destino, "\n")
EJERCICIO 7:
Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.
#entrada <- readline("Ingresa varios números separados por espacios: ")
#numeros <- as.numeric(strsplit(entrada, " ")[[1]])
#numeros_ordenados <- sort(numeros)
#cat("Números ordenados: ")
#cat(numeros_ordenados)
EJERCICIO 8:
Escribir un programa que calcule el factorial de un número que ha sido digitado por el usuario.
#num_factorial <- function() {
# n <- as.numeric(readline("Numero: "))
# cat("factorial:", factorial(n), "\n")
#}
#num_factorial()
EJERCICIO 9:
Escribir un programa que pida un número e indique si el número es primo o no.
#n_primo <- function() {
# n <- as.integer(readline("Numero: "))
# if (n < 2){
# cat(n, "no es primo\n")
# }else
# if (n == 2){
# cat(n, "es primo\n")
# }else{
# limite <- floor(sqrt(n))
# if (limite >= 2 && any(n %% 2:limite == 0)) {
# cat(n, "no es primo\n")
# }else{
# cat(n, "es primo\n")
# }
# }
#}
#n_primo()
EJERCICIO 10:
Escribir un programa que pida un número e indique si el número es par o impar.
#par_impar <- function() {
# n <- as.numeric(readline("Numero: "))
# if (n %% 2 == 0){
# cat(n, "es par\n")
# }else
# cat(n, "es impar\n")
#}
#par_impar()
A lo largo del desarrollo de los diez ejercicios planteados, se implemento en lenguaje R un conjunto de programas que abarcan desde conversiones de unidades, hasta cálculos matemáticos y situaciones prácticas del mundo real como el cálculo de paga laboral e índice de masa corporal.
La resolución de estos ejercicios ha permitido aplicar de manera
práctica los conceptos básicos de programación en R, incluyendo la
entrada y salida de datos mediante readline() y
cat(), el uso de estructuras condicionales
(if, else if, else), la
implementación de bucles (while, for,
repeat), la manipulación de vectores y listas, así como la
creación de funciones personalizadas.