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.
Ejecución del ejercicio: `
Forma 1: El usuario ingresa el número
#install.packages("svDialogs")
#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()
Forma 2: Ingresamos el número desde el script
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"
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.
Ejecución del ejercicio:
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()
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.
Ejecución del ejercicio:
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()
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.
Ejecución del ejercicio:
pa <- 70
pb <- 150
d <- pb-pa
while(d>0){
pa <- pa+1
pb <- pb-1
d <- pb-pa
}
cat("el punto de encuentro es el km:",pa)
## el punto de encuentro es el km: 110
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.
Ejecución del ejercicio:
pago1 <- 10
total <- 0
pagofinal <- function(num){
for(num in 1:20){
pago1 <- pago1*2
total <- total+pago1
print(paste("en el mes",num,"pagará $",pago1))
}
print(paste("el total al cumplir 20 meses el pago es de:",total))
}
pagofinal()
## [1] "en el mes 1 pagará $ 20"
## [1] "en el mes 2 pagará $ 40"
## [1] "en el mes 3 pagará $ 80"
## [1] "en el mes 4 pagará $ 160"
## [1] "en el mes 5 pagará $ 320"
## [1] "en el mes 6 pagará $ 640"
## [1] "en el mes 7 pagará $ 1280"
## [1] "en el mes 8 pagará $ 2560"
## [1] "en el mes 9 pagará $ 5120"
## [1] "en el mes 10 pagará $ 10240"
## [1] "en el mes 11 pagará $ 20480"
## [1] "en el mes 12 pagará $ 40960"
## [1] "en el mes 13 pagará $ 81920"
## [1] "en el mes 14 pagará $ 163840"
## [1] "en el mes 15 pagará $ 327680"
## [1] "en el mes 16 pagará $ 655360"
## [1] "en el mes 17 pagará $ 1310720"
## [1] "en el mes 18 pagará $ 2621440"
## [1] "en el mes 19 pagará $ 5242880"
## [1] "en el mes 20 pagará $ 10485760"
## [1] "el total al cumplir 20 meses el pago es de: 20971500"
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.
Ejecución del ejercicio:
contador <- 0
empresa <- function(num1,x1,x2){
num1 <- as.numeric(readline("ingrese el número de trabajadores: "))
for (num1 in 1:num1) {
x1 <- as.numeric(readline("ingrese el valor de horas trabajadas: "))
x2 <- as.numeric(readline("ingrese el valor de pago por hora: "))
sueldo <- x1*x2
contador <- contador+sueldo
cat("el sueldo al recibir es:",sueldo)
}
cat("\n","por lo tanto","\n","la empresa paga un total de $",contador)
}
empresa()
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.
Ejecución del ejercicio:
contador <- 0
dias_horas <- function(trabajadores, dias, horas, valor) {
trabajadores <- as.numeric(readline("Ingrese el número de trabajadores: "))
for (trabajadores in 1:trabajadores) {
dias <- as.numeric(readline("Ingresa el número de días trabajados:"))
horas <- as.numeric(readline("Ingresa las horas trabajadas al día:"))
valor <- as.numeric(readline("Ingresa el valor de pago por hora:"))
horas_trabajo <- dias*horas
sueldosem <- horas_trabajo * valor
contador <- contador + sueldosem
cat("El sueldo a recibir es:", sueldosem )
}
cat("\n","Por lo tanto","\n","La empresa pagó un total de:", contador, " dólares")
}
dias_horas()
Hacer un programa que muestre un cronometro, indicando las horas, minutos y segundos.
Ejecución del ejercicio:
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))
Realizar un ejemplo de menú, donde podemos escoger las distintas opciones hasta que seleccionamos la opción de “Salir”.
Ejecución del ejercicio:
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()
Mostrar en pantalla los N primero número primos. Se pide por teclado la cantidad de números primos que queremos mostrar.
Ejecución del ejercicio:
nprimos=function(n1){
p1=numeric()
nop=numeric()
for (i in 1:n1) {
if(sum(i/1:i==i%/%1:i)==2){
nop=c(nop,i)
} else{
p1=c(p1,i)
}
}
p1
nop
}
nprimos(n1=as.numeric(readline("Que cantidad de números quiere mostrar:")))