Ejercicio 1

Escribe un programa que diga si un número introducido por teclado es o no primo. Un número primo es aquel que sólo es divisible entre él mismo y la unidad. Nota: Es suficiente probar hasta la raíz cuadrada del número para ver si es divisible por algún otro número.

Primo<-function(n){
  contador<-0
  for (i in 0:n){
    if(n%%(i+1)!=0){
      next
    }else{
      contador<- contador + 1
    }
  }
  if(contador ==2){print(paste(n,"Es un nùmero primo"))
  }else{
    print(paste(n,"No es un nùmero primo"))
  }}
Primo(13)
## [1] "13 Es un nùmero primo"

Ejercicio 2

Realizar un algoritmo para determinar cuánto ahorrará una persona en un año, si al final de cada mes deposita cantidades variables de dinero; además, se quiere saber cuánto lleva ahorrado cada mes.

ahorro_total <- 0
for (mes in 1:12) {
  ahorro_mes <- as.numeric(readline(prompt = paste("Ingresa el ahorro del mes", mes, ": ")))
  ahorro_total <- ahorro_total + ahorro_mes
  print(paste("El ahorro en el mes", mes, "es:", ahorro_total))
}
## Ingresa el ahorro del mes 1 : 
## [1] "El ahorro en el mes 1 es: NA"
## Ingresa el ahorro del mes 2 : 
## [1] "El ahorro en el mes 2 es: NA"
## Ingresa el ahorro del mes 3 : 
## [1] "El ahorro en el mes 3 es: NA"
## Ingresa el ahorro del mes 4 : 
## [1] "El ahorro en el mes 4 es: NA"
## Ingresa el ahorro del mes 5 : 
## [1] "El ahorro en el mes 5 es: NA"
## Ingresa el ahorro del mes 6 : 
## [1] "El ahorro en el mes 6 es: NA"
## Ingresa el ahorro del mes 7 : 
## [1] "El ahorro en el mes 7 es: NA"
## Ingresa el ahorro del mes 8 : 
## [1] "El ahorro en el mes 8 es: NA"
## Ingresa el ahorro del mes 9 : 
## [1] "El ahorro en el mes 9 es: NA"
## Ingresa el ahorro del mes 10 : 
## [1] "El ahorro en el mes 10 es: NA"
## Ingresa el ahorro del mes 11 : 
## [1] "El ahorro en el mes 11 es: NA"
## Ingresa el ahorro del mes 12 : 
## [1] "El ahorro en el mes 12 es: NA"

Ejercicio 3

Una empresa tiene el registro de las horas que trabaja diariamente un empleado durante la semana (seis días) y requiere determinar el total de éstas, así como el sueldo que recibirá por las horas trabajadas.

total_horas <- 0
tarifa_hora <- 2.50
dias <- c("LUNES", "MARTES", "MIÉRCOLES", "JUEVES", "VIERNES", "SÁBADO")
sueldo <- 0

for (i in dias) {
  horas <- as.numeric(readline(paste("¿Cuántas horas trabajó el", i, "? ")))
  total_horas <- total_horas + horas
  print(paste("El", i, "trabajó", horas, "horas"))
}
## ¿Cuántas horas trabajó el LUNES ? 
## [1] "El LUNES trabajó NA horas"
## ¿Cuántas horas trabajó el MARTES ? 
## [1] "El MARTES trabajó NA horas"
## ¿Cuántas horas trabajó el MIÉRCOLES ? 
## [1] "El MIÉRCOLES trabajó NA horas"
## ¿Cuántas horas trabajó el JUEVES ? 
## [1] "El JUEVES trabajó NA horas"
## ¿Cuántas horas trabajó el VIERNES ? 
## [1] "El VIERNES trabajó NA horas"
## ¿Cuántas horas trabajó el SÁBADO ? 
## [1] "El SÁBADO trabajó NA horas"
sueldo <- total_horas * tarifa_hora
cat("El sueldo que recibirá es de: $", sueldo, "\n")
## El sueldo que recibirá es de: $ NA

Ejercicio 4

Una persona se encuentra en el kilómetro 70 de una carretera, otra se encuentra en el km 150, los coches tienen sentido opuesto y tienen la misma velocidad. Realizar un programa para determinar en qué kilómetro de esa carretera se encontrarán.

kmp1 <- 70
kmp2 <- 150

km_encuentro <- kmp1 + (kmp2 - kmp1) / 2

cat("El encuentro se producirá en el kilómetro", km_encuentro)
## El encuentro se producirá en el kilómetro 110

Ejercicio 5

Una persona adquirió un producto para pagar en 20 meses. El primer mes pagó 10 €, el segundo 20 €, el tercero 40 € y así sucesivamente. Realizar un algoritmo para determinar cuánto debe pagar mensualmente y el total de lo que pagó después de los 20 meses.

pagos <- 10
total <- 0

for (mes in 1:20) {
  total <- total + pagos
  cat(paste("El pago del mes", mes, "es:", pagos, "\n"))
  pagos <- pagos * 2
}
## El pago del mes 1 es: 10 
## El pago del mes 2 es: 20 
## El pago del mes 3 es: 40 
## El pago del mes 4 es: 80 
## El pago del mes 5 es: 160 
## El pago del mes 6 es: 320 
## El pago del mes 7 es: 640 
## El pago del mes 8 es: 1280 
## El pago del mes 9 es: 2560 
## El pago del mes 10 es: 5120 
## El pago del mes 11 es: 10240 
## El pago del mes 12 es: 20480 
## El pago del mes 13 es: 40960 
## El pago del mes 14 es: 81920 
## El pago del mes 15 es: 163840 
## El pago del mes 16 es: 327680 
## El pago del mes 17 es: 655360 
## El pago del mes 18 es: 1310720 
## El pago del mes 19 es: 2621440 
## El pago del mes 20 es: 5242880
cat("El total pagado después de los 20 meses es:", total)
## El total pagado después de los 20 meses es: 10485750

Ejercicio 6

Una empresa les paga a sus empleados con base en las horas trabajadas en la semana. Realice un algoritmo para determinar el sueldo semanal de N trabajadores y, además, calcule cuánto pagó la empresa por los N empleados.

sueldo_total <- 0
N <- 3
tarifa_hora <- 4

for (i in 1:N) {
  horas_trabajadas <- as.numeric(readline(prompt = paste("Ingrese las horas trabajadas por el empleado", i, ": ")))
  sueldo_semanal <- horas_trabajadas * tarifa_hora 
  sueldo_total <- sueldo_total + sueldo_semanal
  cat(paste("El sueldo semanal del empleado", i, "es:", sueldo_semanal, "$\n"))
}
## Ingrese las horas trabajadas por el empleado 1 : 
## El sueldo semanal del empleado 1 es: NA $
## Ingrese las horas trabajadas por el empleado 2 : 
## El sueldo semanal del empleado 2 es: NA $
## Ingrese las horas trabajadas por el empleado 3 : 
## El sueldo semanal del empleado 3 es: NA $
cat(paste("El total pagado por la empresa por los", N, "empleados es:", sueldo_total, "$\n"))
## El total pagado por la empresa por los 3 empleados es: NA $

Ejercicio #7

Una empresa les paga a sus empleados con base en las horas trabajadas en la semana. Para esto, se registran los días que trabajó y las horas de cada día. Realice un algoritmo para determinar el sueldo semanal de N trabajadores y además calcule cuánto pagó la empresa por los N empleados.

Función para calcular el sueldo semanal de un trabajador

calcular_sueldo_semanal <- function(dias_trabajados, horas_por_dia, tarifa_hora) {
  horas_trabajadas <- sum(horas_por_dia)
  return(horas_trabajadas * tarifa_hora * dias_trabajados)
}

Se puede cambiar el valor de los numeros de trabajadores

num_trabajadores <- 4

Enceramos el valor que pagara la empresa

total_pagado_empresa <- 0

Creamos bucle para el sueldo de los trabajadores y el pago de horas por el dia

#for (i in 1:num_trabajadores) {
  #dias_trabajados <- as.numeric(readline(paste("Ingrese los días trabajados por el #empleado", i, ":")))
 # horas_por_dia <- numeric(length = dias_trabajados)
  
#Creamos el bucle para el numero de horas trabajadas 
  #for (j in 1:dias_trabajados) {
  #  horas_por_dia[j] <- as.numeric(readline(paste("Ingrese las horas trabajadas en #el día", j, "para el empleado", i, ":")))
 # }
  
  #tarifa_hora <- as.numeric(readline(paste("Ingrese la tarifa por hora para el empleado", i, ":")))
  
  #sueldo_semanal <- calcular_sueldo_semanal(dias_trabajados, horas_por_dia, tarifa_hora)
  
  #cat("El sueldo semanal del empleado", i, "es:", sueldo_semanal, "\n")
  #total_pagado_empresa <- total_pagado_empresa + sueldo_semanal
#}
# Cuanto pago la empresa ? 
#cat("La empresa pagó un total de", total_pagado_empresa, "€ a", num_trabajadores, "empleados.\n")

Ejercicio 8

Hacer un programa que muestre un cronometro, indicando las horas, minutos y segundos.

#cronometro <- function() {
  horas <- 0
  minutos <- 0
  segundos <- 0
  
  #while (TRUE) {
    # Mostrar el tiempo actual
   # cat(paste("Tiempo transcurrido:", horas, "horas,", minutos, "minutos,", segundos, "segundos\n"))
    
    # Aumentar los segundos
    #segundos <- segundos + 1
    
    # Ajustar los minutos y las horas si es necesario
    #if (segundos == 60) {
     # segundos <- 0
      #minutos <- minutos + 1
    #}
    #if (minutos == 60) {
     # minutos <- 0
      #horas <- horas + 1
  #  }
    
    # Esperar 1 segundo
   # Sys.sleep(1)
  #}
#}

# Llamar a la función del cronómetro
#cronometro()

Ejercicio 9

Realizar un ejemplo de menú, donde podemos escoger las distintas opciones hasta que seleccionamos la opción de “Salir”.

#menu <- function() {
  #opcion <- ""
  
  #while (opcion != "Salir") {
    #cat("Seleccione una opción:\n")
    #cat("1) Pastel\n")
    #cat("2) Cupcake \n")
    #cat("3) Pan \n")
    #cat("4) Salir\n")
    
    #opcion <- readline(prompt = "Opción: ")
    
    #switch(opcion,
           #"1" = {
             #cat("Seleccionaste la opción de pastel\n")
           #},
          # "2" = {
             #cat("Seleccionaste la opción del Cupcake\n")
          # },
          # "3" = {
           #  cat("Seleccionaste la opción del pan\n")
           #},
           #"4" = {
            # cat("Seleccionaste Salir. ¡Hasta luego!\n")
             #break
           #},
           #{
            # cat("Opción inválida. Por favor, selecciona una opción válida.\n")
           #}
    #)
    
   # cat("\n")
  #}
#}

# Llamar a la función del menú
#menu()

Ejercicio #10

Mostrar en pantalla los N primero número primos. Se pide por teclado la cantidad de números primos que queremos mostrar.

numpri<- function(num)
{
  primo<-numeric()
  no_primo<-numeric()
  for (i in 1:num)
  {
    if (sum(i/1:i==i%/%1:i)==2)
    {
      no_primo<-c(no_primo,i)
    } else
    {
      primo<-c(primo,i)
    }
  }
  primo
  no_primo
}
numpri(10)
## [1] 2 3 5 7