Tiene como finalidad desarrollar diferentes ejercicios básicos de programación utilizando el lenguaje R. A través de estructuras secuenciales, condicionales y repetitivas. Se utiliza RMarkdown o Quarto para integrar en un solo documento tanto la explicación teórica como el código fuente.
R es un lenguaje de programación orientado al análisis estadístico, cálculo matemático y desarrollo de algoritmos.
Las estructuras condicionales permiten ejecutar diferentes acciones dependiendo de si una condición es verdadera o falsa.
if (x > 0) {
print("Número positivo")
}
Las estructuras repetitivas permiten ejecutar un bloque de código varias veces.
for(i in 1:5){
print(i)
}
Las variables almacenan datos que pueden ser utilizados posteriormente dentro de un programa.
nombre <- "Sebastián"
edad <- 20
Desarrollar programas en lenguaje R utilizando estructuras secuenciales, condicionales y repetitivas para resolver problemas básicos de programación.
Para el desarrollo del presente trabajo se utilizó el lenguaje de programación R junto con herramientas como RMarkdown o Quarto, permitiendo integrar en un solo documento el código fuente, los resultados obtenidos y la explicación teórica correspondiente. La metodología aplicada consistió en las siguientes etapas:
Análisis de los problemas planteados
Se identificaron los datos de entrada, procesos y resultados esperados en cada ejercicio propuesto.
Diseño de algoritmos Para cada problema se elaboró una solución lógica utilizando estructuras secuenciales, condicionales y repetitivas, de acuerdo con los requerimientos establecidos.
Codificación en lenguaje R Los algoritmos diseñados fueron implementados mediante programas en R, empleando variables, operadores matemáticos y estructuras de control.
Pruebas y validación Se ejecutaron los programas verificando que los resultados obtenidos fueran correctos y coherentes con las fórmulas matemáticas utilizadas.
Documentación de resultados Finalmente, se organizaron los ejercicios, códigos y salidas en un informe académico estructurado, facilitando la interpretación y comprensión del trabajo realizado.
Escribir un programa que solicite una temperatura y determine si se encuentra en grados Fahrenheit o Celsius, para posteriormente convertirla a la otra escala y mostrar el resultado en pantalla.
cat("CONVERSOR DE TEMPERATURA\n")
## CONVERSOR DE TEMPERATURA
valor <- as.numeric(readline("Ingrese la temperatura: "))
## Ingrese la temperatura:
tipo <- readline("Ingrese C para Celsius o F para Fahrenheit: ")
## Ingrese C para Celsius o F para Fahrenheit:
if(tipo == "C" || tipo == "c"){
fahrenheit <- (valor * 9/5) + 32
cat("La temperatura en Fahrenheit es:", round(fahrenheit, 2), "°F\n")
} else if(tipo == "F" || tipo == "f"){
celsius <- (valor - 32) * 5/9
cat("La temperatura en Celsius es:", round(celsius, 2), "°C\n")
} else {
cat("Opción inválida\n")
}
## Opción inválida
Escribir un programa que solicite al usuario el número de horas trabajadas y el costo por hora. Además, debe preguntar si existen horas extras con un valor diferente y calcular la paga total correspondiente.
cat("CÁLCULO DE PAGO\n")
## CÁLCULO DE PAGO
horas <- as.numeric(readline("Ingrese horas trabajadas: "))
## Ingrese horas trabajadas:
costo <- as.numeric(readline("Ingrese costo por hora: "))
## Ingrese costo por hora:
pago_normal <- horas * costo
extras <- as.numeric(readline("Ingrese número de horas extras: "))
## Ingrese número de horas extras:
valor_extra <- as.numeric(readline("Ingrese valor por hora extra: "))
## Ingrese valor por hora extra:
pago_extras <- extras * valor_extra
pago_total <- pago_normal + pago_extras
cat("La paga total es:", round(pago_total, 2), "\n")
## La paga total es: NA
Escribir un programa que lea un número entero positivo n ingresado por el usuario y muestre en pantalla la suma de todos los enteros desde 1 hasta n.
La fórmula utilizada es:
S = n(n+1)/2
cat("SUMA DE LOS N PRIMEROS ENTEROS\n")
## SUMA DE LOS N PRIMEROS ENTEROS
n <- 10
if(n > 0){
suma <- (n * (n + 1)) / 2
cat("La suma desde 1 hasta", n, "es:", suma, "\n")
} else {
cat("Debe ingresar un número positivo\n")
}
## La suma desde 1 hasta 10 es: 55
Escribir un programa que solicite el peso del usuario en kilogramos y la estatura en metros, para calcular el Índice de Masa Corporal (IMC) y mostrar el resultado redondeado con dos decimales.
La fórmula utilizada es:
IMC = peso / estatura^2
cat("CÁLCULO DEL IMC\n")
## CÁLCULO DEL 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), "\n")
## Tu índice de masa corporal es NA
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.
cat("CÁLCULO DE INVERSIÓN\n")
## CÁLCULO DE INVERSIÓN
inversion <- 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 (%):
anios <- as.numeric(readline("Ingrese el número de años: "))
## Ingrese el número de años:
capital <- inversion * (1 + interes/100)^anios
cat("El capital obtenido es:", round(capital, 2), "\n")
## El capital obtenido es: NA
Escribir 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.
cat("CONVERSOR DE TIEMPO\n")
## CONVERSOR DE TIEMPO
valor <- as.numeric(readline("Ingrese el valor del tiempo: "))
## Ingrese el valor del tiempo:
origen <- tolower(trimws(readline("Ingrese la unidad original (h/m/s): ")))
## Ingrese la unidad original (h/m/s):
destino <- tolower(trimws(readline("Ingrese la unidad a convertir (h/m/s): ")))
## Ingrese la unidad a convertir (h/m/s):
if(origen == "h" && destino == "m"){
resultado <- valor * 60
cat("Resultado:", resultado, "minutos\n")
} else if(origen == "h" && destino == "s"){
resultado <- valor * 3600
cat("Resultado:", resultado, "segundos\n")
} else if(origen == "m" && destino == "h"){
resultado <- valor / 60
cat("Resultado:", resultado, "horas\n")
} else if(origen == "m" && destino == "s"){
resultado <- valor * 60
cat("Resultado:", resultado, "segundos\n")
} else if(origen == "s" && destino == "m"){
resultado <- valor / 60
cat("Resultado:", resultado, "minutos\n")
} else if(origen == "s" && destino == "h"){
resultado <- valor / 3600
cat("Resultado:", resultado, "horas\n")
} else if(origen == destino){
cat("Las unidades son iguales\n")
} else {
cat("Conversión inválida\n")
}
## Las unidades son iguales
Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.
cat("ORDENAR NÚMEROS\n")
## ORDENAR NÚMEROS
## ORDENAR NÚMEROS
numeros <- c(8, 3, 10, 1, 5)
cat("Números originales:\n")
## Números originales:
## Números originales:
print(numeros)
## [1] 8 3 10 1 5
## 8 3 10 1 5
ordenados <- sort(numeros)
cat("Números ordenados:\n")
## Números ordenados:
## Números ordenados:
print(ordenados)
## [1] 1 3 5 8 10
Escribir un programa que calcule el factorial de un número que ha sido digitado por el usuario. Código en R
cat("CÁLCULO DE FACTORIAL\n")
## CÁLCULO DE FACTORIAL
num <- 5
factorial <- 1
if(num > 0){
for(i in 1:num){
factorial <- factorial * i
}
cat("El factorial de", num, "es:", factorial, "\n")
} else {
cat("Debe ingresar un número positivo\n")
}
## El factorial de 5 es: 120
Escribir un programa que pida un número e indique si el número es primo o no.
cat("NÚMERO PRIMO\n")
## NÚMERO PRIMO
## NÚMERO PRIMO
num <- as.numeric(readline("Ingrese un número entero: "))
## Ingrese un número entero:
## Ingrese un número entero:
num <- 7
primo <- TRUE
if(num <= 1){
primo <- FALSE
} else {
for(i in 2:(num-1)){
if(num %% i == 0){
primo <- FALSE
}
}
}
if(primo){
cat("El número es primo\n")
} else {
cat("El número no es primo\n")
}
## El número es primo
Escribir un programa que pida un número e indique si el número es par o impar.
cat("NUMERO PAR O IMPAR\n")
## NUMERO PAR O IMPAR
num <- 8
if(num %% 2 == 0){
cat("El número es par\n")
} else {
cat("El número es impar\n")
}
## El número es par
El desarrollo de los ejercicios permitió fortalecer los conocimientos básicos de programación en lenguaje R mediante la aplicación de estructuras condicionales y repetitivas.
Se comprobó la utilidad de R para resolver problemas matemáticos y de conversión de manera rápida y eficiente.
La implementación de algoritmos facilitó la comprensión lógica de los procesos necesarios para obtener resultados correctos en distintos tipos de ejercicios.
El uso de RMarkdown o Quarto permitió integrar teoría, código y resultados en un mismo documento, mejorando la presentación y organización del informe.
La práctica realizada contribuyó al desarrollo de habilidades en programación orientadas al análisis y resolución de problemas computacionales.
Utilizar estructuras condicionales y repetitivas en diferentes tipos de programas para mejorar la comprensión de algoritmos.
Implementar validaciones de datos ingresados por el usuario para evitar errores en la ejecución de los programas.
Emplear herramientas como RMarkdown o Quarto para elaborar informes más organizados y profesionales integrando código y resultados.
Investigar nuevas funciones y librerías de R que permitan optimizar procesos matemáticos, estadísticos y computacionales.
Realizar pruebas constantes a los programas desarrollados con el fin de verificar la exactitud de los resultados obtenidos.
1.- Jordanbs. (2022). Introducción a R. RPubs. https://rpubs.com/Jordanbs/982558
2.- Universidad Nacional de Educación a Distancia. (s.f.). Conceptos básicos de programación. UNED. https://portal.uned.es/Publicaciones/htdocs/pdf.jsp?articulo=0102086CT01L01
3.- R Coder. (s.f.). Tipos de datos en R. https://r-coder.com/tipos-datos-r/