UNIVERSIDAD CENTRAL DEL
ECUADOR
FACULTAD DE CIENCIAS
ECONOMICAS
INGENIERIA ESTADISTICA
Sello UCE
Ejercicios acerca de
Estructuras de Control en R:
Ejercicio 1:
Crea una aplicación
que pida un número y calcule su factorial (El factorial de un número es
el producto de todos los enteros entre 1 y el propio número y se
representa por el número seguido de un signo de exclamación. Por ejemplo
5! = 1x2x3x4x5=120).
#install.packages("svDialogs")
library(svDialogs)
# Realizamos un bucle con la función "for" y calculamos el factortial
facto <- function(n){
fact = 1
for (i in 1:n){
fact <- fact*i
}
return(print(paste("El factorial del valor", n,"!", "es =", fact)))
}
Ejercicio 2:
Crea una aplicación que permita
adivinar un número. La aplicación genera un número aleatorio del 1 al
100. A continuación va pidiendo números y va respondiendo si el número a
adivinar es mayor o menor que el introducido,a demás de los intentos que
te quedan (tienes 10 intentos para acertarlo). El programa termina
cuando se acierta el número (además te dice en cuantos intentos lo has
acertado), si se llega al limite de intentos te muestra el número que
había generado.
# Realizamos un contador de un número aleatorio del 1 al 100
aleatorio<-sample(1:100,1)
contador<-1
Creamos un bucle usando la función "while" y realizamos las condiciones requeridas en el ejercicio.
while (contador<11)
{
num<- dlgInput(message=" Ingrese un número: ")$res
if (num==aleatorio)
{
resul<-paste(" Perfecto!, acertaste en el intento No: ",contador , " El número era: ", aleatorio)
winDialog(message=resul)
contador<-12
} else
{
if (num>aleatorio)
{
winDialog(message="El número que ingresaste es muy alto")
} else
{
if (num<aleatorio)
{
winDialog(message="El número que ingresaste es muy bajo")
}
}
}
if (contador == 10)
{
x<-paste("Se acabaron los intentos :c, el número era: ",aleatorio)
winDialog(message=x)
}
contador<-contador+1
}
Ejercicio 5:
Algoritmo que pida caracteres e
imprima ‘VOCAL’ si son vocales y ‘NO VOCAL’ en caso contrario, el
programa termina cuando se introduce un espacio.
# Creamos una función usando "function" y comparamos si el caracter (letras) es igual a cualquier vocal.
vocal <- function(carac1) {
repeat {
carac1 <- as.character(readline("Ingrese un caracter (letras): "))
if(carac1 == "a" | carac1 == "e" | carac1 == "i" | carac1 == "o" | carac1 == "u" & carac1 != " "){
cat(carac1, "es una vocal.")
} else {
if(carac1 == 0) {
break }
else {
cat(carac1, "no es una vocal.")
}
}
}
}
vocal()
Ejercicio 6:
Escribir un programa que imprima
todos los números pares entre dos números que se le pidan al usuario.
# Creamos una función usando "function" y escribimos los números pares entre 2 números que se le piden al usuario .
numeros<-function(num1){
num1<-as.numeric(dlgInput(message="Ingrese el primer número: ")$res)
num2<-as.numeric(dlgInput(message="Ingrese el segundo número: ")$res)
for(i in num1:num2)
{if(i%% 2 ==0){
print(paste(i,"Es par."))
}else{
print(paste(i,"Es impar."))
}
}
}
numeros()
Ejercicio 7:
Realizar un algoritmo que muestre
la tabla de multiplicar de un número introducido por teclado.
# Creamos una función utilizando "function" y realizamos la tabla de multiplicar de un número.
tablas<-function(tabla, lim){
for(i in 1:lim){
mult<- tabla*i
print(paste(i, "x", tabla, "=", mult))
}
}
tablas(tabla<-as.numeric(dlgInput(message="Indique que tabla de multiplicar desea realizar: ")$res),
lim<-as.numeric(dlgInput(message="Ingrese hasta que número desea multipicar: ")$res))
Ejercicio 8:
Escribe un programa que pida el
limite inferior y superior de un intervalo. Si el límite inferior es
mayor que el superior lo tiene que volver a pedir. A continuación se van
introduciendo números hasta que introduzcamos el 0. Cuando termine el
programa dará las siguientes informaciones:
La suma de los números que están
dentro del intervalo (intervalo abierto).
Cuantos números están fuera del
intervalo.
Ejercicio 9:
Escribe un programa que dados dos
números, uno real (base) y un entero positivo (exponente), saque por
pantalla el resultado de la potencia. No se puede utilizar el operador
de potencia.
# Creamos una función utilizando "function" y realizamos el cálculo de la potencia de un número.
potenc <- function(base, exponente){
potencia <- 1
for (i in 1:exponente)
{
potencia<- potencia*base
}
return(print(paste(base, "elevado a:", exponente, "es =", potencia)))
}
potenc(base<-as.numeric(dlgInput(message="Ingrese la base: ")$res),
exponente<-as.numeric(dlgInput(message="Ingrese el exponente: ")$res))
Ejercicio
10:
Algoritmo que muestre la tabla de
multiplicar de los números 1,2,3,4 y 5.
# Usamos la función "for" para calcular las tablas de multiplicar de los números 1,2,3,4 y 5.
tablas<- 1:5
for(i in 1:9)
{
mult<- tablas*i
print(paste(i, "x", tablas, "=", mult))
}
## [1] "1 x 1 = 1" "1 x 2 = 2" "1 x 3 = 3" "1 x 4 = 4" "1 x 5 = 5"
## [1] "2 x 1 = 2" "2 x 2 = 4" "2 x 3 = 6" "2 x 4 = 8" "2 x 5 = 10"
## [1] "3 x 1 = 3" "3 x 2 = 6" "3 x 3 = 9" "3 x 4 = 12" "3 x 5 = 15"
## [1] "4 x 1 = 4" "4 x 2 = 8" "4 x 3 = 12" "4 x 4 = 16" "4 x 5 = 20"
## [1] "5 x 1 = 5" "5 x 2 = 10" "5 x 3 = 15" "5 x 4 = 20" "5 x 5 = 25"
## [1] "6 x 1 = 6" "6 x 2 = 12" "6 x 3 = 18" "6 x 4 = 24" "6 x 5 = 30"
## [1] "7 x 1 = 7" "7 x 2 = 14" "7 x 3 = 21" "7 x 4 = 28" "7 x 5 = 35"
## [1] "8 x 1 = 8" "8 x 2 = 16" "8 x 3 = 24" "8 x 4 = 32" "8 x 5 = 40"
## [1] "9 x 1 = 9" "9 x 2 = 18" "9 x 3 = 27" "9 x 4 = 36" "9 x 5 = 45"