INGENIERÍA EN ESTADÍSTICA


En esta publicación podrás encontrar ejercicios sobre los
ciclos repetitivos en R
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.
library(svDialogs)
primo <- function(){
num4<-as.integer(dlgInput(message="INGRESE UN NUMERO ")$res)
if(sum(num4/1:num4==num4%/%1:num4)==2){
(m <- paste0("EL NUMERO: ", num4 , " ES PRIMO "))
}else{(m <- paste0("EL NUMERO: ", 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.
total<- 0
ahorro<- 0
mes<- c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO",
"AGOSTO","SEPTIEMBRE","OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
cuenta<-function(num){
for(num in mes){
ahorro<- as.numeric(dlgInput(message="INGRESE LA CANTIDAD A AHORRAR:")$res)
total<- total+ahorro
print(paste("EN", num, "LLEVAS: $",total, "DE AHORRO"))
}
print(paste("EN EL AÑO AHORRASTE: $",total))
}
cuenta()
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")
remuneracion<-function(num){
for(num in dias){
horas<- as.numeric(dlgInput(message= "¿CUANTAS HORAS TRABAJO?")$res)
total_horas<- total_horas+ horas
sueldo<- total_horas*4.50
print(paste("EL", num, "TRABAJO", horas, "HORAS"))
}
print(paste("EL SUELDO QUE RECIBIRA ES DE: $", sueldo))
}
remuneracion()
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.
p1<- 70
p2<- 150
km<-0
while(p1 == p2){
p1<- p1+1
p2<- p2-1
km<- p2-p1
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
total_a_pagar<-function(num){
for(num in 1:20){
pago<- pago*2
total<- total + pago
print(paste("EN EL MES", num, "PAGARAS: $", pago))
}
print(paste("EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $", total))
}
total_a_pagar()
## [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"
## [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.
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 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
1.- OPCION 1
2.- OPCION 2
3.- OPCION 3
4.- OPCION 4
5.- SALIR
***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.
primo<- function(num){
pri<-numeric()
no_pri<-numeric()
for (i in 1:num){
if (sum(i/1:i==i%/%1:i)==2){
no_pri<-c(no_pri,i)
} else {
pri<-c(pri,i)
}
}
pri
no_pri
}
primo(num<-as.numeric(dlgInput(message="HASTA QUE NUMERO PRIMO QUIERE?")$res))