Progralabo 13
Progralabo 13
Ejercicio 1
Escribir una clase en python que convierta un número entero a número
romano
def conversion(entero):
numeros = [1000 ,900 ,500 ,400 ,100 ,90 ,50 ,40 ,10, 9, 5, 4, 1]
numerales = ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I']
numeral = ''
i = 0
while entero>0:
for _ in range(entero//numeros[i]):
numeral += numerales[i]
entero -= numeros[i]
i += 1
return numeral
print(conversion(125))
Ejercicio 2
Escribir una clase en python que convierta un número romano en un número entero
def conversion(romano):
romanos = {'M':1000,'D':500,'C':100,'L':50,'X':10,'V':5,'I':1}
entero = 0
for i in range(len(romano)):
if i>0 and romanos[romano[i]]>romanos[romano[i-1]]:
entero += romanos[romano[i]]-2*romanos[romano[i-1]]
else:
entero += romanos[romano[i]]
return entero
print(conversion('CXV'))
Ejercicio 3
Escribir una clase en python para encontrar la validez de una cadena de paréntesis, '(', ')', '{', '}',
'[' ']. Los paréntesis
deben aparecer en el orden correcto, por ejemplo "()" y "()[]{}" son validos, pero "[)", "({[)]" y
"{{{" son inválidos.
def cadenas_parentesis(cadena):
pila = []
parentesis = {'{':'}','[':']','(':')'}
for c in cadena:
if c in parentesis:
pila.append(c)
elif len(pila) == 0 or c != parentesis[pila.pop()]:
return False
return len(pila) == 0
print(cadenas_parentesis('[]{}[]()'))
print(cadenas_parentesis('[]{}[()'))
Ejercicio 4
Escribir una clase en python que obtenga todos los posibles subconjuntos únicos de un
conjunto de números enteros
distintos.
Entrada: [4, 5, 6]
Salida: [[], [6], [5], [5, 6], [4], [4, 6], [4, 5], [4, 5, 6]]
def subconjuntos(numeros):
return subconjuntos_recursivo([], sorted(numeros))
numeros = [4, 5, 6]
resultado = subconjuntos(numeros)
print(resultado)
Ejercicio 5
Escribir una clase en python que encuentre un par de elementos (índice de los números) de
una matriz dada cuya suma
Salida: 3, 4
def encontrar_indices(numeros,suma):
numeros_indices = {}
for i, n in enumerate(numeros):
if suma - n in numeros_indices:
return numeros_indices[suma-n], i
numeros_indices[n] = i
numeros = [10,20,10,40,50,60,70]
suma = 50
resultado = encontrar_indices(numeros,suma)
print(resultado)
salida (2,3)
Ejercicio 6
Escribir una clase en python que encuentre los 3 elementos que sumen 0 a partir de números
reales
for s in sublistas_tres:
if sum(s) == 0:
sublistas.append(s)
return sublistas
numeros = [-25,-10,-7,-3,2,4,8,10]
resultado = elementos_suma(numeros)
print(resultado)
Ejercicio 7
x = es la base
n = es el exponente
Salida: 0.125
Entrada: pow(3, 5)
Salida: 234
def potencia(a,b):
if b==0:
return 1
elif a==0:
return 0
elif b==1:
return a
else:
return a*potencia(a, b-1)
print(pow(2,-3))
print(pow(3,5))
Ejercicio 8
class operacionescadenas:
def inversion_frase(self, frase):
resultado = ' '.join(reversed(frase.split()))
return resultado
Escribir una clase en python con 2 métodos: get_string y print_string. get_string acepta una
cadena ingresada por el
Ejercicio 10
Escribir una clase en python llamada rectangulo que contenga una base y una altura, y que
contenga un método que
class Rectangulo:
def __init__(self,ancho,alto):
self.ancho = ancho
self.alto = alto
def area(self):
resultado = self.ancho * self.alto
return resultado
r = Rectangulo(5,2)
print('el area es: %.2f' % r.area())
Ejercicio 11
Escribir una clase en python llamada circulo que contenga un radio, con un método que
devuelva el área y otro que
def __init__(self,radio):
self.radio = radio
def area(self):
resultado = pi*(self.radio**2)
return resultado
def perimetro(self):
resultado = 2*pi*self.radio
return resultado
c = circulo(5)
print('el area es: %.2f' % c.area())
print('el perimetro es: %.2f' % c.perimetro())