UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD CIENCIAS ECONÓMICAS

CARRERA DE ESTADÍSTICA

 

INTEGRANTES:

TALLER 12: Ejercicios Acerca de Ciclos Repetitivos

EJERCICIO 1

num_primo<- function(num) {
   if (num == 2) {
      TRUE
     j<-print(" Es número primo")
   } else if (any(num %% 2:(num-1) == 0)) {
      FALSE
     j<-print(" No es número primo")
   } else { 
      TRUE
     j<-print(" Es número primo")
   }
}

num_primo(6)
## [1] " No es 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_persona <- function() {
  cantidad <- numeric(12) 
  for (mes in 1:12) {
  }
  cat("\nLas cantidades a ahorrar son:", cantidad)
  sumaa <- sum(cantidad)
  cat("\nEl total a ahorrar en un año es de:", sumaa, "dólares")
  
  # Ahorro acumulado mes a mes:
  ahorro_a <- numeric(12)
  total_ahorro <- 0
  for (mes in 1:12) {
    total_ahorro <- total_ahorro + cantidad[mes]
    ahorro_a[mes] <- total_ahorro
    cat("Mes", mes, "Ahorro acumulado:", total_ahorro, "\n")
  }
}
ahorro_persona ()
## 
## Las cantidades a ahorrar son: 0 0 0 0 0 0 0 0 0 0 0 0
## El total a ahorrar en un año es de: 0 dólaresMes 1 Ahorro acumulado: 0 
## Mes 2 Ahorro acumulado: 0 
## Mes 3 Ahorro acumulado: 0 
## Mes 4 Ahorro acumulado: 0 
## Mes 5 Ahorro acumulado: 0 
## Mes 6 Ahorro acumulado: 0 
## Mes 7 Ahorro acumulado: 0 
## Mes 8 Ahorro acumulado: 0 
## Mes 9 Ahorro acumulado: 0 
## Mes 10 Ahorro acumulado: 0 
## Mes 11 Ahorro acumulado: 0 
## Mes 12 Ahorro acumulado: 0

Ejercicio 3

horas<- 0
total_horas<- 0 

dias<- c("Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sábado")
salario_sem<-function(num){
  for(num in dias){
    horas<- as.numeric(readline ("Ingrese las horas que trabajo por dia: "))
    total_horas<- total_horas+ horas
    sueldo<- total_horas*5.65
    print(paste("El", num, "trabajo ", horas, " horas "))
  }
  cat("Su sueldo a recibir es de: $", sueldo)
}
#Llamanos a la función
salario_sem()
## Ingrese las horas que trabajo por dia: 
## [1] "El Lunes trabajo  NA  horas "
## Ingrese las horas que trabajo por dia: 
## [1] "El Martes trabajo  NA  horas "
## Ingrese las horas que trabajo por dia: 
## [1] "El Miercoles trabajo  NA  horas "
## Ingrese las horas que trabajo por dia: 
## [1] "El Jueves trabajo  NA  horas "
## Ingrese las horas que trabajo por dia: 
## [1] "El Viernes trabajo  NA  horas "
## Ingrese las horas que trabajo por dia: 
## [1] "El Sábado trabajo  NA  horas "
## Su sueldo a recibir es de: $ NA

Ejercicio 4

destino <- function() {
  auto1 <- 70
  auto2 <- 150
  kilometro <- auto1 + (auto2 - auto1)/2
  cat("El punto de encuentro de los autis es en el kilómetro:", kilometro )
}
#Llamar función
destino()
## El punto de encuentro de los autis es 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.

mensualidad_pro  <- function(pago, acumulador) {
  acumulador <- 5
  for (pago in 1:20) {
    acumulador<- (acumulador * 2)
    cat("El pago del mes", pago, "es:", acumulador, "\n")
  }
}
#Llamar función
mensualidad_pro()
## 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

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_semanal <- function(num_emplea) {
  total_empresa <- 0
  for (i in 1:num_emplea) {
    total_horas <- 0
    dias <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado")
    cat("Empleado", i, ":\n")
    for (num in dias) {
      horas <- as.numeric(readline(paste("Ingrese las horas que trabajó el", num, ": ")))
      total_horas <- total_horas + horas
    }
    sueldo <- total_horas * 5.65
    total_empresa <- total_empresa + sueldo
    cat("El sueldo semanal del empleado", i, "es de: $", sueldo, "\n\n")
  }
  cat("El total pagado por la empresa a los", num_emplea, "empleados es de: $", total_empresa, "\n")
}
# Llamar función
sueldo_semanal(2)
## Empleado 1 :
## Ingrese las horas que trabajó el Lunes : 
## Ingrese las horas que trabajó el Martes : 
## Ingrese las horas que trabajó el Miércoles : 
## Ingrese las horas que trabajó el Jueves : 
## Ingrese las horas que trabajó el Viernes : 
## Ingrese las horas que trabajó el Sábado : 
## El sueldo semanal del empleado 1 es de: $ NA 
## 
## Empleado 2 :
## Ingrese las horas que trabajó el Lunes : 
## Ingrese las horas que trabajó el Martes : 
## Ingrese las horas que trabajó el Miércoles : 
## Ingrese las horas que trabajó el Jueves : 
## Ingrese las horas que trabajó el Viernes : 
## Ingrese las horas que trabajó el Sábado : 
## El sueldo semanal del empleado 2 es de: $ NA 
## 
## El total pagado por la empresa a los 2 empleados es de: $ 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.

trab<- cat("Número de emplados" ) ; trab <- 5
## Número de emplados
pago<- 0
for(i in 1:trab){
  dias<- cat("~Cuantos días trabaja?"  ); dias <- 7
  horas<- cat("Cuantas horas trabaja?"  ); horas <-8
  sueldo<- (dias*horas)*5.50
  pago<- pago+ (dias*horas)+ sueldo
  print(paste( i, "su sueldo es: $", sueldo))
}
## ~Cuantos días trabaja?Cuantas horas trabaja?[1] "1 su sueldo es: $ 308"
## ~Cuantos días trabaja?Cuantas horas trabaja?[1] "2 su sueldo es: $ 308"
## ~Cuantos días trabaja?Cuantas horas trabaja?[1] "3 su sueldo es: $ 308"
## ~Cuantos días trabaja?Cuantas horas trabaja?[1] "4 su sueldo es: $ 308"
## ~Cuantos días trabaja?Cuantas horas trabaja?[1] "5 su sueldo es: $ 308"
print(paste("La empresa paga mensual por los", trab, "trabajadores: $ " , pago))
## [1] "La empresa paga mensual por los 5 trabajadores: $  1820"

Ejercicio 8

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

cronometro<- function(seg)
{
  print(seg)
 while(seg!=0)
  {
    Sys.sleep(1)
    seg<- seg-1
    print(seg)
 }
}
cronometro(10)
## [1] 10
## [1] 9
## [1] 8
## [1] 7
## [1] 6
## [1] 5
## [1] 4
## [1] 3
## [1] 2
## [1] 1
## [1] 0

Ejercicio 9

#menu <- function() {
#  opcion <- 0
#  while (opcion != 4) {
#    cat("Menú:\n")
#   cat("1. Opción 1\n")
#    cat("2. Opción 2\n")
#    cat("3. Opción 3\n")
#    cat("4. Salir\n")
#    opcion <- as.numeric(readline("Seleccione una opción: "))
#    if (is.na(opcion)) {
#      cat("Por favor, ingrese un número válido.\n")
#    } else {
#      switch(opcion,
#             "1" = cat("Seleccionó la Opción 1"),
#             "2" = cat("Seleccionó la Opción 2"),
#             "3" = cat("Seleccionó la Opción 3"),
#             "4" = cat("Saliendo del programa."),
#             cat("Opción no válida. Inténtelo de nuevo.")
#      )
#    }
#  }
#}
# Llamar función
#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.

num_primo<- 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
}
num_primo(11)
## [1]  2  3  5  7 11