0% encontró este documento útil (0 votos)
764 vistas9 páginas

Progralabo 13

Este documento presenta 11 ejercicios de programación en Python. Los ejercicios incluyen clases para convertir entre números enteros y romanos, validar cadenas de paréntesis, encontrar subconjuntos únicos, encontrar pares que suman un número objetivo, calcular potencias, invertir cadenas de palabras, y clases para rectángulos y círculos con métodos para área y perímetro. El documento proporciona la entrada y salida esperada para cada ejercicio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
764 vistas9 páginas

Progralabo 13

Este documento presenta 11 ejercicios de programación en Python. Los ejercicios incluyen clases para convertir entre números enteros y romanos, validar cadenas de paréntesis, encontrar subconjuntos únicos, encontrar pares que suman un número objetivo, calcular potencias, invertir cadenas de palabras, y clases para rectángulos y círculos con métodos para área y perímetro. El documento proporciona la entrada y salida esperada para cada ejercicio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

QUISPE LAVERIANO CESAR AUGUSTO 1713210136

LABORATORIO DE PROGRAMACIÓN AVANZADA


LABORATORIO NUMERO: 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))

def subconjuntos_recursivo(actual, conjunto):


if conjunto:
return subconjuntos_recursivo(actual, conjunto[1:]) +
subconjuntos_recursivo(actual + [conjunto[0]], conjunto[1:])
return [actual]

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

es igual a un número de destino especifico.

Entrada: numeros = [10,20,10,40,50,60,70], objetivo=50

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)

para índice se empieza desde el cero (enumerate)

salida (2,3)
Ejercicio 6

Escribir una clase en python que encuentre los 3 elementos que sumen 0 a partir de números
reales

Entrada: [-25, -10, -7, -3, 2, 4, 8, 10]

Salida: [[-10, 2, 8], [-7, -3, 10]]

from itertools import combinations


def elementos_suma(numeros):
sublistas_tres = combinations(numeros, 3)
sublistas = []

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

Escribir una clase en python que calcule pow(x, n)

x = es la base

n = es el exponente

Entrada: pow(2, -3)

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

Escribir una clase en python que revierta una cadena de palabras

Entrada: "Mi Diario Python"

Salida: "Python Diario Mi"

class operacionescadenas:
def inversion_frase(self, frase):
resultado = ' '.join(reversed(frase.split()))
return resultado

frase = 'mi diario python'


operaciones = operacionescadenas()
print(frase)
print(operaciones.inversion_frase(frase))
Ejercicio 9

Escribir una clase en python con 2 métodos: get_string y print_string. get_string acepta una
cadena ingresada por el

usuario y print_string imprime la cadena en mayúsculas.

Ejercicio 10

Escribir una clase en python llamada rectangulo que contenga una base y una altura, y que
contenga un método que

devuelva el área del rectángulo.

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

devuelva el perímetro del circulo.

from math import pi


class circulo:

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())

También podría gustarte