UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

INGENIERÍA EN ESTADÍSTICA

Mis primeros programas en R

En este documento se presentan 20 ejercicios propuestos en clase, con el fin de la introducción del programa R para principiantes.

AUTORES

COLABORADOR

EJERCICIOS PROPUESTOS

EJERCICIO 1

  1. Escribe un programa que solicite los catetos de un triángulo rectángulo y muestre su hipotenusa.

\[Hipotenusa=\sqrt{a^2+b^2}\]

##Ingresar el valor del primer Cateto
cat1 <- as.numeric(readline("Ingrese el valor del primer cateto "))
## Ingrese el valor del primer cateto
##Ingresar el valor del segundo cateto
cat2 <- as.numeric(readline("Ingrese el valor del segundo cateto "))
## Ingrese el valor del segundo cateto
##Realizat la operación y utilizar sqrt para sacar la raiz de la operación
cat("La Hipotenusa del triángulo rectangulo es: ",sqrt(cat1**2+cat2**2) )
## La Hipotenusa del triángulo rectangulo es:  NA

EJERCICIO 2

  1. Escribe un programa que calcule las soluciones de una ecuación de segundo grado de la forma ax2+bx+c=0ax2+bx+c=0

Fórmula a utilizar \[ax^2+bx+c=0\]

## Ingresa el valor de a:
a <-as.numeric(readline("Ingresa el valor de a: "))
## Ingresa el valor de a:
## Ingresa el valor de b:
b <-as.numeric(readline("Ingresa el valor de b: "))
## Ingresa el valor de b:
## Ingresa el valor de c:
c <-as.numeric(readline("Ingresa el valor de c: "))
## Ingresa el valor de c:
cat("El valor de x1 es: ",(-b+sqrt(b^2-4*a*c))/(2*a))
## El valor de x1 es:  NA
cat("El valor de x2 es: ",(-b-sqrt(b^2-4*a*c))/(2*a))
## El valor de x2 es:  NA

EJERCICIO 3

  1. Calcular el área del triángulo rectángulo dadas su base y altura

Fórmula del área del triángulo

\[Área=\frac {base*altura}{2}\]

##Ingresar el valor de la base
base<-as.numeric(readline("Ingrese el valor de la base del triángulo: "))
## Ingrese el valor de la base del triángulo:
##Ingresar el valor de la altura
altura<-as.numeric(readline("Ingrese el valor de la altura del triángulo: "))
## Ingrese el valor de la altura del triángulo:
##Realizar la operación 
area<-((base*altura)/2)

cat("El siguiente triángulo rectángulo tiene los siguientes datos:","\n",
    "*Base: ",base,"\n","*Altura: ",altura,"\n",
    "El área del triánguo rectángulo es:",area)
## El siguiente triángulo rectángulo tiene los siguientes datos: 
##  *Base:  NA 
##  *Altura:  NA 
##  El área del triánguo rectángulo es: NA

EJERCICIO 4

  1. Calcular el área y perímetro de un rectángulo dado su base y altura

Fórmula del Área del rectangulo

\[Área=base*altura\] Fórmula del Perímetro del Rectangulo \[Perímetro=2(altura+base)\]

##Ingresar el valor de la base
a<-as.numeric(readline("Ingrese el valor de la base: "))
## Ingrese el valor de la base:
##Ingresar el valor de la altura
b<-as.numeric(readline("Iingrese el valor de la altura: "))
## Iingrese el valor de la altura:
##Realizar la operación
área<-b*a
área
## [1] NA
perímetro<-b+b+a+a
perímetro
## [1] NA
cat("El área de dicho rectángulo es ", área)
## El área de dicho rectángulo es  NA
cat("El perímetro de dicho rectángulo es ", perímetro)
## El perímetro de dicho rectángulo es  NA

EJERCICIO 5

  1. Calcular el promedio de 3 notas que estén entre 0 y 20

Fórmula del Promedio

\[x=\frac{\sum x_m*n_i}{n}\]

n1<-as.numeric(readline("Ingrese la primera calificación: "))
## Ingrese la primera calificación:
## Ingrese la primera calificación:
n2<-as.numeric(readline("Ingrese la segunda calificación: "))
## Ingrese la segunda calificación:
## Ingrese la segunda calificación:
n3<-as.numeric(readline("Ingrese la tercera calificación: "))
## Ingrese la tercera calificación:
## Ingrese la tercera calificación:

promedio<-(n1+n2+n3)/3
mayorque0<-promedio>0
menorque20<-promedio<20

cat("El promedio de las calificaciones es:", promedio)
## El promedio de las calificaciones es: NA

Ejercicio 6

  1. Calcular el ?rea y per?metro de la circunferencia dado el radio.

Formulas

\[Área=\pi*r^2\] \[PerÍmetro=2*\pi*r\]

r <- as.numeric(readline("Ingrese el valor del radio de la circunferencia: "))
## Ingrese el valor del radio de la circunferencia:
## Ingrese el valor del radio de la circunferencia
cat("El ?rea de la circunferencia es: ",pi*r^2)
## El ?rea de la circunferencia es:  NA
cat("El per?metro de la circunferencia es: ",2*pi*r)
## El per?metro de la circunferencia es:  NA
##cat, nos muestra el resultado del ?rea y el perimetro de la circunferencia, seg?n el 
## radio dado.

Ejercicio 7

  1. Calcular el ?rea y per?metro de un trapecio dado su base mayor, base menor y altura.

Formulas

\[Area=\frac{B+b}{2}*h\] \[Perimetro=B+b+L+L\]

a <- as.numeric(readline("ingrese la base mayor del trapecio: "))
## ingrese la base mayor del trapecio:
## Ingrese la base mayor del trapecio:##
b <- as.numeric(readline("ingrese la base menor del trapecio: "))
## ingrese la base menor del trapecio:
## Ingrese la base menor del trapecio:
##:Definimos una variable h que representa la altura e ingresaremos un valor y con el 
## comando cat presentamos el resultado del ?rea del trapecio.
h <- as.numeric(readline("ingrese el valor de la altura: "))
## ingrese el valor de la altura:
## Ingrese la altura del trapecio: ## 
cat("El area del trapecio es : ", ((b+a)*h/2))
## El area del trapecio es :  NA
x <- (a-b)/2
z<- sqrt(h^2+ x^2)
cat("el valor de la hipotenusa es: ",z)
## el valor de la hipotenusa es:  NA
cat("el valor del perimetro es: ", a+b+z+z)
## el valor del perimetro es:  NA

Ejercicio 8

  1. Dados dos n?meros, determinar cu?l es el n?mero mayor y cu?l es el n?mero menor, si los dos n?meros son iguales el mensaje debe decir que son n?meros iguales.

Condiciones

\[p>s\] \[p<s\] \[p=s\]

p<- as.numeric(readline("Ingrese el primer numero: "))
## Ingrese el primer numero:
##Ingrese el primer n?mero##
s <- as.numeric(readline("Ingrese el segundo numero: "))
## Ingrese el segundo numero:
##Ingrese el segundo n?mero## 
c("El primer numero es menor que el segundo numero;" , p<s,
 "El primer numero es mayor que el segundo numero;", p>s,
 "Los numeros son iguales;", p==s)
## [1] "El primer numero es menor que el segundo numero;"
## [2] NA                                                
## [3] "El primer numero es mayor que el segundo numero;"
## [4] NA                                                
## [5] "Los numeros son iguales;"                        
## [6] NA
##Nos muestra el resultado l?gico de las condiciones sugeridas##

Adicional 1

A1. Escribe un programa que lea dos n?meros y muestre en la salida su suma, resta, multiplicaci?n y divisi?n.

Formulas

\[Suma=num1+num2\] \[Resta=num1-num2\] \[Multiplicaci?n=num1*num2\] \[División=\frac{num1}{num2}\]

##Ingrese el primer n?mero##
num1 <- as.numeric(readline("Ingrese el primer n?mero "))
## Ingrese el primer n?mero
##Ingrese el segundo n?mero##
num2 <- as.numeric(readline("Ingrese el segundo n?mero "))
## Ingrese el segundo n?mero
##Realiza la operaci?n##
cat("La suma de ", num1," y ", num2, " es: ",num1+num2,"\n");
## La suma de  NA  y  NA  es:  NA
cat("La resta de ", num1," y ", num2, " es: ",num1-num2,"\n");
## La resta de  NA  y  NA  es:  NA
cat("La multiplicaci?n de ", num1," y ", num2, " es: ",num1*num2,"\n");
## La multiplicaci?n de  NA  y  NA  es:  NA
cat("La divisi?n de ", num1," y ", num2, " es: ",num1/num2,"\n")
## La divisi?n de  NA  y  NA  es:  NA

Adicional 2

A2. Realice un Programa que pida una cantidad en d?lares y como resultado se visualice el IVA (12%) y el valor total a pagar.

Formula

\[IVA=cant*0.12\] \[Total=cant+IVA\]

##Ingresar la cantidad en d?lares##
cant <- as.numeric(readline("Ingrese su cantidad en d?lares "))
## Ingrese su cantidad en d?lares
##Realiza la operaci?n para sacar el iva
iva <-cant*0.12
cat("Su iva del 12% es de: ",iva)
## Su iva del 12% es de:  NA
##Realiza la operaci?n para calcular el valor total a pagar##
cat("Su valor total a pagar es", cant+iva)
## Su valor total a pagar es NA

EJERCICIO 11

11.Escribir un programa que pida la temperatura y si esta es en Fahrenheit o Celsius y presentar en pantalla su transformación en la otra medida.

+Formula de Fahrenheit a Celsius o Celsius a Fahrenheit

\[Fahrenheit=(Celsius*1,8)+32\] \[Celsius=\frac{Fahrenheit-32}{1,8}\]

##Ingrese la temperatura.
t <- as.numeric(readline("Ingrese la temperatura:"))
## Ingrese la temperatura:
##medida: Ingrese f si la temperatura esta en Farenheit o c si la temperatura esta en Celsius.
m <- as.character(readline("Ingrese f si la temperatura esta en Farenheit o c si la temperatura esta en Celsius:"))
## Ingrese f si la temperatura esta en Farenheit o c si la temperatura esta en Celsius:
##Usamos el comando if para que la operaci?n se ejecute ?nicamente cuando una condici?n se cumple y else,
##muestra que hacer cuando una condici?n no se cumple.
if(m == "F"|m == "f"){
  c <- (t-32)/1.8
  cat("Los grados en Celsius es de:",c,"C")
}else{
  if(m=="C"|m=="c")
h<- (t*1.8)+32
cat("Los grados en Farenheit es de: ", h ,"F")
}
## Los grados en Farenheit es de:  NA F

EJERCICIO 12

  1. Escribir un programa que pregunte al usuario por el número de horas trabajadas y el coste por hora. Después debe mostrar por pantalla la paga que le corresponde, además debe preguntar si existen horas extras que tienen un valor diferente y con estos valores se calcule la paga correspondiente
##Numero de horas trabajadas
ht <- as.numeric(readline("Ingrese su número de horas trabajadas: "))
## Ingrese su número de horas trabajadas:
##Valor por hora
vt <- as.numeric(readline("Ingrese el valor de cada hora: "))
## Ingrese el valor de cada hora:
##Calculo
pc <- ht*vt
##Horas extra
hx <- as.character(readline("¿Trabajo horas extra? Si o No "))
## ¿Trabajo horas extra? Si o No
if(hx=="Si"|hx=="si"|hx=="Si"|hx=="si"|hx=="SI"|hx=="SI"){
  ##numero de hora extra
  hx1 <- as.numeric(readline("Ingrese su numero de horas extras trabajadas "))
  ##valor de hora extra
  vx <- as.numeric(readline("Ingrese el valor de hora extra "))
  ##calculo
  pc1 <- hx1*vx
  ##valor final de hora extra
  cat("Su valor correspondiente de paga es: ",pc+pc1)
} else{
  cat("Su valor correspondiente de paga es: ",pc)
}
## Su valor correspondiente de paga es:  NA

EJERCICIO 13

  1. Escribir un programa que lea un entero positivo, n, introducido por el usuario y después muestre en pantalla la suma de todos los enteros desde 1 hasta n. La suma de los n primeros enteros positivos puede ser calculada de la siguiente forma:

suma=n(n+1)2

x <- as.numeric(readline("Por favor introduzca un número entero: "))
## Por favor introduzca un número entero:
suma <- (x*(x+1))/2
cat("La suma de un número entero es: ", suma)
## La suma de un número entero es:  NA

EJERCICIO 14

  1. Escribir un programa que pida al usuario su peso (en kg) y estatura (en metros), calcule el índice de masa corporal y lo almacene en una variable, y muestre por pantalla la frase Tu índice de masa corporal es donde es el índice de masa corporal calculado redondeado con dos decimales.

\[IMC=\frac{peso(kg)}{altura^2(m)}\]

##Calculo IMC
##Ingrese su peso
peso <- as.numeric(readline("Ingrese su peso en kg: "))
## Ingrese su peso en kg:
##Ingrese su estatura
estatura <- as.numeric(readline("Ingrese su estatura en metros: "))
## Ingrese su estatura en metros:
##Calculo IMC
imc <- (peso/estatura**2)
##redondear
redondear <- function(imc){
  entero <- floor(imc)
  decimal <- imc-entero
  decimales <- decimal*100
  redondeo <- floor(decimales+0.5)/100
  return(entero+redondeo)
}
##imc
imc <- redondear(imc)
##resultado
cat("Tu índice de masa corporal es ",imc)
## Tu índice de masa corporal es  NA

EJERCICIO 15

  1. Escribir un programa que pregunte al usuario una cantidad a invertir, el interés anual y el número de años, y muestre por pantalla el capital obtenido en la inversión
## Ingrese la cantidad que va invertir.
i <- as.numeric(readline("Ingrese la cantidad que va a invertir:"))
## Ingrese la cantidad que va a invertir:
##Interes anual de inversi?n.
r <- as.numeric(readline("Interes anual de inversi?n:"))
## Interes anual de inversi?n:
##Ingrese el n?mero de a?os.
a <- as.numeric(readline("Ingrese el n?mero de a?os:"))
## Ingrese el n?mero de a?os:
##Realizamos la operaci?n.
k <- i*(1+r)^a
##Usamos "cat",para mostrar el resultado.
cat("El capital a obtener dentro de" ,a,"a?os es de: ",round(k,2))
## El capital a obtener dentro de NA a?os es de:  NA

Ejercicio 16

16.Realizar un programa que pida el tiempo ya sea en horas, minutos o segundos, luego indicar en qué tipo de tiempo desea transformar y luego presentar el resultado

grafico 16

## Ingresa el número de horas

h<-as.numeric(readline("Ingresa el número de horas: "))
## Ingresa el número de horas:
## realizar los ejercicios
m <- h*60
s <- h*3600
## Transformando el resultado es NA minutos y en segundos es  NA
cat("Transformando el resultado es",m,"minutos y en segundos es ",s)
## Transformando el resultado es NA minutos y en segundos es  NA

Ejercicio 17

17.Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.

grafico 17

## Ingresa un número
n1<-as.numeric(readline("Ingresa un número: "))
## Ingresa un número:
## Ingresa un número
n2<-as.numeric(readline("Ingresa un número: "))
## Ingresa un número:
## Ingresa un número
n3<-as.numeric(readline("Ingresa un número: "))
## Ingresa un número:
## Ingresa un número
n4<-as.numeric(readline("Ingresa un número: "))
## Ingresa un número:
## Ingresa un número
n5<-as.numeric(readline("Ingresa un número: "))
## Ingresa un número:
## numeric(0)
v <-c(n1,n2,n3,n4,n5)
sort(v)
## numeric(0)

Ejercicio 18

18.Escribir un programa que calcule el factorial de un número que ha sido digitado por el usuario.

grafico 18

Paso 1: En este caso usaremos la función Fuction para poder definir una variable como función

Paso 2: También definiremos una función como numérica para decirle al usuario que ingrese un numero para realizar la operación planteada.

Paso 3: Por ultimo con el comando cat y fact reflejamos el resultado obtenido

facto <- function(){
  n <- as.integer(readline("Ingrese por favor un numero para calcular el factorial: "))
  n<-30
  
  fact = 1
  for( i in 1:n) {
    fact = fact * i
  }
  cat("El factorial del valor", n,"!", "es:", fact )
}
facto()
## Ingrese por favor un numero para calcular el factorial: 
## El factorial del valor 30 ! es: 2.652529e+32
## Ingrese por favor un numero para calcular el factorial:

factorial(5)
## [1] 120

Ejercicio 19

19.Escribir un programa que pida un numero e indique si el numero es primo o no

grafico 19

Paso 1: Creamos una variable donde nos pida ingresar un numero

Paso 2: Con el signo % realizaremos la operacion de division y con ella obtendremo el cociente del ejercicio y si es primo o no

Paso 3: En la parte del resultado con el numero 2 puesto obtendremos la respuesta de la operacion anterior si es primo o no un numer

numero<-as.numeric(readline("INGRESE UN NUMERO POR FAVOR: "))
## INGRESE UN NUMERO POR FAVOR:
## INGRESE UN NUMERO POR FAVOR:
numero<-8
p<-(sum(numero/1:numero==numero%/%1:numero))
p==2
## [1] FALSE

Ejercicio 20

20.Escribir un programa que pida un número e indique si el número es par o impar

grafico 20

Paso 1: Pediremos al usuario que ingrese un numero cualquiera mediante una variable

Paso 2: Con el signo %% obtendremos un cociente de la division y con este sabremos si es par o impar dependiendo de lo que nos salga en una division para 2

Paso 3: Con la funcion CAT se obtendran 2 resultados uno donde el numero salga par o impar dependiendo del resultado este saltara un mensaje con las palabras en ingles TRUE o FALSE donde TRUE significa que es ese el resultado correct

## Ingrese un número por favor :
n1<-as.numeric(readline("Ingrese un número por favor : "))
## Ingrese un número por favor :
##Realizar las operaciones
par<- n1%%2==0
impar<-n1%%2==1

##Resultado

cat("El número que usted ingreso es par: ",par)
## El número que usted ingreso es par:  NA
cat("El número que usted ingreso es impar: ",impar)
## El número que usted ingreso es impar:  NA