You are on page 1of 27

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación

Laboratorio #2

Universidad Del Valle | Sede Cali

Materia: Informática I

Programa: Ingeniería química

Informe de Laboratorio

Docente: Jose Alejandro Libreros

Estudiantes: Grupo 4 informática I

Ana María Moncada Crespo

Karol Steffany Montaño Naranjo

Nicolás Bolaños Serrato

Sara Gabriela Chagüendo Murillo

Maria Camila Moreno Plaza

02/06/2023
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

1. Análisis del problema

● Problema 1 [16pts].
En la “FunciónMisterio1” se tienen dos parámetros de entrada, “a” y “b”. Valores
con que se realizan los cálculos que arrojan los resultados.
“If”, condición que verifica si “a>5” y si “b<0”. Si las dos condiciones son
verdaderas “a-b” se guarda el resultado como variable “S”.
“Elif”, condición que verifica si “a=5” y “b=0”, si las dos condiciones son
verdaderas “a+b” se guarda el resultado como variable “S”.
“Else”, condición que se ejecuta sólo si ninguna de las condiciones anteriores se
cumplen, entonces “a*b” se guarda el resultado como variable “S”.
En la “FuncionMisterio2” se inicia con “x=10”
“If”, condición que verifica si “var1<var2” si condición es verdadera “var2*2” y el
resultado se le asigna a “var1”
Luego se llama a la “FuncionMisterio1” con los valores de “var1” y “x”, su
resultado se guarda como variable “a”
Si la condición de “If” es falsa se de asigna a “a” el valor de “x”

● Problema 2 [18pts]
Este problema pide un programa que resuelva diversas operaciones matemáticas.
El pseudocódigo a realizar consiste en una serie de funciones para convertir
ángulos entre grados y radianes, así como para calcular el seno, coseno, tangente y
expresiones matemáticas utilizando funciones trigonométricas.

La función para convertir ángulos a radianes recibe un ángulo en grados como


parámetro, utiliza la función "radians" para convertir el ángulo a radianes y lo
redondea a 2 decimales. Luego, devuelve el resultado.

Imagen 1.
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

La función para convertir radianes a ángulos recibe un valor en radianes como


parámetro. Utiliza la función "degrees" para convertir el valor a grados y lo redondea
a 2 decimales. Luego, devuelve el resultado.

Imagen 2.

La función para calcular seno recibe un ángulo en grados como parámetro. Utiliza la
función "radians" para convertir el ángulo a radianes, luego utiliza la función "sin"
para calcular el seno del ángulo en radianes y redondea el resultado a 2 decimales.
Finalmente, devuelve el resultado.

Imagen 3.

La función para calcular coseno recibe un ángulo en grados como parámetro. Utiliza
la función "radians" para convertir el ángulo a radianes, luego utiliza la función "cos"
para calcular el coseno del ángulo en radianes y redondea el resultado a 2
decimales. Finalmente, devuelve el resultado.
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 4.

La función para calcular tangente recibe un ángulo en grados como parámetro.


Utiliza la función "radians" para convertir el ángulo a radianes, luego utiliza la
función "tan" para calcular la tangente del ángulo en radianes y redondea el
resultado a 2 decimales. Finalmente, devuelve el resultado.

Imagen 5.

La función para calcular expresión recibe un valor alfa como parámetro. Calcula el
numerador multiplicando alfa por el seno de alfa (previamente convertido a
radianes) y calcula el denominador sumando 1 a alfa. Luego, divide el numerador
entre el denominador y redondea el resultado a 2 decimales. Finalmente, devuelve
el resultado.
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 6.

La función para calcular expresión recibe tres parámetros: alfa, beta y gamma.
Utiliza las funciones trigonométricas "cos" y "sin" para calcular el producto de
cos(alfa) y sin(beta), previamente convertidos a radianes. Luego, eleva el resultado
a la potencia de gamma y redondea el resultado a 2 decimales. Finalmente,
devuelve el resultado.

Imagen 7

En cada caso, se solicita al usuario ingresar los valores necesarios para realizar los
cálculos

● Problema 3 [17pts]
En este problema se pide crear un código en python o google colab que
permita determinar si un estudiante aprobó o reprobó una materia. Lo primero que
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

se suele pedir en este tipo de formato es el nombre del usuario, también se pide
cada una de las notas del estudiante

Imagen 8.

Siguiente a esto en el pseudocódigo se realiza una función que logre calcular con
los datos aportados el promedio ponderado del usuario. En este caso la nota del
proyecto vale el 30%, la nota del primer parcial un 15%, la del segundo parcial 25%
y el promedio de los laboratorios un 30%

Imagen 9.

Por último se definen si el promedio ponderado está en el rango de aprobación de la


materia, arrojando también este resultado al usuario

Imagen 10

● Problema 4 [16pts]
En este problema se presentan distintos errores en el pseudocódigo, se supone que
el programa deberá imprimir el número 2 si se ingresan valores como x=5 , y=1 pero
en su lugar imprime 5.
Como primer paso se debe utilizar los parámetro “a” y “b” en la funciones máximos()
y mínimos()
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 11.

Lo siguiente es agregar a el código de manera en que el usuario pueda digitar los


valores de “x” y de “y” y se verifican los parámetros del programa principal

Imagen 12.

● Problema 5 [17pts]
En este punto, se solicita un programa que permita calcular la distancia recorrida por
un proyectil, por tanto se necesita que el usuario seleccione la opción de entrada de
datos (a, b o c)
Si la opción es "b" o "B", se solicita al usuario que ingrese la altura máxima (altmax)
y el ángulo inicial (θ) en grados. Luego, el programa calcula la velocidad inicial (Vi)
utilizando una fórmula dada. Después, se calcula el tiempo de vuelo (t) y finalmente
se calcula la posición horizontal (x) utilizando las fórmulas correspondientes. El valor
de x se muestra
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 13.

Si la opción es "a" o "A", se solicita al usuario que ingrese la velocidad inicial (Vi) y el
ángulo inicial (θ) en grados. Luego, el programa calcula el tiempo de vuelo (t)
utilizando una fórmula dada. Después, se calcula la posición horizontal (x) utilizando
las fórmulas correspondientes. El valor de x se muestra

Imagen 14.

Si la opción es "c" o "C", se solicita al usuario que ingrese el tiempo (t) y el ángulo
inicial (θ) en grados. Luego, el programa calcula la velocidad inicial (Vi) utilizando
una fórmula dada. Después, se calcula la posición horizontal (x) utilizando las
fórmulas correspondientes. El valor de x se muestra.

Imagen 15.

● Problema 6 [16pts]
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

El programa permite al usuario ingresar los coeficientes de una función cuadrática y


calcula las raíces de esa función utilizando la fórmula general. Se utiliza la función
llamada "calcular raíces" para realizar los cálculos y devuelve las raíces
correspondientes según los casos posibles.
El código comienza importando el módulo "math" para utilizar funciones
matemáticas adicionales, luego se define la función llamada "calcular raíces" que
toma tres parámetros: a, b y c, que corresponden a los coeficientes de la función
cuadrática de la forma ax^2 + bx + c. Dentro de la función, se calcula el
discriminante utilizando la fórmula discriminante = (b^2) - (4ac).

Imagen 16.

Si el discriminante es mayor que 0, significa que hay dos raíces reales distintas. Se
calculan las raíces utilizando las fórmulas conocidas y se devuelven como resultado.
Si el discriminante es igual a 0, significa que hay una raíz real (una raíz doble). Se
calcula la raíz utilizando la fórmula correspondiente y se devuelve como resultado.
Si el discriminante es menor que 0, significa que hay raíces complejas conjugadas.
Se calculan las raíces utilizando números complejos y se devuelven como resultado.
Luego, se le pide al usuario ingresar los valores de los coeficientes “a, b y c”.
Por último se utiliza la función destinada a calcular las raíces con los datos
proporcionados por el usuario para de esta manera obtener las raíces de la función
cuadrática.

2. Prueba de escritorio

● Problema #1

i) Al ejecutar la función
F1= funcionMisterio1(1, 2)
Print(F1)
La respuesta es 2
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

a b Evaluación de Acción a Proceso Valor


condición tomar de s

1 2 else S=a*b S=1*2 2

Tabla 1. Prueba de escritorio problema #1 parte i

ii) Al ejecutar la función


F2= funcionMisterio2(1, 2)
Print(F1)
La respuesta es 40.0

Var Var X Evaluación Acción a Proceso Valor


1 2 de tomar de s
condición

1 2 10 If Var1=var2 * 2 S = 4 * 10 40
var1<var2 =4
Tabla 2. Prueba de escritorio problema #1 parte ii

iii) Al ejecutar la función


F2= funcionMisterio1(-2, -1)
Print(F1)
La respuesta es 2

a b Evaluación de Acción a Proceso Valor


condición tomar de s

-2 -1 else S=a*b S = -2 * -1 2

Tabla 3. Prueba de escritorio problema #1 parte iii

iv) Al ejecutar la función


F2= funcionMisterio2(-2, -1)
Print(F1)
La respuesta es -20.0
Var Var2 X Evaluación de Acción a Proceso Valor
1 condición tomar de s
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

elif Var1 * X S = -2 * 10
-2 -1 10 (var2<var1) -20
Tabla 4. Prueba de escritorio problema #1 parte iv

● Problema #2

Conversión Evaluación de condición Salida


radianes = Resultado en
Convertir ángulos a radianes math.radians(angulo)' radianes
angulo = Resultado en
Convertir radianes a ángulos match.degrees(radianes)' grados
seno =
math.sin(math.radians(an Resultado del
Calcular el seno de un ángulo gulo))' seno
coseno =
match.cos(math.radians(a Resultado del
Calcular el coseno de un ángulo ngulo))' coseno
tangente =
Calcular la tangente de un math.tan(math.radians(an Resultado de la
ángulo gulo))' tangente
numerador =
alfa*math.sin(math.radia
ns(alfa))
denominador = 1 + alfa
Calcular el resultado de la resultado = numerador / Resultado de la
expresión 𝐹(𝛼) = 𝛼∗𝑆𝑒𝑛(𝛼)/1+𝛼 denominador expresión 𝐹(𝛼)
resultado =
(math.cos(math.radians(a
lfa)) *
Calcular el resultado de la math.sin(math.radians(be Resultado de la
expresión 𝐺(𝛼, 𝛽, 𝛾) ta)))**gamma expresión 𝐺
Tabla 5. Prueba de escritorio problema #2

● Problema #3
Para prueba de escritorio del programa:

Nombre del estudiante: Juan


Nota del proyecto: 4.5
Nota del primer parcial: 3.8
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Nota del segundo parcial: 4.2


Promedio de notas de laboratorio: 3.6

Porcentaje Acción a ejecutar Proceso Salida

Nota del 4.5 30% nota_proyecto*0.30 4.5 * 1.35


proyecto 0.30

Nota del 3.8 15% nota_primer_parcial*0 3.8 * 0.57


primer .15 0.15
parcial

Nota del 4.2 25% nota_segundo_parcial 4.2 * 1.05


segundo *0.25 0.25
parcial

Promedio 3.6 30% nota_laboratorios*0.3 3.6 * 1.08


de notas 0 0.30
de
laboratorio

Nota final nota_final = 1.35 + 4.05


nota_proyecto + 0.57 +
nota_primer_parcial + 1.05 +
nota_segundo_parcial 1.08
+ nota_laboratorios

Aprobó if nota_final > 3 El


estudiante
No aprobó if nota_final < 3 aprobó la
materia
Tabla 6. Prueba de escritorio problema #3

● Problema #4

Valor Valor Proceso Salida


de X de Y

mínimo (x + 2, y - 5) 5 1 5+2=7 2
1 - 5 = -4

máximo (x - 3, mínimo(x + 2, 5-3=2


y - 5)) mínimo = -4

Tabla 7. Prueba de escritorio problema #4


Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

● Problema #5

Entrada Valor Valor Evaluaci Acción a ejecutar Salida


es Ángul ón de esperado
o condició
incial n

a 12 3 if t=(2*Vi*math.sin(θ))/9 1.53592
V0, θ (op=="a" .8
or x=Vi*math.cos(θ)*t
op=="A")

b 45 23 if Vi= 212.02
Ymax (op=="b" math.pow(((19.6*altm
,θ or ax)/(math.sin(θ)*(mat
op=="B")
h.sin(θ)))),0.5)
t=
(Vi*math.sin(θ))/9.8
x= Vi*math.cos(θ)*t

c t, θ 34 45 if Vi= 5664.40{
(op=="c" (t*9.8)/(2*math.sin(θ))
or x= Vi*math.cos(θ)*t
op=="C")
Tabla 8. Prueba de escritorio problema #5

● Problema #6

Variables Entradas de ejemplo Evaluación de Salidas


condiciones esperadas

a 2

b -7

c 3

x 4

y 2

Discrimina 25 Discriminante >


nte 0

raíz_1 3.0
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

raíz_2 0.5

F1 (x**5 / (5 * y)) + (x**4 / 4.766


(4 * y)) + (x**3 / (3 * y))
+ (x**2 / (2 * y)) + 1

F2 y**x Donde F2= 16.0


(If y%2 ==0)
F2= y**x
Tabla 9. Prueba de escritorio problema #6

3. Algoritmo en Python

Problema #1

#Ejercicio 1 laboratorio
opcion = input

opcion = input(“Elige una función misterio (1 o 2”)

if opcion == “1”:
print(“Has elegido la opción 1.”)
def FuncionMisterio1(a, b):
if (a > 5 and b < 0)
S = a - b
elif (a == 5 and b == 0):
S = a + b
else:
S = a * b
return S
a = int(input(“Ingrese el valor de a: “))
b = int(input(“Ingrese el valor de b: “))

resultado = FuncionMisterio1(a, b)
print(“El resultado es:”, resultado)

elif opcion == “2”:


print(“Has elegido la opción 2.”)
def FuncioMisterio2(var1, var2):
x = 10
if (var1 < var2):
var1 = var2 * 2
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

a = FuncionMisterio1(var, x)
elif (var2 < var):
a = FuncionMisterio1(var1, x)
else:
a = x
return a
var1 = int(input(“Ingrese el valor de var1:”))
var2 = int(input(“Ingrese el valor de var2:”))

resulta = FuncionMisterio2(var1, var2)


print(“El resultado es:”, resultado)

else:
print(“Opcion invalida. Debes elegir 1 o 2.”)

Problema #2

#Ejercicio 2 laboratorio
#a)convertir angulos a radianes
import math
def convertir_angulos_a_radianes(angulo):
radianes = math.radians(angulo):
return round(radianes,2)
angulo = float(input(“Ingrese el ángulo en grados: ”))
resultado = convertir_angulos_a_radianes(angulo)
print(“El resultado en radianes es:”, resultado)

#b)Convertir radianes a angulos


import math

def convertir_radianes_a_angulos(radianes):
angulo = math.degrees(radianes)
return round(angulo, 2)

radianes = float(input(“Ingrese el valor en radianes: ”))


resultado = convertir_radianes_a_angulos(radianes)
print(“El resultado en grados es:”, resultado)

#c)sen(α)
import math
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

def calcular_seno(angulo):
seno = math.sin(math.radians(angulo))
return round(seno, 2)

angulo = float(input(“Ingrese el angulo en grados: ”))


resultado = calcular_seno(angulo)
print(“El seno del ángulo es:”, resultado)

#d) cos(α)
import math

def calcular_coseno(angulo):
coseno = math.cos(math.radians(angulo))
return round(coseno, 2)

angulo = float(input(“Ingrese el angulo en grados: ”))


resultado = calcular_coseno(angulo)
print(“El coseno del ángulo es:”, resultado)

# e) tan(α)
import math

def calcular_tangente(angulo):
tangente = math.tan(math.radians(angulo))
return round(tangente, 2)

angulo = float(input(“Ingrese el ángulo en grados: ”))


resultado = calcular_tangente(angulo)
print(“La tangente del ángulo es:”, resultado)

# f) 𝐹(𝛼) = 𝛼∗𝑆𝑒𝑛(𝛼)/1+𝛼
import math

def calcular_expresion(alfa):
numerador = alfa * math.sin(math.radians(alfa))
denominador = 1 + alfa
resultado = numerador / denominador
return round (resultado, 2)

alfa = float(input(“Ingrese el valor de alfa en grados: ”))


resultado = calcular_expresion(alfa)
print(“El resultado de F(α) es:”, resultado)
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

# g) 𝐺(𝛼, 𝛽, 𝛾) = (cos(𝛼) ∗ 𝑠𝑒𝑛(𝛽))**y


import math

def calcular_expresion(alfa, beta, gamma):


resultado = (math.cos(math.radians(alfa)) *
math.sin(math.radians(beta)))**gamma
return round(resultado, 2)

alfa = float(input(“Ingrese el valor de alfa en grados: ”))


beta = float(input(“Ingrese el valor de beta en grados: ”))
gamma = float(input(“Ingrese el valor de gamma: ”))

resultado = calcular_expresion(alfa, beta, gamma)


print(“El resultado de G(𝛼, 𝛽, 𝛾) es:”, resultado)

Problema #3

#Ejercicio 3 laboratorio a.m


#Proyecto 30%
#Primer parcial 15%
#Segundo parcial 25%

#Promedio laboratorios 30%

#Para poder calcular, se pide la información del estudiante


nombre = input(“Ingrese el nombre del estudiante: “)
nota_proyecto = float(input(“Ingrese la nota del proyecto: “))
nota_primer_parcial = float(input(“Ingrese la nota del primer
parcial: “))
nota_segundo_parcial = float(input(“Ingrese la nota del
segundo parcial: “))
promedio_laboratorios= float(input(“Ingrese el promedio de
notas de los laboratorios: “))

def calcular_nota_final(nombre, nota_proyecto,


nota_primer_parcial, nota_segundo_parcial,
promedio_laboratorios):
#De acuerdo a los porcentajes dados
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

nota_final = (nota_proyecto * 0.3) + (nota_primer_parcial


* 0.15) + (nota_segundo_parcial * 0.25) +
(promedio_laboratorios * 0.3)

#Mostrar la calificación final


print(f”Nota final de {nombre}: {nota_final}”)

#Determinar si el estudiante gano o perdio


if nota_final >= 3.0:
print(f”{nombre} aprobó la materia. “)
else:
print(f”{nombre} reprobó la materia. “)
#Para calcular la nota final y mostrar el resultado
Calcular_nota_final(nombre, nota_proyecto,
nota_primer_parcial, nota_Segundo_parcial,
promedio_laboratorios)

Problema #4

#Ejercicio 4 laboratorio
def maximo(a, b):
if a > b:
return a
else:
return b
def mínimo(a, b):
if a < b:
return a
else:
return b
#Programa principal
x = int(input(“Valor de x: “))
y = int(input(“Valor de y: “))

resultado = máximo(x - 3, mínimo(x + 2, y - 5))


print(resultado)

Problema #5

#Ejercicio 5 laboratorio
import math
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

#Se pide opcion de datos de entrada


op = input(“Digite que entrada de datos desea utilizar (a,b,c)
“)

if (op==”b” or op==”B”):
altmax= int(input(“Ingrese la altura máxima (m) “))
θ= math.radians(int(input(“Ingrese el ángulo inicial
(deg) “)))
#Para deducir x se necesita despejar “t” y “Vi”
Vi=
math.pow(((19.6*altmax)/(math.sin(θ)*(math.sin(θ)))),0.5)
t= (Vi*math.sin(θ))/9.8
x= Vi*math.cos(θ)*t
print(“La posición de x es “, x, “m”)

if (op==”a” or op==”A”):
Vi= int(input(“Ingrese velocidad inicial (m/s) “))
θ= math.radians(int(input(“Ingrese ángulo inicial (deg)
“)))
#Para deducir x se necesita despejar “t”
t= (2*Vi*math.sin(θ))/9.8
x= Vi*math.cos(θ)*t
print(“La posición de x es “, x, “m”)

if (op==”c” or op==”C”):
t= int(input(“Ingrese tiempo (s) “))
θ= math.radians(int(input(“Ingrese ángulo inicial (deg)
“)))
#Para deducir x es necesario despejar “Vi”
Vi= (t*9.8)/(2*math.sin(θ))
x= Vi*math.cos(θ)*t
print(“La posición de x es “, x,)

Problema #6
#Ejercicio 6 laboratorio a.m
import math

#Función para calcular las raíces de una función cuadrática


def calcular_raices(a, b, c):
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

discriminante = (b ** 2) - (4 * a * c)

if discriminante > 0:
#Dos raíces reales distintas
raiz_1 = (-b + math.sqrt(discriminante)) / (2 *
a)
raiz_2 = (-b - math.sqrt(discriminante)) / (2 *
a)
return raiz_1, raiz_2
elif discriminante == 0:
#Una raíz real (raiz doble)
raiz = -b / (2 * a)
return raiz,
else:
#Raíces complejas conjugadas
raiz_1 = (-b + complex(0,
math.sqrt(abs(discriminate)))) /(2 *a)
raiz_2 = (-b - complex(0,
math.sqrt(abs(discriminante)))) / (2 * a)
return raiz_1, raiz_2
#Pedir los valores de los coeficientes al usuario
A = float(input(“Ingrese el coeficiente A: “))
B = float(input(“Ingrese el coeficiente B: “))
C = float(input(“Ingrese el coeficiente C: “))

4. Evidencias de ejecución del programa

● Problema #1
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 17. Evidencia de ejecución del programa #1 i

Imagen 18. Evidencia de ejecución del programa #1 ii


Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 19. Evidencia de ejecución del programa #1 iii

Imagen 20. Evidencia de ejecución del programa #1 iv


● Problema #2
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 21. Evidencia de ejecución del programa #2

● Problema #3

Imagen 22. Evidencia de ejecución del programa #3

● Problema #4
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 23. Evidencia de ejecución del programa #4

● Problema #5

Imagen 24. Evidencia de ejecución del programa #5 a


Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 25. Evidencia de ejecución del programa #5 b

Imagen 26. Evidencia de ejecución del programa #5 c

● Problema #6
Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

Imagen 27. Evidencia de ejecución del programa #6


Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación
Laboratorio #2

You might also like