Sie sind auf Seite 1von 10

Universidad de Pamplona

Pamplona - Norte de Santander - Colombia


Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

Problemas propuestos
Ejercicio 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.´

# inicializamos la clase
class Alumno:
# inicializamos los atributos
def inicializar(self,nombre,nota):
self.nombre=nombre
self.nota=nota


# función para imprimir los datos
def imprimir(self):
print("Nombre: ",self.nombre)
print("Nota: ",self.nota)


# función para obtener el resultado
def resultado(self):
if self.nota < 5:
print("El alumno ha suspendido")
else:
print("El alumno ha aprobado")



# bloque principal
# creamos los nuevos objetos
alumno1=Alumno()
alumno2=Alumno()

# inicializamos los atributos
alumno1.inicializar("ivan",8)
alumno2.inicializar("juan",4)

# imprimimos los datos y resultados de cada alumno
alumno1.imprimir()
alumno1.resultado()

Formando líderes para la construcción de un 1


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

alumno2.imprimir()
alumno2.resultado()

Ejercicio 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.

# creamos nuestra clase Persona


class Persona:
# inicializamos nuestros atributos
def inicializar(self,nombre,edad):
self.nombre=nombre
self.edad=edad

# imprimimos los datos
def imprimir(self):
print("Nombre: ",self.nombre)
print("Edad: ",self.edad)

# comprobamos si es mayor de edad o no
def mayor_edad(self):
if self.edad >= 18:
print("Es mayor de edad")
else:
print("No es mayor de edad")


# bloque principal
persona1=Persona()
persona1.inicializar("Ivan",23)
persona2=Persona()
persona2.inicializar("Carlos",17)
# imprimimos datos y comprobamos si es mayor de edad
persona1.imprimir()
persona1.mayor_edad()
persona2.imprimir()
persona2.mayor_edad()

Formando líderes para la construcción de un 2


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

Ejercicio 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).

# creamos nuestra clase


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)

# comprobamos el tipo de triángulo
# equilátero -> todos los lados iguales
# isósceles -> dos lados iguales
# escaleno -> todos los lados desiguales
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")

# bloque principal

Formando líderes para la construcción de un 3


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

figura=Triangulo()
figura.inicializar()
figura.imprimir()
figura.mayor()
figura.tipo()

Ejercicio 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.

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

Formando líderes para la construcción de un 4


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

print("Valor 2: ",self.valor2)


# bloque principal
calcular=Calculadora()
calcular.imprimir()
calcular.suma()
calcular.resta()
calcular.multiplicacion()
calcular.division()

Ejercicio 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

# creamos nuestra clase agenda


class Agenda:
# iniciamos nuestra clase
def __init__(self):
# crearemos una lista donde guardaremos los datos de nuestra agenda
self.contactos=[]

# menu del programa
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])

Formando líderes para la construcción de un 5


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

opcion=int(input("Introduzca la opción deseada: "))


if opcion==1:
self.anadir()
elif opcion==2:
self.lista()
elif opcion==3:
self.buscar()
elif opcion==4:
self.editar()
elif opcion==5:
print("Saliendo de la agenda ...")
exit()

# volvemos a llamar al menú
self.menu()


# función para añadir un contacto
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: ")
self.contactos.append({'nombre':nom,'telf':telf,'email':email})


# función para imprimir la lista de contactos
# En este caso imprimiremos solo los nombres de los contactos
# con ellos podremos buscar luego un contacto
def lista(self):
print("------------------")
print("Lista de contactos")
print("------------------")
if len(self.contactos) == 0:
print("No hay ningún contacto en la agenda")
else:
for x in range(len(self.contactos)):
print(self.contactos[x]['nombre'])


# función para buscar un contacto a través del nombre
def buscar(self):
print("---------------------")
print("Buscador de contactos")
print("---------------------")
nom=input("Introduzca el nombre del contacto: ")
for x in range(len(self.contactos)):
if nom == self.contactos[x]['nombre']:

Formando líderes para la construcción de un 6


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

print("Datos del contacto")


print("Nombre: ",self.contactos[x]['nombre'])
print("Teléfono: ",self.contactos[x]['telf'])
print("E-mail: ",self.contactos[x]['email'])
return x



# función para editar los datos de un contacto
def editar(self):
print("---------------")
print("Editar contacto")
print("---------------")
data=self.buscar()
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: ")
self.contactos[data]['nombre']=nom
elif option==2:
telf=input("Introduzca el nuevo teléfono: ")
self.contactos[data]['telf']=telf
elif option==3:
email=input("Introduzca el nuevo email: ")
self.contactos[data]['email']=email
elif option==4:
condition=True



# bloque principal
agenda=Agenda()
agenda.menu()

Ejercicio 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.

Formando líderes para la construcción de un 7


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

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.

# creamos la clase banco


class Banco:
# inicializamos
def __init__(self):
self.cliente1=Cliente("Ivan")
self.cliente2=Cliente("Marcos")
self.cliente3=Cliente("Juan")

# función para operar
def operacion(self):
self.cliente1.depositar(1000)
self.cliente2.depositar(300)
self.cliente3.depositar(43)
self.cliente1.extraer(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)
self.cliente1.imprimir()
self.cliente2.imprimir()
self.cliente3.imprimir()



# creamos la clase Cliente
class Cliente:
# inicializamos
def __init__(self,nombre):
self.nombre=nombre
self.cantidad=0

# función para depositar dinero
def depositar(self,cantidad):
self.cantidad+=cantidad

# función para extraer dinero
def extraer(self,cantidad):
self.cantidad-=cantidad

# función para obtener el total de dinero

Formando líderes para la construcción de un 8


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

def devolver_cantidad(self):
return self.cantidad

# función para imprimir los datos del cliente
def imprimir(self):
print(self.nombre, " tiene depositada una cantidad de ",self.cantidad)


# bloque principal
banco1=Banco()
banco1.operacion()
banco1.depositos()

Ejercicio 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.

# creamos la clase Cuenta


class Cuenta:
# inicializamos los atributos de la clase
def __init__(self,titular,cantidad):
self.titular=titular
self.cantidad=cantidad

# imprimimos los datos
def imprimir(self):
print("Titular: ",self.titular)
print("Cantidad: ", self.cantidad)


# 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):

Formando líderes para la construcción de un 9


nuevo país en paz
Universidad de Pamplona
Pamplona - Norte de Santander - Colombia
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

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)
self.plazo=plazo
self.interes=interes


# calculamos la ganancia
def ganancia(self):
ganancia=self.cantidad*self.interes/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: ",self.plazo)
print("Interés: ",self.interes)
self.ganancia()


# bloque principal
caja1=CajaAhorro("Manuel",5000)
caja1.imprimir()

plazo1=PlazoFijo("Isabel",8000,365,1.2)
plazo1.imprimir()

Formando líderes para la construcción de un 10


nuevo país en paz

Das könnte Ihnen auch gefallen