En el presente documento podrá encontrar 20 ejercicios sencillos realizados en el programa Rstudio, cada uno con su respectivo planteamiento del problema y resultados.
Para la elaboración de los mismos, se utilizaron funciones básicas que se encuentran en el mismo programa.
Ejercicio N°1
Escribe un programa que solicite los catetos de un triángulo rectángulo y muestre su hipotenusa.
1.Para obtener la hipotenusa de un triángulo, es necesario la aplicación de la fórmula siguiente:
2.En el programa RStudio se hará que el usuario que ingrese el valor del cateto A. readline lee la entrada del usuario como una cadena de texto, y as.numeric convierte esa cadena a un valor numérico. El resultado se almacena en la variable num1.
num1<- as.numeric(readline("Ingrese el cateto A: "))
## Ingrese el cateto A:
num1<-8
cat("El cateto A es: ", num1)
## El cateto A es: 8
num2<- as.numeric(readline("Ingrese el cateto B: "))
## Ingrese el cateto B:
num2<-20
cat("El cateto B es: ", num2)
## El cateto B es: 20
6.Calcula la hipotenusa (h) utilizando el teorema de Pitágoras,que establece que en un triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos. sqrt es la función para calcular la raíz cuadrada en R.
h<- sqrt((num1)**2 +(num2)**2)
cat("La hipotenusa del triángulo rectángulo es: ", h)
## La hipotenusa del triángulo rectángulo es: 21.54066
Ejercicio N°2
Escribe un programa que calcule las soluciones de una ecuación de segundo grado de la forma ax2+bx+c=0ax^2+bx+c=0
Se procede a calcular el discriminante y las soluciones usando la fórmula cuadrática, y luego imprime los resultados en la consola.
El programa solicita al usuario que ingrese el valor de a, b y c mediante “readline”. Cada valor se almacena en las variables “num1”, “num2”, y “num3” después de convertirlos a valores numéricos usando “as.numeric”.
num1 <- as.numeric(readline("Ingrese el valor de a: "))
## Ingrese el valor de a:
num1<- 2
cat("El valor de a es: ", num1, "\n")
## El valor de a es: 2
num2 <- as.numeric(readline("Ingrese el valor de b: "))
## Ingrese el valor de b:
num2<-5
cat("El valor de b es: ", num2, "\n")
## El valor de b es: 5
num3 <- as.numeric(readline("Ingrese el valor de c: "))
## Ingrese el valor de c:
num3 <- 2
cat("El valor de c es: ", num3, "\n")
## El valor de c es: 2
8.Se calcula el discriminante ( b-4 ac ) y se almacena en la variable “discriminante”.
discriminante <- (num2^2) - (4 * num1 * num3)
9.Se calculan las soluciones X1 y X2 usando la fórmula cuadrática
\[ ax^2 + bx + c = 0 \]
10.Verificar si el discriminante es no negativo antes de calcular las soluciones Impresión de resultados: Se imprime el valor de cada coeficiente y las soluciones en la consola usando “cat”.
if (discriminante >= 0) {x1 <- (-(num2) + sqrt(discriminante)) / (2 * num1)
x2 <- (-(num2) - sqrt(discriminante)) / (2 * num1)
cat("Solución 1: ", x1, "\n")
cat("Solución 2: ", x2, "\n")
} else {
cat("La ecuación cuadrática no tiene soluciones reales.\n")
}
## Solución 1: -0.5
## Solución 2: -2
Ejercicio N°3
Calcular el área del triángulo rectángulo dadas su base y altura.
Base1<-as.numeric(readline("INGRESE LA BASE DEL TRIANGULO"))
## INGRESE LA BASE DEL TRIANGULO
Base1 <- 2
3.Solicita al usuario que ingrese la altura, la convierte a un valor numérico y la almacena en la variable “Altura”.
Altura<-as.numeric(readline("INGRESE LA ALTURA DEL TRIANGULO"))
## INGRESE LA ALTURA DEL TRIANGULO
Altura<-3
4.Calcula el área del triángulo rectángulo aplicando la fórmula que multiplica la base por la altura sobre 2. El valor se almacena en la variable “Area_Triang_Rect”.
Area_Triang_Rect<-(Base1*Altura)
cat("El área del Triángulo Rectángulo es:",Area_Triang_Rect)
## El área del Triángulo Rectángulo es: 6
Ejercicio N°4
Calcular el área y perímetro de un rectángulo dado su base y altura.
2.Solicita al usuario que ingrese la longitud de la base del rectángulo. “readline” toma la entrada del usuario como una cadena de texto, y “as.numeric” la convierte a un valor numérico. El resultado se almacena en la variable “base”.
base <- as.numeric(readline("Ingrese la base del rectángulo: "))
## Ingrese la base del rectángulo:
base <- 2
3.Similar al paso anterior, solicita al usuario que ingrese la longitud de la altura del rectángulo, la convierte a un valor numérico y la almacena en la variable “altura”.
altura <- as.numeric(readline("Ingrese la altura del rectángulo: "))
## Ingrese la altura del rectángulo:
altura <-2
4.Calcula el área del rectángulo multiplicando la base por la altura. El resultado se almacena en la variable “área”.
area <- base * altura
5.Calcula el perímetro del rectángulo utilizando la fórmula \(2 \times (\text(base) + \text(altura))\). El resultado se almacena en la variable “perímetro”.
perimetro <- 2 * (base + altura)
3.Imprime en la consola el resultado del área del rectángulo.
cat("El área del rectángulo es: ", area, "\n")
## El área del rectángulo es: 4
cat("El perímetro del rectángulo es: ", perimetro, "\n")
## El perímetro del rectángulo es: 8
Ejercicio N°5
Escribe un programa que solicite calcular el promedio de 3 notas que estén entre 0 y 20.
1.Escribe un programa que solicite calcular el promedio de 3 notas que estén entre 0 y 20.El problema planteado en el código es calcular el promedio de tres notas ingresadas por el usuario.
2.Solicita al usuario que ingrese la primera nota , la convierte a un valor numérico y se almacena en la variable” num1”.
num1 <- as.numeric(readline("Ingrese la primera nota entre 0 y 20: "))
## Ingrese la primera nota entre 0 y 20:
num1 <- 20
3.Solicita al usuario que ingrese la segunda nota, la convierte a un valor numérico y la almacena en la variable “num2”.
num2 <- as.numeric(readline("Ingrese la segunda nota entre 0 y 20: "))
## Ingrese la segunda nota entre 0 y 20:
num2 <- 20
4: Solicita al usuario que ingrese la tercera nota, la convierte a un valor numérico y la almacena en la variable “num3”.
num3 <- as.numeric(readline("Ingrese la tercera nota entre 0 y 20: "))
## Ingrese la tercera nota entre 0 y 20:
num3 <- 12
5.Se calcula el promedio sumando las 3 notas y dividiendo por 3.El promedio se almacena en la variable “prom”.
prom<-(num1+num2+num3)/3
6.Se imprime un mensaje en la consola indicando el promedio calculado usando cat().
cat("El promedio de las 3 notas es : ",prom)
## El promedio de las 3 notas es : 17.33333
Ejercicio N°6
Calcular el área y perímetro de la circunferencia dado el radio.
1.Solicita al usuario que ingrese el radio de la circunferencia, la convierte a un valor numérico y se almacena en la variable” Radio”.
Radio <- as.numeric(readline("Ingrese el radio de la circunferencia:"))
## Ingrese el radio de la circunferencia:
Radio<-50
2.Calcula el perímetro de la circunferencia aplicando la fórmula que multiplica pi x 2 x radio. El valor se almacena en la variable “Perimetro”.
Perimetro <- pi*2*Radio
3.Calcula el área del circulo aplicando la fórmula que multiplica; pi x radio^2. El valor se almacena en la variable “Area”.
Area <- pi*(Radio)^2
4.Se imprime un mensaje en la consola indicando el área y perimetro de la circunferencia usando cat().
cat("El area de la circunferencia es:",Area)
## El area de la circunferencia es: 7853.982
cat("El perimetro de la circunferencia es:",Perimetro)
## El perimetro de la circunferencia es: 314.1593
Ejercicio N°7
Escribe un programa que solicite calcular el área y perímetro de un trapecio dado su base mayor, base menor y altura.
1.Se pide al usuario ingresar el valor de la base mayor del trapecio y se almacena en la variable “num1”.Imprime en la consola el valor de la base mayor que se acaba de ingresar.
{r}
num1 <- as.numeric(readline(“Ingrese un valor para la base mayor:”)) cat(“El valor dela base mayor es:”,num1 )
num1<-20
2.Se pide al usuario ingresar el valor de la base menor del trapecio y se almacena en la variable “num2”.
num2 <- as.numeric(readline("Ingrese un valor para la base menor: "))
## Ingrese un valor para la base menor:
cat("El valor de la base menor es: ",num2 )
## El valor de la base menor es: NA
num2<-18
3.Se pide al usuario ingresar el valor de la altura del trapecio y se almacena en la variable “num3”.Imprime en la consola el valor de la altura que se acaba de ingresar.
num3 <- as.numeric(readline("Ingrese un valor para la altura: "))
## Ingrese un valor para la altura:
cat("El valor de la altura es: ",num3 )
## El valor de la altura es: NA
num3<-10
4.Se calcula el área como: (base mayor + base menor) / 2 * altura. Este resultado se almacena en la variable “área”.
area <- ((num1 + num2) / 2) * num3
5.Se calcula la longitud de los lados no paralelos como: (base mayor - base menor) / 2. Este resultado se almacena en la variable “longitud”.
longitud <- (num1 - num2) / 2
6.Se calcula la longitud de los lados no paralelos usando pitágoras: raíz cuadrada de (altura^2 + lado^2). El resultado se almacena en la variable “lado”.
lado <- sqrt((num3**2) + (longitud**2))
7.Se calcula el perímetro como: base mayor + base menor + lado + lado. El resultado se almacena en la variable” perímetro”.
perimetro <- num1 + num2 + lado + lado
8.Se imprimen en la consola el perímetro y area calculado.
cat("El perímetro es: ", perimetro)
## El perímetro es: 58.09975
cat("El área es: ", area)
## El área es: 190
Ejercicio N°8
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.
1.Ingresar y leer el valor del primer número.
num1=as.numeric(readline("Ingrese el primer valor número: "))
## Ingrese el primer valor número:
num1<-20
2.Ingresar y leer el valor del segundo número.
num2=as.numeric(readline("Ingrese el segundo valor número: "))
## Ingrese el segundo valor número:
num2<-10
3.Comparamos los valores numéricos ingresados para saber si (a) o (b) es mayor o menor.
a=num1>num2
b=num1<num2
4.Comparamos los valores numéricos ingresados para saber si son iguales o distintos.
c=num1==num2
5.Presentamos la respuesta de los números.
cat("La respuesta de los valores numéricos ingresados son: ","\n",
"El resultado de que:",num1,"sea mayor",num2,"es:",a,"\n",
"El resultado de que:",num1,"sea menor",num2,"es:",b,"\n",
"El resultado de que:",num1,"sea igual",num2,"es:",c,"\n")
## La respuesta de los valores numéricos ingresados son:
## El resultado de que: 20 sea mayor 10 es: TRUE
## El resultado de que: 20 sea menor 10 es: FALSE
## El resultado de que: 20 sea igual 10 es: FALSE
Ejercicio N°9
Escribe un programa que lea dos números y muestre en la salida su suma, resta, multiplicación y división.
1.Ingresamos los valores numéricos.
num1 <- as.numeric(readline("Ingrese el primer valor número: "))
## Ingrese el primer valor número:
num2 <- as.numeric(readline("Ingrese el segundo valor número: "))
## Ingrese el segundo valor número:
num1<-85
num2<-60
2.Aplicamos las FORMULAS para la suma, multiplicación y división.
suma <- (num1+num2)
resta <- (num1-num2)
multi <- (num1*num2)
divi <- (num1/num2)
3.salida del programa
cat("Los resultados de las siguientes operaciones son:", "\n",
"SUMA: ",num1,"+",num2,"=",suma,"\n",
"RESTA: ",num1,"-",num2,"=",resta,"\n",
"MULTIPLICACIÓN: ",num1,"*",num2,"=",multi,"\n",
"DIVISIÓN: ", num1,"/",num2,"=",divi)
## Los resultados de las siguientes operaciones son:
## SUMA: 85 + 60 = 145
## RESTA: 85 - 60 = 25
## MULTIPLICACIÓN: 85 * 60 = 5100
## DIVISIÓN: 85 / 60 = 1.416667
Ejercicio N°10
Realice un Programa que pida una cantidad en dólares y como resultado se visualice el IVA (12%) y el valor total a pagar.
1.Se solicita al usuario que ingrese el subtotal a pagar y se almacena como un número.
num1 <- as.numeric(readline("Ingrese el subtotal a pagar: "))
## Ingrese el subtotal a pagar:
num1<-65
2.Se calcula el IVA aplicando el 12% al subtotal. Esto se hace multiplicando “num1” por 0.12 y almacenando el resultado en la variable” iva”.
iva <- num1 * 0.12
3.Se calcula el total sumando el subtotal (num1) más el IVA calculado (iva). Este resultado se almacena en la variable “total”.
total <- num1 + iva
cat("El valor ingresado es: ", num1)
## El valor ingresado es: 65
cat("El valor del IVA es: ", iva)
## El valor del IVA es: 7.8
cat("El valor total es: ", total)
## El valor total es: 72.8
Ejercicio N°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.
\[ °F=(°C\times\frac{9}{5})+32\]
temperatura <- as.numeric(readline("Ingrese la temperatura: "))
## Ingrese la temperatura:
unidad <- readline("Ingrese la unidad en mayúsculas (F o C): ")
## Ingrese la unidad en mayúsculas (F o C):
if (unidad == "C") {
fahrenheit <- (1.8 * temperatura) + 32
cat("La temperatura en Fahrenheit es: ", fahrenheit, " °F")
}else if (unidad == "F") {
celsius <- (temperatura - 32) / 1.8
cat("La temperatura en Celsius es: ", celsius, " °C")
}else {
#Mostrar un mensaje de error
cat("Unidad no válida. Por favor, ingrese F o C.")
}
## La temperatura en Celsius es: 10 °C
Ejercicio N°12
Escribir un programa que pregunte al usuario por el número de horas trabajadas y el costo 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.
hora <- as.numeric(readline("Ingrese las horas trabajadas (hora): "))
## Ingrese las horas trabajadas (hora):
costo <- as.numeric(readline("Ingrese el costo por hora ($): "))
## Ingrese el costo por hora ($):
pago <- hora * costo
cat("Sus horas trabajadas son de: ", hora, "\n", "El costo por hora es de: ", costo, "\n","Su pago correspondiente es de: $", pago, " dólares.\n")
## Sus horas trabajadas son de: 50
## El costo por hora es de: 20
## Su pago correspondiente es de: $ 1000 dólares.
extra <- as.character(readline("¿Dispone de horas extras? (si/no): "))
## ¿Dispone de horas extras? (si/no):
if (extra == "si") {
hora_1 <- as.numeric(readline("Ingrese las horas extras trabajadas (hora): "))
costo_1 <- as.numeric(readline("Ingrese el costo por hora extra ($): "))
pago_1 <- hora_1 * costo_1
cat("Sus horas extras trabajadas son de: ", hora_1, "\n",
"El costo por hora extra es de: ", costo_1, "\n",
"Su pago correspondiente por horas extras es de: $", pago_1, " dólares.\n")s
cat("El total del pago es de: $", pago + pago_1, " dólares.\n")
} else {
cat("Gracias por utilizar el programa.\n")
}
## Ingrese las horas extras trabajadas (hora):
## Ingrese el costo por hora extra ($):
## Sus horas extras trabajadas son de: 20
## El costo por hora extra es de: 5
## Su pago correspondiente por horas extras es de: $ 100 dólares.
## El total del pago es de: $ 1100 dólares.
Ejercicio N°13
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.
\[\text{Suma} = \frac{n(n+1)}{2}\]
n <- as.integer(readline("Ingrese un número entero positivo: "))
## Ingrese un número entero positivo:
if (is.na(n) || n <= 0) {
cat("Por favor, ingrese un número entero positivo.\n")
} else {
suma <- n * (n + 1) / 2
cat("La suma de los primeros", n, "números es:", suma, "\n")
}
## La suma de los primeros 20 números es: 210
Ejercicio N°14
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
1.Para poder obtener índice corporal de una persona, se utilizará la siguiente fórmula:
\[\text{ ÍNDICE DE MASA CORPORAL}\]
\[\text{IMC} = \frac{Peso (Kg)}{Altura^2(m^2)}\]
peso<-as.numeric(readline("Ingrese su peso en kg: "))
## Ingrese su peso en kg:
altura<-as.numeric(readline("Ingrese su altura en metros: "))
## Ingrese su altura en metros:
3.Se asigna una variable para calcular el índice de masa corporal y se redondea el resultado a dos decimales con “round”
imc <- round(abs(peso / altura^2),2)
gr<-imc>=30
fl<-imc<=18
no<-imc>18 & imc<30
cat("Tu índice de masa corporal es: ", imc)
## Tu índice de masa corporal es: 17.3
cat("Usted padece de sobrepeso: ", gr)
## Usted padece de sobrepeso: FALSE
cat("Usted se encuentra demasiado delgado para su estatura: ", fl)
## Usted se encuentra demasiado delgado para su estatura: TRUE
cat("Usted se encuntra en un imc normal: ", no)
## Usted se encuntra en un imc normal: FALSE
Ejercicio N°15
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.
1.Se solicita al usuario ingresar la cantidad que desea invertir (cantidad), la tasa de interés anual (interés), y el número de años de la inversión (tiempo).Las entradas se convierten a tipo numérico con “as.numeric”.
cantidad <- as.numeric(readline("Ingrese la cantidad que desea invertir: "))
## Ingrese la cantidad que desea invertir:
interes <- as.numeric(readline("Ingrese el interés anual: "))
## Ingrese el interés anual:
tiempo <- as.numeric(readline("Ingrese el número de años: "))
## Ingrese el número de años:
2.Se utiliza la fórmula de interés compuesto: cantidad + (cantidad * interes / 100) * tiempo.El resultado se almacena en la variable “total”.
total <- cantidad + (cantidad * interes / 100) * tiempo
3.Se imprime en la consola el total de la inversión en dólares.
cat("El total de su inversión es de: ", total, " dólares\n")
## El total de su inversión es de: 3500 dólares
Ejercicio N°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.
horas <- as.numeric(readline("Ingrese el número de horas a transformar: "))
## Ingrese el número de horas a transformar:
minutos <- as.numeric(readline("Ingrese el número de minutos a tranformar: "))
## Ingrese el número de minutos a tranformar:
segundos <- as.numeric(readline("Ingrese el número de segundos a transformar: "))
## Ingrese el número de segundos a transformar:
cat("El número de horas ingresadas, equivalen a: \n\n", horas*(60/1), "minutos \n\ y a", horas*(3600/1),"segundos")
## El número de horas ingresadas, equivalen a:
##
## 1440 minutos
## y a 86400 segundos
cat("El número de minutos ingresados, equivalen a: \n\n", minutos*(1/60), "horas \n\ y a", minutos*(60/1), "segundos")
## El número de minutos ingresados, equivalen a:
##
## 0.5 horas
## y a 1800 segundos
cat("El número de segundos ingresados, equivalen a: \n\n", segundos*(1/3600), "horas \n\ y a", segundos*(1/60), "minutos")
## El número de segundos ingresados, equivalen a:
##
## 0.001388889 horas
## y a 0.08333333 minutos
Ejercicio N°17
Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.
numbers <- scan(text = readline("Ingrese varios números separados por espacios: "), what = numeric()) # Ordenar los números sorted_numbers <- sort(numbers)
## Ingrese varios números separados por espacios:
sorted_numbers <- sort(numbers)
cat("Números ordenados: ", sorted_numbers, "\n")
## Números ordenados: 1 3 5 6 10
Ejercicio N°18
Escribir un programa que calcule la factorial de un número que ha sido digitado por el usuario.
numero <- as.numeric(readline("Ingrese un número para calcular el factorial: "))
## Ingrese un número para calcular el factorial:
calcular_factorial <- function(n) {
if (n == 0 | n == 1) {
return(1)
} else {
return(n * calcular_factorial(n - 1))
}
}
calcular_factorial <- function(n) {
if (n == 0 | n == 1) {
return(1)
} else {
return(n * calcular_factorial(n - 1))
}
}
calcular_factorial <- function(n) {
if (n == 0 | n == 1) {
return(1)
} else {
return(n * calcular_factorial(n - 1))
}
}
numero <- 5
resultado <- calcular_factorial(numero)
cat("El factorial de", numero, "es:", resultado, "\n")
## El factorial de 5 es: 120
Ejercicio N°19
Escribir un programa que pida un número e indique si el número es primo o no.
numero <- as.numeric(readline("Ingrese un número: "))
## Ingrese un número:
es_primo <- function(n) {
if (n <= 1) {
return(FALSE)
}
for (i in 2:(n-1)) {
if (n %% i == 0) {
return(FALSE)
}
}
return(TRUE)
}
## Es primo: TRUE
numero <- 17
if (es_primo(numero)) {
cat(numero, "es un número primo.\n")
} else {
cat(numero, "no es un número primo.\n")
}
## 17 es un número primo.
Ejercicio N°20
El código proporcionado es un script en R que solicita al usuario ingresar un número y luego indica si es par o impar.
numero <- as.numeric(readline("Ingrese un número: "))
## Ingrese un número:
if (numero %% 2 == 0) {
cat("El número", numero, "es par\n")
} else {
cat("El número", numero, "es impar\n")
}
## El número 6 es par