-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0764f88
commit 946ce18
Showing
2 changed files
with
175 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/usr/bin/env python | ||
# coding: utf-8 | ||
|
||
# # **Script en Python** | ||
|
||
# ### Condicionales | ||
|
||
# In[ ]: | ||
|
||
|
||
# Pregunta 1 | ||
|
||
compra = int(input("¿Cuánto dinero gastas? ")) #se agrega un cuadro para que escojan el valor del gasto | ||
if compra < 100: | ||
print("compra de",compra,"soles y pago en efectivo") | ||
elif 100 < compra < 300: | ||
print("compra de",compra,"soles y pago en débito") | ||
elif compra >= 300: | ||
print("compra de",compra,"soles y pago en crédito") | ||
|
||
|
||
# In[ ]: | ||
|
||
|
||
# Pregunta 2 | ||
|
||
x = int(input("¿valor de x? ")) | ||
if 0 < x < 100: #si se cumple la condición, entonces se resuelve la función Fx | ||
Fx=x**(1/2) | ||
print("F(x) es",Fx) #se devuelve el valor de F(x) | ||
elif 100 < x < 300: | ||
Fx=x-5 | ||
print("F(x) es",Fx) | ||
elif x >= 300: | ||
Fx=50 | ||
print("F(x) es",Fx) | ||
else: | ||
print ("0, X es un número negativo") | ||
|
||
|
||
# La función aplicará las condiciones de acuerdo al valor que se le otorgue a X. | ||
|
||
# ### Loops en Python | ||
|
||
# In[ ]: | ||
|
||
|
||
utilidadesanuales = [100, 152, -1 , 8, 12, 156,35, -10, 100, -0.5, 30, 1050 , 7, -10] | ||
|
||
for utilidad in utilidadesanuales: | ||
if utilidad < 0: | ||
continue #para que no considere los valores negativos y salte al siguiente | ||
if utilidad > 1000 : | ||
break #si supera 1000, se rompe el loop | ||
else: | ||
print("La utilidad neta anual es", utilidad, "millones") | ||
|
||
|
||
# Según lo solicitado, el loop debe detenerse si la utilidad supera los 1000 millones, por lo que se realiza el break despues de "if utilidad > 1000 " y el loop ya no considera los siguientes valores. Por ello, el 7, a pesar de que no sea una utilidad negativa no es considerada por el loop. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
#Tarea 2 | ||
##Parte R | ||
|
||
# 1) Condicionales #### | ||
|
||
###Pregunta 1 #### | ||
|
||
compra <- 4000 #se realizara una condicional con tres alternativas evitando el else, ya que se entiende que el pago es un número positivo | ||
|
||
if (compra < 100) { | ||
|
||
print(paste0('compra de ',compra,' soles y pago en efectivo')) | ||
} else if (100 < compra & compra < 300) { | ||
|
||
print(paste0('compra de ',compra,' soles y pago en debito')) | ||
} else if (compra > 300) { | ||
|
||
print(paste0('compra de ',compra,' soles y pago en credito')) | ||
} | ||
#en R para agregar un intervalo se usa & | ||
|
||
###Pregunta 2#### | ||
x = 400 | ||
if (0 < x & x < 100) { #se escribe una funcion cerrada entre 0 y 100 | ||
Fx = x^(1/2) | ||
print(paste0("la funcion F(x) es ",Fx)) | ||
} else if (100 < x & x < 300) { | ||
Fx = x-5 | ||
print(paste0("la funcion F(x) es ",Fx)) | ||
} else if (x >= 300) { | ||
Fx = 50 | ||
print(paste0("la funcion F(x) es ",Fx)) | ||
} else { #se agrega el else, ya que se le puede dar valor de negativos a Fx | ||
print ("0, X es un numero negativo") | ||
} | ||
# 2) Loops en R #### | ||
|
||
utilidades_anuales <- c(100, 152, -1 , 8, 12, 156, 35, -10, 100, -0.5, 30, 1050, 7, -10) | ||
|
||
for (utilidad in utilidades_anuales) { | ||
if (utilidad < 0) { #indicamos que la utilidad no puede ser menor a 0 | ||
next # para saltar los valores negativos | ||
} else if (utilidad > 1000) { | ||
break # romper el loop cuando la utilidad es mayor a 1000 millones | ||
} else { | ||
print(paste("La utilidad neta anual es", utilidad, "millones")) | ||
}} | ||
#Según lo solicitado, el loop debe detenerse si la utilidad supera los 1000 millones, por lo que se realiza el break despues de "if utilidad > 1000 " y el loop ya no considera los siguientes valores. Por ello, el 7, a pesar de que no sea una utilidad negativa no es considerada por el loop. | ||
|
||
|
||
# 3) Funciones #### | ||
|
||
###Función para calcular el factorial #### | ||
###En el ejemplo mostrado a continuación, creamos la función para resolver el factorial del múmero 5, que es 120. | ||
|
||
num=5 | ||
fact= 1 | ||
if (num < 0) { | ||
print("Factorial para números negativos no está permitido") | ||
} else if (num == 0) { | ||
print("El factorial de 0 es 1") | ||
} else { | ||
for(i in 1:num){ | ||
fact=fact*i | ||
} | ||
print(fact) | ||
} | ||
|
||
|
||
|
||
###Función de masa corporal#### | ||
###La siguiente función entre 4 outputs: el dato de peso, el dato de talla, el indice corporal y clasificación. | ||
|
||
calculator <- function(x,y) | ||
{ | ||
result = x/y^2 | ||
|
||
if (result <= 18.4) {return( cat("peso:", x,"talla:",y, "índice corporal:", result,"introducir valores nuevamente"))} | ||
else if(result <=24.9){return( cat("peso:", x,"talla:",y, "índice corporal:", result,"la clasificación es normal"))} | ||
else if(result <= 29.9) {return( cat("peso:", x,"talla:",y, "índice corporal:", result,"la clasificación es sobrepeso"))} | ||
else if(result <= 34.9) {return( cat("peso:", x,"talla:",y, "índice corporal:", result,"la clasificación es obesidad grado 1"))} | ||
else if(result <= 39.9) {return( cat("peso:", x,"talla:",y, "índice corporal:", result,"la clasificación es obesidad grado 2"))} | ||
else if(result <= 40) {return( cat("peso:", x,"talla:",y, "índice corporal:", result,"la clasificación es obresidad grado 3"))} | ||
} | ||
calculator(70,1.5) | ||
calculator(85,1.8) | ||
calculator(50,1.6) | ||
|
||
|
||
###Función aplicado a dos activos financieros#### | ||
|
||
###Coeficiente de correlación | ||
|
||
library(readr) | ||
Portafolio <- read_csv("~/GitHub/1ECO35_2023_1/data/Portafolio.csv") | ||
alpha <- function(data){ | ||
X <- data$X | ||
y <- data$Y | ||
coeficiente= cov(X,y)/sqrt(var(X))*sqrt(var(y)) | ||
return(coeficiente) | ||
} | ||
alpha(Portafolio) | ||
|
||
|
||
###Varianza portafolio | ||
|
||
wx=0.2 | ||
wy=0.8 | ||
alpha2 <- function(data){ | ||
X <- data$X | ||
y <- data$Y | ||
varianza= wx^2*var(X)+wy^2*var(y)+2*wx*wy*cov(X,y) | ||
return(varianza) | ||
} | ||
alpha2(Portafolio) | ||
|