UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

CARRERA DE INGENIERÍA EN ESTADÍSTICA
TERCER SEMESTRE
PROGRAMACIÓN
TALLER Nº11
TEMA: Ejercicios acerca de Estructuras de Control en R
GRUPO Nº8
Curso: EST S3 – 002
Docente: Ing. Francisco Valverde


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)

numero <- 5
factorial <- 1
if (numero >= 0) {
  for (i in 1:numero) {
    factorial <- factorial * i
  }
  print(paste("El factorial de", numero, "es", factorial))
} else {
  print("El número debe ser no negativo.")
}
## [1] "El factorial de 5 es 120"

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, ademá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.

set.seed(123)
numero_secreto <- sample(1:100, 1)
intentos <- 10
intentos_usuario <- c(50, 75, 88, 94, 96, 97, 98, 99, 100, 100)

for (i in 1:intentos) {
  intento <- intentos_usuario[i]
  if (intento == numero_secreto) {
    print(paste("¡Correcto! Adivinaste en", i, "intento(s)."))
    break
  } else if (intento < numero_secreto) {
    print(paste("El número es mayor. Intentos restantes:", intentos - i))
  } else {
    print(paste("El número es menor. Intentos restantes:", intentos - i))
  }
  if (i == intentos) {
    print(paste("Agotaste los intentos. El número era:", numero_secreto))
  }
}
## [1] "El número es menor. Intentos restantes: 9"
## [1] "El número es menor. Intentos restantes: 8"
## [1] "El número es menor. Intentos restantes: 7"
## [1] "El número es menor. Intentos restantes: 6"
## [1] "El número es menor. Intentos restantes: 5"
## [1] "El número es menor. Intentos restantes: 4"
## [1] "El número es menor. Intentos restantes: 3"
## [1] "El número es menor. Intentos restantes: 2"
## [1] "El número es menor. Intentos restantes: 1"
## [1] "El número es menor. Intentos restantes: 0"
## [1] "Agotaste los intentos. El número era: 31"

Ejercicio 3:

Algoritmo que pida números hasta que se introduzca un cero. Debe imprimir la suma y la media de todos los números introducidos.

numeros <- c(4, 8, 2, 6, 0)
suma <- 0
contador <- 0

for (n in numeros) {
  if (n == 0) break
  suma <- suma + n
  contador <- contador + 1
}

if (contador > 0) {
  print(paste("Suma:", suma, "Media:", suma / contador))
} else {
  print("No se ingresaron números.")
}
## [1] "Suma: 20 Media: 5"

Ejercicio 4:

Realizar un algoritmo que pida números (se pedirá por teclado la cantidad de números a introducir). El programa debe informar de cuantos números introducidos son mayores que 0, menores que 0 e iguales a 0.

numeros <- c(5, -3, 0, 7, -1)
pos <- 0; neg <- 0; cero <- 0

for (num in numeros) {
  if (num > 0) pos <- pos + 1
  else if (num < 0) neg <- neg + 1
  else cero <- cero + 1
}

print(paste("Positivos:", pos, "Negativos:", neg, "Ceros:", cero))
## [1] "Positivos: 2 Negativos: 2 Ceros: 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.

caracteres <- c("a", "b", "e", "z", "i", "")
for (letra in caracteres) {
  if (letra == "") break
  if (letra %in% c("a", "e", "i", "o", "u")) {
    print("VOCAL")
  } else {
    print("NO VOCAL")
  }
}
## [1] "VOCAL"
## [1] "NO VOCAL"
## [1] "VOCAL"
## [1] "NO VOCAL"
## [1] "VOCAL"

Ejercicio 6:

Escribir un programa que imprima todos los números pares entre dos números que se le pidan al usuario.

a <- 3
b <- 12
if (a > b) { temp <- a; a <- b; b <- temp }

cat("Números pares entre", a, "y", b, ":")
## Números pares entre 3 y 12 :
for (i in a:b) {
  if (i %% 2 == 0) cat(i, " ")
}
## 4  6  8  10  12

Ejercicio 7:

Realizar una algoritmo que muestre la tabla de multiplicar de un número introducido por teclado.

n <- 7
cat("Tabla de multiplicar del", n, ":")
## Tabla de multiplicar del 7 :
for (i in 1:10) {
  print(paste(n, "x", i, "=", n * i))
}
## [1] "7 x 1 = 7"
## [1] "7 x 2 = 14"
## [1] "7 x 3 = 21"
## [1] "7 x 4 = 28"
## [1] "7 x 5 = 35"
## [1] "7 x 6 = 42"
## [1] "7 x 7 = 49"
## [1] "7 x 8 = 56"
## [1] "7 x 9 = 63"
## [1] "7 x 10 = 70"

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:

inf <- 10
sup <- 20
valores <- c(5, 10, 12, 15, 20, 25, 0)
suma <- 0; fuera <- 0; iguales <- 0

for (num in valores) {
  if (num == 0) break
  if (num > inf & num < sup) {
    suma <- suma + num
  } else if (num == inf | num == sup) {
    iguales <- iguales + 1
  } else {
    fuera <- fuera + 1
  }
}

print(paste("Suma dentro del intervalo:", suma))
## [1] "Suma dentro del intervalo: 27"
print(paste("Cantidad fuera del intervalo:", fuera))
## [1] "Cantidad fuera del intervalo: 2"
print(paste("Iguales a los límites:", iguales))
## [1] "Iguales a los límites: 2"

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.

base <- 2.5
exponente <- 3
resultado <- 1

for (i in 1:exponente) {
  resultado <- resultado * base
}

print(paste("Resultado:", resultado))
## [1] "Resultado: 15.625"

Ejercicio 10:

Algoritmo que muestre la tabla de multiplicar de los números 1,2,3,4 y 5.

for (n in 1:5) {
  cat("Tabla del", n, ":")
  for (i in 1:10) {
    print(paste(n, "x", i, "=", n * i))
  }
}
## Tabla del 1 :[1] "1 x 1 = 1"
## [1] "1 x 2 = 2"
## [1] "1 x 3 = 3"
## [1] "1 x 4 = 4"
## [1] "1 x 5 = 5"
## [1] "1 x 6 = 6"
## [1] "1 x 7 = 7"
## [1] "1 x 8 = 8"
## [1] "1 x 9 = 9"
## [1] "1 x 10 = 10"
## Tabla del 2 :[1] "2 x 1 = 2"
## [1] "2 x 2 = 4"
## [1] "2 x 3 = 6"
## [1] "2 x 4 = 8"
## [1] "2 x 5 = 10"
## [1] "2 x 6 = 12"
## [1] "2 x 7 = 14"
## [1] "2 x 8 = 16"
## [1] "2 x 9 = 18"
## [1] "2 x 10 = 20"
## Tabla del 3 :[1] "3 x 1 = 3"
## [1] "3 x 2 = 6"
## [1] "3 x 3 = 9"
## [1] "3 x 4 = 12"
## [1] "3 x 5 = 15"
## [1] "3 x 6 = 18"
## [1] "3 x 7 = 21"
## [1] "3 x 8 = 24"
## [1] "3 x 9 = 27"
## [1] "3 x 10 = 30"
## Tabla del 4 :[1] "4 x 1 = 4"
## [1] "4 x 2 = 8"
## [1] "4 x 3 = 12"
## [1] "4 x 4 = 16"
## [1] "4 x 5 = 20"
## [1] "4 x 6 = 24"
## [1] "4 x 7 = 28"
## [1] "4 x 8 = 32"
## [1] "4 x 9 = 36"
## [1] "4 x 10 = 40"
## Tabla del 5 :[1] "5 x 1 = 5"
## [1] "5 x 2 = 10"
## [1] "5 x 3 = 15"
## [1] "5 x 4 = 20"
## [1] "5 x 5 = 25"
## [1] "5 x 6 = 30"
## [1] "5 x 7 = 35"
## [1] "5 x 8 = 40"
## [1] "5 x 9 = 45"
## [1] "5 x 10 = 50"