Introducción

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.

Objetivos

Desarrollo

Ejercicio 1

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

Ejercicio 2

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

Ejercicio 3

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

Ejercicio 4

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

Ejercicio 5

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

Ejercicio 6

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

Ejercicio 7

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:

Ejercicio 8

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

Ejercicio 9

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

Ejercicio 10

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

Conclusiones

Recomendaciones

Bibliografía