“Grupo N°3” ” Integrantes: Ayala Tania” ” Callatasig Katherine” ” Iñiguez Yessica” ” Vera Melany”
#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.
#Se instala el paquete svDialogs
#install.packages("svDialogs")
library(svDialogs)
#Se pide ingresar un número.
x <- as.integer(dlgInput(message="INGRESE UN NUMERO ")$res)
cont <- 0
#Identificar si es un número par o impar.
for (i in 1:x){
if (x%%i==0){
cont <- cont+1
}
}
if (cont==2){
paste(x," Es un número primo")
}else{
paste(x, "Es un número no 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.
#se quiere saber cuánto lleva ahorrado cada mes.
#Se agrega las variables total, ahorro y mes.
total <- 0
ahorro <- 0
mes <- c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO",
"AGOSTO","SEPTIEMBRE","OCTUBRE", "NOVIEMBRE", "DICIEMBRE")
#Ingresar las cantidades a ahorrar de este año.
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.
#Procedimiento
#Se declara una función para determinar las horas de trabajo.
#El comando function() permite definir una función dentro de otra función, es decir,
#es utilizada como argumento para otras funciones.
#La función data.frame()crea marcos de datos, colecciones de variables
#que muestra de todos los valores relacionados con las emisiones.
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)
#La función cat() convierte sus argumentos en cadenas de caracteres, los concatena,
#separándolos por la cadena sep= dada y finalmente los imprime.
cat("TOTAL DE SUELDO POR EL TRABAJO EN LA SEMANA : $ ",sum(SUELDO))}
total<-horas(h)
#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.
#Se utiliza la función while(), es una función diseñada para ejecutar algún código hasta que se cumpla una condición.
#Mientras la condición lógica sea TRUE, el código no dejará de ejecutarse.
#Otra función que se utiliza es paste(), nos permite concatenar cadenas de texto con R:
#Interesantes funciones que nos pueden permitir automatizar códigos recursivos o códigos guardados como objetos en R.
#Se asigna variables para cada coche y el N° de km.
coche1<-70
coche2<- 150
distancia<- coche2 - coche1
while (distancia>0){
coche1<- coche1 + 1
coche2<- coche2 -1
distancia<- coche2 - coche1
}
paste("El punto de encuentro de los coches es en el kilómetro:", coche1)
#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.
#Procedimiento
#Se declara las variables a utilizar
pago <- 10
total <- 0
#Se declara una función para determinar el total a pagar
#Se utiliza el ciclo for, es una iteración repetitiva (en bucle) de cualquier código
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))
}
#Se hace el llamado a la funcion para que imprima el resultado en la consola.
total_a_pagar()
#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.
#Procedimiento
#Se declara las variables a utilizar
empleados <-0
gasto_empresa<- 0
#Se utiliza la funcion dlgInput que es un cuadro de entrada simple
empleados<- as.numeric(dlgInput(message="CUANTOS TRABAJADORES TIENE?")$res)
#Se utiliza el ciclo for, es una iteración repetitiva (en bucle) de cualquier código
for(i 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", i, "GANA SEMANAL: $", sueldo))
}
print(paste("LA EMPRESA PAGO POR LOS", empleados, "EMPLEADOS", gasto_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.
## Activamos la libreria "svDialogs" para realizar los ejercicios
library(svDialogs)
## Paso 1. Realizamos una función que nos permitirá realizar ingresar los valores pedidos y calcular el pago de la empresa que debe realizar.
empresa2<-function(num){
trab<- as.numeric(dlgInput(message="CUANTOS EMPLEADOS TIENE?")$res);trab<-5
pago<- 0
for(num in 1:trab){
dias<- as.numeric(dlgInput(message="CUANTOS DIAS TRABAJO EN LA SEMANA?")$res);dias<-3
horas<- as.numeric(dlgInput(message="CUANTOS HORAS TRABAJO EN ESOS DIAS?")$res);horas<-6
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))
}
## Paso 2. Llamamos a la funcion para ingresar los datos y mostrar los resultados.
empresa2()
#EJERCICIO 8 ####
## Hacer un programa que muestre un cronometro, indicando las horas, minutos y segundos.
# paso 1. Vamos a realizar una funcion en donde nos permita hacer el cronómetro.
cronometro<- function(seg){
print(seg)
while(seg!=0){
Sys.sleep(1)
seg<- seg-1
print(seg)
}
}
# Paso 2. Llamamos a la función e ingresamos un valor para que inície el cronómetro la cuenta regresiva.
cronometro(seg<-as.numeric(dlgInput(message="Ingrese un número:")$res))
#EJERCICIO 9 ####
## Realizar un ejemplo de menú, donde podemos escoger las distintas opciones hasta
## que seleccionamos la opción de “Salir”.
# Paso 1. Realizamos una función que nos permita realizar la demostración del Menú.
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()}
}
}
# Paso 2. Llamamos a la funcion y escogemos las distintas opciones que se tienen en el 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.
# Paso 1. Vamos a crear una función en la variable "N_primos" para indicar los números primos a mostrar.
N_primos<- 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
}
# Paso 2. Llamamos a la función que se creo e ingresamos el valor de números primos que se desea mostrar.
N_primos(num<-as.numeric(dlgInput(message="Hasta que número primo desea que se muestre?")$res))