UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

AUTORES:

*JOHANNA AGUILAR

*JOSE BAÑO

*SAYRI MENDOZA

*JAIME PAREDES

FECHA DE PUBLICACIÓN: 2023-07-30

TALLER N#12

Ejercicios Acerca de Ciclos Repetitivos

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(){
  num4<-as.integer(dlgInput(message="POR FAVOR, INGRESE UN NÚMERO ")$res)
  if(sum(num4/1:num4==num4%/%1:num4)==2){
    (m <- paste0("EL NUMERO: ", num4 , " ES PRIMO "))
  }else{(m <- paste0("EL NÚMERO: ", num4, " NO ES PRIMO"))}
}
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.

ahorros<-function(a)
{
  print("DEPOSITO ANUAL")
  MESES<-c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO",
           "SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE")
  for(i in MESES)
    DEPOSITOS_M<- as.numeric(dlgInput(message="POR FAVOR, INGRESE LA CANTIDAD A AHORRAR:")$res)
  DATOS<-data.frame(MESES,DEPOSITOS_M)
  print(DATOS)
  cat("TOTAL DEL DEPOSITO ANUAL : ",sum(DEPOSITOS_M))
}
depositosA<-ahorros(a)

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.

horas<- 0
total_horas<- 0
dias<- c("LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO")
for(i in dias)
{
  horas<- as.numeric(readline("¿CUANTAS HORAS TRABAJO?"))
  total_horas<- total_horas+ horas
  sueldo<- total_horas*2.50
  print(paste("EL", i, "TRABAJO", horas, "HORAS"))
}
int(paste("EL SUELDO QUE RECIBIRA ES DE: $", sueldo))

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 ytienen la misma velocidad. Realizar un programa para determinar en qué kilómetro de esa carretera se encontrarán.

p1<- 70
p2<- 150
km<- 0
while(p1 == p2)
{
  persona1<- p1+1
  persona2<- p2-1
  km<- persona2-persona1
}
print(paste("SE ENCONTRARON EN EL KILOMETRO", km))

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.

pago<-  10
total<- 0
for(i in 1:20)
{
  pago<- pago*2
  total<- total + pago
  print(paste("EN EL MES", i, "PAGARAS: $", pago))
}
## [1] "EN EL MES 1 PAGARAS: $ 20"
## [1] "EN EL MES 2 PAGARAS: $ 40"
## [1] "EN EL MES 3 PAGARAS: $ 80"
## [1] "EN EL MES 4 PAGARAS: $ 160"
## [1] "EN EL MES 5 PAGARAS: $ 320"
## [1] "EN EL MES 6 PAGARAS: $ 640"
## [1] "EN EL MES 7 PAGARAS: $ 1280"
## [1] "EN EL MES 8 PAGARAS: $ 2560"
## [1] "EN EL MES 9 PAGARAS: $ 5120"
## [1] "EN EL MES 10 PAGARAS: $ 10240"
## [1] "EN EL MES 11 PAGARAS: $ 20480"
## [1] "EN EL MES 12 PAGARAS: $ 40960"
## [1] "EN EL MES 13 PAGARAS: $ 81920"
## [1] "EN EL MES 14 PAGARAS: $ 163840"
## [1] "EN EL MES 15 PAGARAS: $ 327680"
## [1] "EN EL MES 16 PAGARAS: $ 655360"
## [1] "EN EL MES 17 PAGARAS: $ 1310720"
## [1] "EN EL MES 18 PAGARAS: $ 2621440"
## [1] "EN EL MES 19 PAGARAS: $ 5242880"
## [1] "EN EL MES 20 PAGARAS: $ 10485760"
print(paste("EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $", total))
## [1] "EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $ 20971500"

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.

empresa<-function(num){
  empleados<- as.numeric(dlgInput(message="CUANTOS TRABAJADORES TIENE?")$res)
  gasto_empresa<- 0
  for(num in 1:empleados){
    horas<-as.numeric(dlgInput(message="CUANTAS HORAS TRABAJO A LA SEMANA?")$res)
    gasto_empresa<- gasto_empresa + horas*2.50
    sueldo<- horas*2.50
    print(paste("EL EMPLEADO", num, "GANA SEMANAL: $", sueldo))
  }
  print(paste("LA EMPRESA PAGO POR LOS", empleados, "EMPLEADOS", gasto_empresa))
}
empresa()

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.

empresa2<-function(num){
  trab<- as.numeric(dlgInput(message="CUANTOS EMPLEADOS TIENE?")$res)
  pago<- 0
  for(num in 1:trab){
    dias<- as.numeric(dlgInput(message="CUANTOS DIAS TRABAJO EN LA SEMANA?")$res)
    horas<- as.numeric(dlgInput(message="CUANTOS HORAS TRABAJO EN ESOS DIAS?")$res)
    sueldo<- (dias*horas)*2.50
    pago<- pago+ (dias*horas)+ sueldo
    print(paste("EL EMPLEADO", num, "GANA SEMANAL: $", sueldo))
  }
  print(paste("LA EMPRESA PAGA SEMANALMENTE POR LOS", trab, "EMPLEADOS: $", pago))
}
empresa2()

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(seg<-as.numeric(dlgInput(message="INGRESE UN NUMERO:")$res))

EJERCICIO 9

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

menu<-function(){ 
  opc1<-as.numeric(dlgInput(message="MENU PRINCIPAL 
               
                   OPCION 1 
                   OPCION 2 
                   OPCION 3 
                   OPCION 4 
                   SALIR 5
               
               ***SELECCIONE UNA OPCION:***")$res)
  if(opc1==1){
    opc1 <- dlgInput(message="OPCION 1:         
               1.- REGRESAR AL MENU
               2.- SALIR
               
               ***SELECCIONE UNA OPCION:***")$res  
    opc1<-as.character(opc1)
    if(opc1==1){menu()}
    
  }else if(opc1==2){
    
    opc1 <- dlgInput(message="OPCION 2:         
               1.- REGRESAR AL MENU
               2.- SALIR
               
               ***SELECCIONE UNA OPCION:***")$res
    opc1<-as.numeric(opc1)
    if(opc1==1){menu()}
    
  }else if(opc1==3){
    opc1 <- as.numeric(dlgInput(message="OPCION 3:
               1.- REGRESAR AL MENU
               2.- SALIR
               
               ***SELECCIONE UNA OPCION:***")$res)
    if(opc1==1){menu()}
    
  }else if(opc1==4){
    opc1 <- as.numeric(dlgInput(message="OPCION 4: 
               1.- REGRESAR AL MENU
               2.- SALIR
               ***SELECCIONE UNA OPCION:***")$res)
    if(opc1==1){menu()}
    
  }
}
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