UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE CIENCIAS ECONÓMICAS
INGENIERÍA EN ESTADÍSTICA
Autores: Nicole Bauz, Natali Caizaguano, Anahí Chamba, Gandy Churta
Curso: S3-P2
Asignatura: Programación
Docente: Ing. Francisco Valverde PhD
TALLER-APE 12: Ejercicios Acerca de Ciclos Repetitivos
ÍNDICE:
NOTA:
Primero se tiene que instalar un paquete llamado “svDialogs”. Este paquete nos sirve para proceder hacer la aplicación solicitada en los siguientes ejercicios.
SvDialogs: Sirve para crear una ventana e ingresar opciones o valores.
install.packages("svDialogs")
library(svDialogs)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.
install.packages("svDialogs")
library(svDialogs)
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 estas, 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"))
}## ¿CUANTAS HORAS TRABAJO?
## [1] "EL LUNES TRABAJO NA HORAS"
## ¿CUANTAS HORAS TRABAJO?
## [1] "EL MARTES TRABAJO NA HORAS"
## ¿CUANTAS HORAS TRABAJO?
## [1] "EL MIERCOLES TRABAJO NA HORAS"
## ¿CUANTAS HORAS TRABAJO?
## [1] "EL JUEVES TRABAJO NA HORAS"
## ¿CUANTAS HORAS TRABAJO?
## [1] "EL VIERNES TRABAJO NA HORAS"
## ¿CUANTAS HORAS TRABAJO?
## [1] "EL SABADO TRABAJO NA HORAS"
print(paste("EL SUELDO QUE RECIBIRA ES DE: $", sueldo))## [1] "EL SUELDO QUE RECIBIRA ES DE: $ NA"
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)
{
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))
}
print(paste("EL TOTAL QUE PAGASTE EN 20 MESES ES DE: $", total))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.
install.packages("svDialogs")
library(svDialogs)Instalamos el paquete “svDialogs” que nos sirve para crear ventanas emergentes con un mensaje solicitando información que luego se puede utilizar para realizar la operación.
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.
install.packages("svDialogs")
library(svDialogs)Instalamos el paquete “svDialogs” que nos sirve para crear ventanas emergentes con un mensaje solicitando información que luego se puede utilizar para realizar la operación.
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”.
opc<-cat(
"***********************************************
MENU DE OPCIONES
***********************************************
*
* 1. OPCION 1
* 2. OPCION 2
* 3. OPCION 3
* 4. SALIR
*
***********************************************
*SELECCIONE UNA OPCION:*")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