Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.1 EVALUACIÓN
Llegado a este punto, es importante evaluar los conocimientos y habilidades adquiridos…
1
1.2 Consignas
1.2.1 Ejercicio 1
Genere un traductor simple Ingles-Español. Idea: Use diccionario como “base de datos”. ¿Qué
cambios habría que hacer para transformarlo en un traductor Español-Inglés?
1.2.2 Ejercicio 2
class Experimento:
def __init__(self, g = 9.8):
self.g = g
self.y0 = None
self.v0 = 0 # Se deja caer.
self.type = None
self.v = None
self.y = None
self.t = None
2
:param tf: tiempo que demora en caer
:return : None
"""
self.type = 1
dt = 1e-6
self.t = np.arange(0,tf,dt)
self.v = self.v0 + self.g * self.t
#y = y0 - 0.5 * g * np.power(t,2); h=y0
y0 = 0.5 * self.g * np.power(tf,2)
self.y = y0 - 0.5 * self.g * np.power(self.t,2)
else:
tf = round(self.t[-1],2)
vf = round(self.v[-1],2)
print('El objeto demora en llegar al suelo {}s y su velocidad final␣
,→es de {}m/s.'.format(tf, vf))
if with_plot:
self.plot_experiment()
def plot_experiment(self):
"""
Plot experiment
:return : None
"""
3
plt.figure()
plt.subplot('211')
plt.plot(self.t, self.y)
plt.ylabel('Altura')
plt.xlabel('Tiempo')
plt.title('Caida libre h(t)')
plt.subplot('212')
plt.plot(self.t, self.v)
plt.ylabel('Velocidad')
plt.xlabel('Tiempo')
plt.title('Caida libre v(t)')
plt.show()
e1 = Experimento()
e1.type_1(3)
e1.show_results(with_plot=False)
e2 = Experimento()
e2.type_2(44.1)
e2.show_results()
4
1.2.3 Ejercicio 3
Implemente un programa que permita cifrar y descifrar una frase (escrita sólo en
mayúsculas) mediante el Cifrado César, permitiendo elegir el desplazamiento deseado
(https://es.wikipedia.org/wiki/Cifrado_C%C3%A9sar).
1.2.4 Ejercicio 4
A continuación se transcribe un código que busca la raiz de una función mediante el método
de la bisección. Copie en un notebook el código (ojo con espacios). Ejecútelo y explique su
funcionamiento.
[2]: import matplotlib.pyplot as plt
import numpy as np
def f(x):
"""
Define la funcion para la cual queremos encontrar alguna raiz
"""
return (np.power(x,2) + 4.0*x - 4.0) # usar (-6,-4)
fa = f(a)
if fa*f(b) > 0:
return None, None, None
c = (a + b)*0.5
fmed = f(c)
i = 0
while abs(b-a) > tol:
5
if fa*fmed <= 0:
b = c # La raiz esta en el intervalo [a,c]
else:
a = c # La raiz esta en el intervalo [c,b]
fa = fmed
c = (a + b)*0.5
fmed = f(c)
i = i + 1
return i, c, fmed
tol = 1e-10
a, b = -6, -4 # para raiz en la grafica
i, x, fx = biseccion(f, a, b, tol)
if x is None:
print('f(x) NO cambia signo en el intervalo [{0:g},{1:g}]'.format(a, b))
else:
print('En {0:d} iteraciones y con tolerancia de {1:g} la raiz es:'.
,→format(i,tol))
n = int((b - a) / 0.001)
x = np.linspace(a, b, n)
y = f(x)
plt.figure()
plt.plot(x, y)
plt.ylabel('y')
plt.xlabel('x')
plt.title('Bisección')
plt.grid()
plt.show()
6
1.2.5 Ejercicio 5
Realiza un programa que calcule el desglose en billetes y monedas de una cantidad exacta de pesos
argentinos. ¿Cómo adaptaría dicho código si ahora se le pidiera que sirviera para dar vuelto?