UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

CARRERA DE ESTADÍSTICA



PRIMERAS PRACTICAS EN R 9

Manual

En el siguiente texto podremos encontrar una serie de códigos elaborados en el programa Rstudio que darán solución a un determinado ejercicio enfocados principalmente en la creacion de algoritmos.

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),

  1. Comenzaremos por asignar un nombre para la funcion, seguido utilizaremos la funcion:
factorial<-function(x)

dentro del parentesis pondremos la variable a la que le vamos a aplicar la funcion

  1. Para nuestra funcion utilizaremos un contador y un condicional for()
factorial<-function(x){
 num<-1
 for(i in 1:x)
  1. Finalmente pondremos lo que queremos que realice con la variable
factorial<-function(x){
 num<-1
 for(i in 1:x){
   num<-num*i
 }
 num
} 

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 1

factorial<-function(x){
  num<-1
  for(i in 1:x){
    num<-num*i
  }
  num
} 

factorial(4)
RESULTADO FINAL
## [1] 24

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.

  1. Comenzaremos por instalar y abrir el paquete llamado “svDialogs” que nos va a ayudar con este ejercicio
install.packages("svDialogs")
library(svDialogs)
  1. Para nuestro ejercicio vamos a utilizar un numero ganador que lo vamos a hacer aleatorio entre 1 y 100 con la funcion sample() y un contador que inicie en 1
ganador<-sample(1:100,1)
ganador

contador<-1
  1. Finalmente utilizaremos un bucle de while con los argumentos necesarios para hacer este programa

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 2

install.packages("svDialogs")
library(svDialogs)

ganador<-sample(1:100,1)
ganador

contador<-1

while (contador<11) 
{
  numero<- dlgInput(message="Ingrese un número ")$res
  if (numero==ganador)
  {
    resul<-paste("Adivinaste el número ")
    winDialog(message=resul)
    contador<-12
  } else
  {
    if (numero>ganador)
    {
      winDialog(message="El número es mas bajo")
    } else
    {
      if (numero<ganador)
      {
        winDialog(message="El número es muy alto")
      } 
    }
  }
  if (contador == 10)
  {
    x<-paste("Haz agotado los intentos. El número correcto es ",ganador)
    winDialog(message=x)
  }
  contador<-contador+1
}

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.

  1. Comenzaremos por asignar valores a contadores, uno que comience en 0 y otro en 1:
y<- 0
z<- 1
  1. Finalmente utilizaremos un bucle de while con los argumentos necesarios para hacer este programa

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 3

y<- 0
z<- 1

while (z>0){
  y[z]<- as.numeric(readline("ingrese un numero: "))
  if ( y[z] == 0){
    
    print(y)
    print(cat("La suma de los números es ", sum(y)))
    print(cat("La media de los números es", sum(y)/(z-1)))
    
    break
  }
  z<-z+1
}

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.

  1. Comenzaremos por asignar valores a diferentes contadores que nos ayuden con el programa y adicionalmente asignaremos a s un valor con la funcion readline():
p<-0
s<- as.numeric(readline("ingrese la cantidad de numeros: "))
contador_mayores_que_0<-0
contador_menores_que_0<-0
contador_iguales_a_0<-0
  1. Finalmente utilizaremos un bucle for con los argumentos necesarios para hacer este programa

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 4

p<-0
s<- as.numeric(readline("ingrese la cantidad de numeros: "))
contador_mayores_que_0<-0
contador_menores_que_0<-0
contador_iguales_a_0<-0
for (i in 1:s) {
  p[i]<- as.numeric(readline("ingrese un numero: "))
  if (p[i]>0){
    contador_mayores_que_0<- contador_mayores_que_0+1
  }
  if (p[i]<0){
    contador_menores_que_0<- contador_menores_que_0+1
  }
  if (p[i]==0){
    contador_iguales_a_0<- contador_iguales_a_0+1
  }
}

contador_mayores_que_0
contador_menores_que_0
contador_iguales_a_0

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.

  1. Comenzaremos por asignar un valor de ” ” (espacio) para que termine cuando se ingrese un espacio:
entrada<- ""
  1. Finalmente utilizaremos un bucle de while con los argumentos necesarios para hacer este programa

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 5

entrada<- ""
while(entrada!=  " ")
{
  entrada<- dlgInput(message="Ingrase una letra:")$res
  for(i in entrada) 
  {
    if(i== "a" | i== "e" | i== "i" | i== "o" | i== "u")
    {
      print(paste(i,"Es Vocal"))
    }else
    {
      print(paste(i,"No es Vocal")) 
    }
  }
} 

Ejercicio 6

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

  1. Comenzaremos por asignar un nombre para la funcion, seguido utilizaremos la funcion:
pares<-function(x,y)

dentro del parentesis pondremos la variable a la que le vamos a aplicar la funcion

  1. Para nuestra funcion utilizaremos un contador y un condicional for()
pares<-function(x,y) {
 for(pares in x:y) 
  1. Finalmente pondremos lo que queremos que realice con la variable
pares<-function(x,y) {
 for(pares in x:y) {
   if(pares%%2==0)
     print(pares)
 }
}

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 6

pares<-function(x,y) {
  for(pares in x:y) {
    if(pares%%2==0)
      print(pares)
  }
}

pares(1,10)

Ejercicio 7

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

  1. Comenzaremos por asignar un nombre a la variable, con ayuda de la funcion readline() vamos a obtener el valor con el que operaremos :
num<-as.numeric(readline("Ingrese el número del que desea la serie "))

dentro del parentesis pondremos la variable a la que le vamos a aplicar la funcion

  1. Para nuestro ejercicio utilizaremos un condicional for()
for (i in 1:10)
  1. Finalmente pondremos lo que queremos que realice con la variable
for (i in 1:10){
 cat(num," x ",i," = ",num*i,".\n")
}

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 7

num<-as.numeric(readline("Ingrese el número del que desea la serie "))

for (i in 1:10){
  cat(num," x ",i," = ",num*i,".\n")
}
RESULTADO FINAL
## Ingrese el número del que desea la serie
## NA  x  1  =  NA .
## NA  x  2  =  NA .
## NA  x  3  =  NA .
## NA  x  4  =  NA .
## NA  x  5  =  NA .
## NA  x  6  =  NA .
## NA  x  7  =  NA .
## NA  x  8  =  NA .
## NA  x  9  =  NA .
## NA  x  10  =  NA .

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. He informa si hemos introducido algún número igual a los límites del intervalo.

  1. Comenzaremos por asignar valores a diferentes contadores que nos ayuden con el programa y adicionalmente asignaremos al limite superior e inferior un valor con la funcion readline():
inf<-as.numeric(readline("Ingrese el limite inrefior del intervalo "))
sup<-as.numeric(readline("Ingrese el limite inrefior del intervalo "))

num<-1
suma<-0
contador<-0
  1. Finalmente utilizaremos un bucle while con los argumentos necesarios para hacer este programa

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 8

inf<-as.numeric(readline("Ingrese el limite inrefior del intervalo "))
sup<-as.numeric(readline("Ingrese el limite inrefior del intervalo "))

num<-1
suma<-0
contador<-0

while (num=!0) {
  num<-as.numeric(readline("Ingrese un número "))
  suma<-suma+1
  contador<-contador+1
}

print(paste("La suma de los números dentro del intervalo es ", suma))
print(paste(contador, "Números estan 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.

  1. Comenzaremos por asignar un nombre a la funcion que vamos a realizar y ocuparemos la funcion function() :
potencia<-function(a,b)

dentro del parentesis pondremos las variables a la que le vamos a aplicar la funcion

  1. Para nuestro ejercicio utilizaremos un condicional while()
potencia<-function(a,b) {
 contador<-1
 elevado<-1
 while(contador<=b) 
  1. Finalmente pondremos lo que queremos que realice con la variable
potencia<-function(a,b) {
 contador<-1
 elevado<-1
 while(contador<=b) {
   elevado<-elevado*a
   contador<-contador+1
   print(elevado)
 }
}

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 9

potencia<-function(a,b) {
  contador<-1
  elevado<-1
  while(contador<=b) {
    elevado<-elevado*a
    contador<-contador+1
    print(elevado)
  }
}

Ejercicio 10

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

  1. Para este ejercicio hemos realizado un bucle doble de for() que recorra los limites que queremos y multiplique para poder realizar las tablas de multiplicar

Ejecución del código en R

SINTAXIS COMPLETA
##EJERCICIO 10

for (i in 1:5){
  for (j in 1:10){
    cat(i," x ",j," = ",i*j,".\n")
  }
}
RESULTADO FINAL
## 1  x  1  =  1 .
## 1  x  2  =  2 .
## 1  x  3  =  3 .
## 1  x  4  =  4 .
## 1  x  5  =  5 .
## 1  x  6  =  6 .
## 1  x  7  =  7 .
## 1  x  8  =  8 .
## 1  x  9  =  9 .
## 1  x  10  =  10 .
## 2  x  1  =  2 .
## 2  x  2  =  4 .
## 2  x  3  =  6 .
## 2  x  4  =  8 .
## 2  x  5  =  10 .
## 2  x  6  =  12 .
## 2  x  7  =  14 .
## 2  x  8  =  16 .
## 2  x  9  =  18 .
## 2  x  10  =  20 .
## 3  x  1  =  3 .
## 3  x  2  =  6 .
## 3  x  3  =  9 .
## 3  x  4  =  12 .
## 3  x  5  =  15 .
## 3  x  6  =  18 .
## 3  x  7  =  21 .
## 3  x  8  =  24 .
## 3  x  9  =  27 .
## 3  x  10  =  30 .
## 4  x  1  =  4 .
## 4  x  2  =  8 .
## 4  x  3  =  12 .
## 4  x  4  =  16 .
## 4  x  5  =  20 .
## 4  x  6  =  24 .
## 4  x  7  =  28 .
## 4  x  8  =  32 .
## 4  x  9  =  36 .
## 4  x  10  =  40 .
## 5  x  1  =  5 .
## 5  x  2  =  10 .
## 5  x  3  =  15 .
## 5  x  4  =  20 .
## 5  x  5  =  25 .
## 5  x  6  =  30 .
## 5  x  7  =  35 .
## 5  x  8  =  40 .
## 5  x  9  =  45 .
## 5  x  10  =  50 .
COLABORADOR: Phd.Francisco Valverde Alulema.