UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONOMICAS

CARRERA DE ESTADÍSTICA

Autores:

Colaborador:


EJERCICIOS ACERCA DE CICLOS REPETITIVOS

EJERICICIO N°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.

PROCEDIMIENTO

is.prime <- 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")
  }
}
is.prime(5)
## [1] " Es número primo"

EJERICICIO N°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.

PROCEDIMIENTO

ahorros<-function(a){
  print("DEPOSITO ANUAL")
  MESES<-c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNEO",
           
           "JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE")
  DEPOSITOS_M<-round(runif(12,min = 250,max = 500),2)
  DATOS<-data.frame(MESES,DEPOSITOS_M)
  print(DATOS)
  cat("TOTAL DE DEPOSITO ANUAL : ",sum(DEPOSITOS_M))
}
depositosA<-ahorros(a)
## [1] "DEPOSITO ANUAL"
##         MESES DEPOSITOS_M
## 1       ENERO      320.05
## 2     FEBRERO      490.96
## 3       MARZO      325.50
## 4       ABRIL      479.13
## 5        MAYO      491.34
## 6       JUNEO      288.59
## 7       JULIO      385.13
## 8      AGOSTO      356.15
## 9  SEPTIEMBRE      496.52
## 10    OCTUBRE      414.59
## 11  NOVIEMBRE      475.26
## 12  DICIEMBRE      348.72
## TOTAL DE DEPOSITO ANUAL :  4871.94

EJERICICIO N°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.

PROCEDIMIENTO

horas<-function(h){
  DIAS<-c("lunes","martes","miercoles","jueves","viernes","sabado")
  print("Horas durante la semana")
  HORAS<-round(runif(6,min = 8,max = 9),0)
  print("Sueldos por hora")
  SUELDO<-round(runif(6,min = 20,max = 25),2)
  REGISTRO<-data.frame(DIAS,HORAS,SUELDO)
  print(REGISTRO)
  
  cat("TOTAL DE SUELDO POR EL TRABAJO EN LA SEMANA : ",sum(SUELDO))
  
}
total<-horas(h)
## [1] "Horas durante la semana"
## [1] "Sueldos por hora"
##        DIAS HORAS SUELDO
## 1     lunes     9  23.73
## 2    martes     8  24.45
## 3 miercoles     8  20.97
## 4    jueves     8  24.53
## 5   viernes     9  22.75
## 6    sabado     9  22.69
## TOTAL DE SUELDO POR EL TRABAJO EN LA SEMANA :  139.12

EJERICICIO N°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.

PROCEDIMIENTO

pa<-70
pb<- 150
d<- pb - pa
while (d>0){
  pa<- pa + 1
  pb<- pb -1
  d<- pb - pa
}
paste("El punto de encuentro es en el kilómetro:", pa)
## [1] "El punto de encuentro es en el kilómetro: 110"

EJERICICIO N°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..Funciones:

PROCEDIMIENTO

p<- 10
t<- 0
for(i in 1:20){
  p<- p*2
  t<- t + p
  paste("EN EL MES", i, "PAGARAS: $", p)
}
paste("EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $", t)
## [1] "EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $ 20971500"

EJERICICIO N°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.

PROCEDIMIENTO

N <- readline(prompt="Ingrese el número de trabajadores: ")
Precio_hora<-10

Sueldo<-function(horas){
  return(horas*Precio_hora)
}

Sum_sueldo<-0 

for (i in 1:N) {
  print(paste("Empleado ",i))
  horas <- readline(prompt="Ingrese las horas trabajadas: ")
  horas  <- as.integer(horas)
  print(paste("Sueldo semanal de empleado ",i," :$",Sueldo(horas)))
  Sum_sueldo<-Sum_sueldo+Sueldo(horas)
}

print(paste("La empresa pago: $",Sum_sueldo))

EJERICICIO N°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.

PROCEDIMIENTO

N <- readline(prompt="Ingrese el número de trabajadores: ")
Precio_hora<-10

Sueldo<-function(dias,horas){
  return(horas*Precio_hora)
}

Sum_sueldo<-0 

for (i in 1:N) {
  print(paste("Empleado ",i))
  dias <- readline(prompt="Ingrese los dias trabajados: ")
  horas <- readline(prompt="Ingrese las horas trabajadas: ")
  horas  <- as.integer(horas)
  print(paste("Sueldo semanal de empleado ",i," :$",Sueldo(dias,horas)))
  Sum_sueldo<-Sum_sueldo+Sueldo(dias,horas)
}

print(paste("La empresa pago: $",Sum_sueldo))

EJERICICIO N°8

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

PROCEDIMIENTO

print("CRONÓMETRO")
i<-0
j<-0
k<-0
for (i in 0:23) {
  for (j in 0:59) {
    for (k in 0:59) {
      Sys.sleep(1)
      print(paste(i,":",j,":",k))
    }
  }
}

EJERICICIO N°9

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

PROCEDIMIENTO

Opcion<-""

while(Opcion!="Salir"){
  Opcion <- readline(prompt="Elija entre estas opciones:\n-Opc1\n-Opc2\n-Opc3\n-Salir: ")
  if (Opcion=="Opc1"){
    print("Escogió opción 1")
  }else{
    if (Opcion=="Opc2"){
      print("Escogió opción 2")
    }else{
      if (Opcion=="Opc3"){
        print("Escogió opción 3")
      }else{
        if (Opcion=="Salir"){
          print("Salió del menú")
          break
        }else{
          print("Opción incorrecta")
        }
      }
    }
  }
}

EJERICICIO N°10

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

PROCEDIMIENTO

N <- readline(prompt="Ingrese la cantidad de números primos: ")
N  <- as.integer(N)
i<-0
j<-0
k<-0
l<-0
m<-0
while(j < N) {
  k<-k+1
  m<-0
  for (i in 1:k) {
    l<-k%%i
    if (l==0){
      m<-m+1
    }
  }
  if (m==2){
    print(paste(k))
    j<-j+1
  }
}