PROGRAMACION AVANZADA LABORATORIO SESION 14
NOMBRE: SÁNCHEZ QUINTO CESAR ANTONIO
CODIGO: 1723225411
1. Realizar un programa que conste de una clase llamada Alumno que tenga como
atributos el nombre y la nota del alumno. Definir los métodos para inicializar sus
atributos, imprimirlos y mostrar un mensaje con el resultado de la nota y si ha
aprobado o no.´
Solución:
Código en Python:
# inicializamos la clase
class Alumno:
# inicializamos los atributos
def inicializar(self,nombre,nota):
[Link]=nombre
[Link]=nota
# función para imprimir los datos
def imprimir(self):
print("Nombre: ",[Link])
print("Nota: ",[Link])
# función para obtener el resultado
def resultado(self):
if [Link] < 11:
print("El alumno ha desaprobado")
else:
print("El alumno ha aprobado")
# bloque principal
# creamos los nuevos objetos
alumno1=Alumno()
alumno2=Alumno()
# inicializamos los atributos
[Link]("ivan",18)
[Link]("juan",10)
# imprimimos los datos y resultados de cada alumno
[Link]()
[Link]()
[Link]()
[Link]()
EJECUCION O PRUEBA EN CONSOLA:
2. Realizar un programa que tenga una clase Persona con las siguientes características. La
clase tendrá como atributos el nombre y la edad de una persona. Implementar los
métodos necesarios para inicializar los atributos, mostrar los datos e indicar si la
persona es mayor de edad o no.
Solución:
Código en Python
# creamos nuestra clase Persona
class Persona:
# inicializamos nuestros atributos
def inicializar(self,nombre,edad):
[Link]=nombre
[Link]=edad
# imprimimos los datos
def imprimir(self):
print("Nombre: ",[Link])
print("Edad: ",[Link])
# comprobamos si es mayor de edad o no
def mayor_edad(self):
if [Link] >= 18:
print("Es mayor de edad")
else:
print("No es mayor de edad")
# bloque principal
persona1=Persona()
[Link]("Ivan",23)
persona2=Persona()
[Link]("Carlos",17)
# imprimimos datos y comprobamos si es mayor de edad
[Link]()
persona1.mayor_edad()
[Link]()
persona2.mayor_edad()
EJECUCION O PRUEBA EN CONSOLA:
3. Desarrollar un programa que cargue los datos de un triángulo. Implementar una clase
con los métodos para inicializar los atributos, imprimir el valor del lado con un tamaño
mayor y el tipo de triángulo que es (equilátero, isósceles o escaleno).
Solución:
Código en Python:
class Triangulo:
# inicializamos
def inicializar(self):
self.lado1 = int(input("Ingrese el valor del primer
lado: "))
self.lado2 = int(input("Ingrese el valor del segundo
lado: "))
self.lado3 = int(input("Ingrese el valor del tercer
lado: "))
# imprimimos
def imprimir(self):
print("Los lados del triángulo tienen el valor de")
print("Lado 1: ", self.lado1)
print("Lado 2: ", self.lado2)
print("Lado 3: ", self.lado3)
# comprobamos el lado mayor
def mayor(self):
print("El lado mayor es")
if self.lado1 > self.lado2 and self.lado1 >
self.lado3:
print("Lado 1: ", self.lado1)
elif self.lado2 > self.lado3:
print("Lado 2: ", self.lado2)
else:
print("Lado 3: ", self.lado3)
def tipo(self):
if self.lado1 == self.lado2 and self.lado1 ==
self.lado3:
print("Es un triángulo equilátero")
elif self.lado1 != self.lado2 and self.lado1 !=
self.lado3:
print("Es un triángulo escaleno")
else:
print("Es un triángulo isósceles")
figura = Triangulo()
[Link]()
[Link]()
[Link]()
[Link]()
EJECUCION O PRUEBA EN CONSOLA:
4. Realizar un programa en el cual se declaren dos valores enteros por teclado utilizando
el método __init__. Calcular después la suma, resta, multiplicación y división. Utilizar
un método para cada una e imprimir los resultados obtenidos. Llamar a la clase
Calculadora.
Solución:
Código en Python:
# creamos la clase
class Calculadora:
# iniciamos con el método __init__
def __init__(self):
self.valor1=int(input("Ingrese el primer valor: "))
self.valor2=int(input("Ingrese el segundo valor: "))
# función para sumar
def suma(self):
suma=self.valor1+self.valor2
print("El resultado de la suma de los valores es:
",suma)
# función para restar
def resta(self):
resta=self.valor1-self.valor2
print("El resultado de la resta de los valores es:
",resta)
# función para calcular el producto
def multiplicacion(self):
pro=self.valor1*self.valor2
print("El resultado de la multiplicación de los valores
es: ",pro)
# función para dividir
def division(self):
div=self.valor1/self.valor2
print("El resultado de la división de los valores es:
",div)
# función para imprimir
def imprimir(self):
print("Los valores son: ")
print("Valor 1: ",self.valor1)
print("Valor 2: ",self.valor2)
# bloque principal
calcular=Calculadora()
[Link]()
[Link]()
[Link]()
[Link]()
[Link]()
EJECUCION O PRUEBA EN CONSOLA:
5. Realizar una clase que administre una agenda. Se debe almacenar para cada contacto
el nombre, el teléfono y el email. Además, deberá mostrar un menú con las siguientes
opciones
Añadir contacto
Lista de contactos
Buscar contacto
Editar contacto
Cerrar agenda
Solución:
Código en Python:
class Agenda:
def __init__(self):
[Link] = []
def menu(self):
print()
menu = [
['Agenda Personal'],
['1. Añadir Contacto', "anadir"],
['2. Lista de contactos'],
['3. Buscar contacto'],
['4. Editar contacto'],
['5. Cerrar agenda']
]
for x in range(6):
print(menu[x][0])
opcion = int(input("Introduzca la opción deseada: "))
if opcion == 1:
[Link]()
elif opcion == 2:
[Link]()
elif opcion == 3:
[Link]()
elif opcion == 4:
[Link]()
elif opcion == 5:
print("Saliendo de la agenda ...")
exit()
[Link]()
def anadir(self):
print("---------------------")
print("Añadir nuevo contacto")
print("---------------------")
nom = input("Introduzca el nombre: ")
telf = int(input("Introduzca el teléfono: "))
email = input("Introduzca el email: ")
[Link]({'nombre': nom, 'telf': telf,
'email': email})
def lista(self):
print("------------------")
print("Lista de contactos")
print("------------------")
if len([Link]) == 0:
print("No hay ningún contacto en la agenda")
else:
for x in range(len([Link])):
print([Link][x]['nombre'])
def buscar(self):
print("---------------------")
print("Buscador de contactos")
print("---------------------")
nom = input("Introduzca el nombre del contacto: ")
for x in range(len([Link])):
if nom == [Link][x]['nombre']:
print("Datos del contacto")
print("Nombre: ", [Link][x]
['nombre'])
print("Teléfono: ", [Link][x]
['telf'])
print("E-mail: ", [Link][x]['email'])
return x
def editar(self):
print("---------------")
print("Editar contacto")
print("---------------")
data = [Link]()
condition = False
while condition == False:
print("Selecciona que quieres editar: ")
print("1. Nombre")
print("2. Teléfono")
print("3. E-mail")
print("4. Volver")
option = int(input("Introduzca la opción deseada:
"))
if option == 1:
nom = input("Introduzca el nuevo nombre: ")
[Link][data]['nombre'] = nom
elif option == 2:
telf = input("Introduzca el nuevo teléfono:
")
[Link][data]['telf'] = telf
elif option == 3:
email = input("Introduzca el nuevo email: ")
[Link][data]['email'] = email
elif option == 4:
condition = True
# bloque principal
agenda = Agenda()
[Link]()
EJECUCION O PRUEBA EN CONSOLA:
6. En un banco tienen clientes que pueden hacer depósitos y extracciones de dinero. El
banco requiere también al final del día calcular la cantidad de dinero que se ha
depositado.
Se deberán crear dos clases, la clase cliente y la clase banco. La clase cliente tendrá los
atributos nombre y cantidad y los métodos __init__, depositar, extraer, mostrar_total.
La clase banco tendrá como atributos 3 objetos de la clase cliente y los métodos
__init__, operar y deposito_total.
Solución:
Código en Python:
class Banco:
def __init__(self):
self.cliente1 = Cliente("Ivan")
self.cliente2 = Cliente("Marcos")
self.cliente3 = Cliente("Juan")
# función para operar
def operacion(self):
[Link](1000)
[Link](300)
[Link](43)
[Link](400)
# función para obtener los depósitos totales
def depositos(self):
total = self.cliente1.devolver_cantidad() +
self.cliente2.devolver_cantidad() +
self.cliente3.devolver_cantidad()
print("El total de dinero del banco es: ", total)
[Link]()
[Link]()
[Link]()
# creamos la clase Cliente
class Cliente:
# inicializamos
def __init__(self, nombre):
[Link] = nombre
[Link] = 0
# función para depositar dinero
def depositar(self, cantidad):
[Link] += cantidad
# función para extraer dinero
def extraer(self, cantidad):
[Link] -= cantidad
# función para obtener el total de dinero
def devolver_cantidad(self):
return [Link]
# función para imprimir los datos del cliente
def imprimir(self):
print([Link], " tiene depositada una cantidad de
", [Link])
# bloque principal
banco1 = Banco()
[Link]()
[Link]()
EJECUCION O PRUEBA EN CONSOLA:
7. Desarrollar un programa que conste de una clase padre Cuenta y dos subclases
PlazoFijo y CajaAhorro. Definir los atributos titular y cantidad y un método para
imprimir los datos en la clase Cuenta. La clase CajaAhorro tendrá un método para
heredar los datos y uno para mostrar la información.
La clase PlazoFijo tendrá dos atributos propios, plazo e interés. Tendrá un método para
obtener el importe del interés (cantidad*interés/100) y otro método para mostrar la
información, datos del titular plazo, interés y total de interés.
Crear al menos un objeto de cada subclase.
Solución:
Código en Python:
# creamos la clase Cuenta
class Cuenta:
# inicializamos los atributos de la clase
def __init__(self,titular,cantidad):
[Link]=titular
[Link]=cantidad
# imprimimos los datos
def imprimir(self):
print("Titular: ",[Link])
print("Cantidad: ", [Link])
# creamos la clase CajaAhorro
# esta clase hereda atributos de la clase Cuenta
class CajaAhorro(Cuenta):
# iniciamos los atributos de la clase
def __init__(self,titular,cantidad):
super().__init__(titular,cantidad)
# imprimimos los datos de la cuenta
def imprimir(self):
print("Cuenta de caja de ahorros")
super().imprimir()
# creamos la clase PlazoFijo
# esta clase también hereda atributos de la clase Cuenta
class PlazoFijo(Cuenta):
# inicializamos los atributos de la clase
def __init__(self,titular,cantidad,plazo,interes):
super().__init__(titular,cantidad)
[Link]=plazo
[Link]=interes
# calculamos la ganancia
def ganancia(self):
ganancia=[Link]*[Link]/100
print("El importe de interés es: ",ganancia)
# imprimimos los resultados
def imprimir(self):
print("Cuenta a plazo fijo")
super().imprimir()
print("Plazo disponible en días: ",[Link])
print("Interés: ",[Link])
[Link]()
# bloque principal
caja1=CajaAhorro("Manuel",5000)
[Link]()
plazo1=PlazoFijo("Isabel",8000,365,1.2)
[Link]()
EJECUCION O PRUEBA EN CONSOLA: