Actividad 7

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

ACTIVIDAD 7.

PROGRAMACION ( BR )

ESTUDENT:

ANDRÉS FELIPE SALAZAR BETANCOURT.

DOCENTE:

FANNY CASADIEGO CHIQUILLO

FACULTAD DE INGENIERA Y ARQUITECTURA DE LA UNIVERSIDAD D PAMPLONA

INGENIERIA EN TELECOMUNICACIONES

09/12/21
Actividad 7

Programación Orienta A Objetos POO


1. Problema: (1.5)

Los almacenes de cadena ÉXITO, con motivo de la temporada de navidad, se encuentran


desarrollando planes promocionales para sus clientes. Al iniciar el día el cajero debe ingresar
en la caja el día del mes (ej. 14), se atienden X cantidad de clientes en una caja, por cada cliente
se debe solicitar: número de documento, número de teléfono, cantidad de productos, por cada
producto se solicita el código (número de 4 dígitos y siempre comienza en número par) y valor.
A cada cliente se le muestra el valor total a pagar por sus productos. No se conoce la cantidad
de clientes, al final del día el cajero digita el número de cédula 0. Los productos que sus dos
últimos dígitos coincidan con el día tienen un descuento del 20%. En caso que la sumatoria de
los dígitos de la cédula sea igual al día, el cliente recibe un descuento del 100%. Realice un
programa que implemente las siguientes funciones:
✓ Función verificar: Recibe un número entero y verifica que corresponda a un código valido,
número de cuatro dígitos, de los cuales el primer dígito (de izquierda a derecha) debe ser
par.
✓ Función descuentopromo: Recibe el código de un producto, su valor y el día, retorna el
valor del producto aplicando el descuento en caso que los dos últimos dígitos del código
coincidan con el día, de lo contrario retorna el valor del producto sin descuento.
✓ Función leerproductos: Recibe la cantidad de productos y el día, por cada uno de los
productos solicita el código (usa la función verificar) y el valor, por cada producto deberá
usar la función descuentopromo para verificar si se debe aplicar el descuento. Retorna el
valor a pagar por los productos.
✓ Función cedulaganadora: Recibe el número de cédula y el día, halla la sumatoria de los
dígitos, retorna 1 si la sumatoria es igual al día, y 0 si no lo es.
✓ Función main(). Realiza el control del programa de acuerdo al enunciado inicial.

Al final del día deberá imprimir el total recaudado por ventas, el cliente con mayor valor de
compra, el total de dinero correspondiente a descuentos de 100% entregados y la cantidad de
personas que fueron premiadas con ese descuento.

“Formando líderes para la construcción de un nuevo país en paz”


Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 1
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
www.unipamplona.edu.co
SC-CER96940
SOLUCION PROBLEMA 1.
RTA//. def verificar(CodigoProduto):
f = True
while(f == True):
if(CodigoProduto >999 )and(CodigoProduto < 10000):
PrimerDigito = CodigoProduto //1000
if(PrimerDigito %2==0):
print("Codigo correcto ")
return CodigoProduto
f = False
else:
print("Error")
CodigoProduto = int(input("Digite codigo "))
else:
print("Codigo muy corto debe ser de 4 dijitos ")
CodigoProduto = int(input("Digite codigo "))

def descuento(CodigoProduto,valor,dia):
UltimoDigitos = CodigoProduto % 100
if(UltimoDigitos == dia):
totalApagar = valor * 0.20
totalApagar = valor - totalApagar
return totalApagar

else:
return valor

def TotalDescuento(cc,valor,dia):
f = list(cc)
results = [int(i) for i in f]
suma = sum(results)
if(suma == dia):
valor = 0
return valor
else:
return valor

def main():
clienteMayor = 0
TotalDia = 0
f = True
ccMayor = 0
celmayor = 0
Producto = []
Codigo = []
Valor = []
while(f == True):
dia = int(input("Dijite dia del mes "))
cc = str(input("Digite documento "))
cel = int(input("Digite telefono "))
b = True
while(b == True):
producto = str(input("Digite producto "))
Producto.append(producto)
codigo = int(input("Digite codigo "))
codigo = verificar(codigo)
Codigo.append(codigo)
valor = int(input("Digite valor del producto "))
valor = descuento(codigo,valor,dia)
Valor.append(valor)
valortotal = sum(Valor)
TotalDia = TotalDia + valor
probar = int(input("si desea terminar 0 o cualquier numero "))
if(probar == 0):
b = False
else:
b = True

Pagardescuento = TotalDescuento(cc,valortotal,dia)
print("Total a pagar sera ",Pagardescuento)
if(Pagardescuento > clienteMayor):
clienteMayor = Pagardescuento
ccMayor = cc
celmayor = cel

terminar = int(input("Si desea terminar 0 o cualquier numero para


continuar "))
if(terminar == 0):
f = False
else:
f = True

print("Cliente mayor compra ",ccMayor)


print("Valor pagado ",clienteMayor )
print("Telefono ",celmayor)
print("Total de dinero en el dia ",TotalDia)
main()

2. Conceptos (2.0)

A. ¿Qué es la herencia simple? De un ejemplo


RTA//. La herencia simple es la más típica, la que se puede encontrar en cualquier
lenguaje moderno como Java o C#.
La herencia simple es una relación entre una clase padre (clase base) y una clase
hija (clase derivada) llamada "es un tipo de", que muchas veces se abrevia
como isA.
La herencia es simple cuando la clase derivada que estamos considerando sólo
tiene una clase base.
Ejemplo: class vehiculo:
def __intit__(self,color,marca):
self.color=color
self.marca=marca

@property
def acelerar(self):
print("el vehiculo esta acelerando")

class moto( vehiculo ):


pass

m= moto("orange", "suzuki")
print(m.acelerar)

B. ¿Qué es la herencia múltiple? De un ejemplo


RTA// Hace referencia a la característica de los lenguajes de programación orientada
a objetos en la que una clase puede heredar comportamientos y características de
más de una superclase.
Se refiere a la posibilidad de crear una clase a partir de múltiples clases superiores.
Ejemplo:
#herencia multiple
class telefono:
def __init__(self):
pass
def llamar(self):
print("llamando...")
def ocupado(self):
print("ocupado...")
class camara:
def __init__(self):
pass
def fotografia(self):
print("tomando fotos...")

class reproduccion:
def __init__(self):
pass
def reproducciondemusica(self):
print("reproduciente musica")
def reproducirvideo(self):
print("reproducir un video...")

class smartphone(telefono,camara,reproduccion):
def __del__(self):
print("telefono apagado")

movil= smartphone()
print(movil.llamar())

C. Explique la Abstracción
RTA//. La abstracción es una herramienta en el proceso de creación del modelo a partir de
un problema real que está determinada por los siguientes factores:
- Identificación de clases: los conceptos que tienen entidad en sí mismos, no dependen de
otros, se pueden describir, comprender y analizar pueden abstraerse como una clase.
- El objetivo del modelo:
o · determina tanto el grado de detalle como la información relevante.
o · Ejemplos:
– Aplicación de macroeconomía: los empleados de una empresa pueden no
ser importantes como individuos porque sólo interese su comportamiento
global como plantilla; habrá una clase plantilla, pero no una clase persona.
– Aplicación de nóminas: necesita manipular la información de cada persona
de manera independiente; habrá una clase persona
– Con el mismo grado de detalle de la aplicación de nóminas, los antecedentes
clínicos de una persona son irrelevantes en una aplicación de préstamo
bibliotecario, pero fundamentales en una aplicación hospitalaria de ayuda al
diagnóstico de enfermedades; en ambas aplicaciones habrá una clase
persona, pero sólo la segunda tendrá variables miembro para antecedentes
clínicos.

D. ¿Qué es UML?
RTA//. Es un conjunto de notaciones y diagramas estándar para modelar sistemas
orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos
significan, El Lenguaje (Unificado de Modelado).

E. La Abstracción de CLASIFICACION: Se utiliza para definir un concepto como una clase


de objetos de la realidad caracterizados por propiedades comunes.

F. La Abstracción de AGREGACION : Define una nueva clase a partir de un conjunto de


(otras, no necesariamente distintas) clases que representan sus partes componentes G.

G. ¿Qué es polimorfismo? De un ejemplo de polimorfismo


RTA//. Esta característica permite implementar múltiples formas de un mismo
método, dependiendo cada una de ellas de la clase sobre la que se realice la
implementación. Esto hace que se pueda acceder a una variedad de métodos distintos
(todos con el mismo nombre) utilizando exactamente el mismo medio de acceso.
EJEMPLO POLIMORFISMO: #polimorfismo
class animal:
def _init_(self,nombre):
self.nombre= nombre
def tipo_animal(self):
pass
class jirafa(animales):
def tipo_animal(self):
print("animal salvaje")

class gato(animales):
def tipo_animal(self):
print("animal domestico")

nuevo_animal= jirafa("pedro pablo")


nuevo_animal.tipo_animal()

H. ¿Qué es la modularidad en python?


RTA//. Es una propiedad que nos permitirá subdividir nuestro programa en
partes más pequeñas (sub-programas) que habitualmente llamamos
“módulos” las cuales deben ser independientes de la aplicación o programa
original en sí.
I. ¿Qué es el encapsulamiento en Python?
RTA//. La encapsulación consiste en denegar el acceso a los atributos y métodos
internos de la clase desde el exterior. En Python no existe, pero se puede simular
precediendo atributos y métodos con dos barras bajas __ como indicando que son
"especiales".

“Formando líderes para la construcción de un nuevo país en paz”


Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 2
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
www.unipamplona.edu.co
SC-CER96940
J. Investigue la función super en Python. Explique y de ejemplos
RTA//. La función super() se usa en la clase hija con herencia múltiple para
acceder a la función de la siguiente clase padre o superclase. La
función super() determina la siguiente clase principal utilizando el Orden de
resolución del método (MRO). Como si el MRO es C -> D -> B -> A -> object,
para D, la función super() buscará la siguiente clase padre o método de
superclase en la secuencia D -> B -> A -> object.

Ejemplo:
class persona():

def __init__(self,apePat,apeMat,nom):
self.appellidopaterno=apePat
self.apellidiomaterno=apeMat
self.nombre=nom

def mostrarNombreCompleto(self):
txt="{0} {1} {2}"
return
txt.format(self.appellidopaterno,self.apellidiomaterno,self.nombre)

class estudiante(persona):
pass

estu1=estudiante("salazar","betancourt","andres")
print(estu1.mostrarNombreCompleto())

3. Problema: Herencia (1.5)

Realizar un programa que conste de una clase Persona con dos atributos nombre y edad.
Los atributos se introducirán por teclado y habrá otro método para imprimir los datos.

Declarar una segunda clase llama Empleado que hereda de la clase Persona y agrega el
atributo sueldo. Debe mostrar si tiene que pagar impuestos o no (sueldo superior a 3000).

Crear un objeto de cada clase.

SOLUCION PROBLEMA :
# declaramos la clase persona
class Persona:
# declaramos el metodo __init__
def __init__(self):
self.nombre=input("Ingrese el nombre:")
self.edad=int(input("Ingrese la edad:"))

# declaramos el metodo mostrar


def mostrar(self):
print("Nombre: ",self.nombre)
print("Edad: ",self.edad)

# declaramos la clase empleado


# la clase empleado hereda los atributos y metodos de la clase Persona
class Empleado(Persona):
# declaramos el metodo __init__
def __init__(self):
# llamamos al metodo init de la clase padre
# utilizamos la funcion super() para hacer referencia al padre
super().__init__()
self.sueldo=float(input("Ingrese el sueldo: "))

# declaramos el metodo mostrar


def mostrar(self):
super().mostrar()
print("Sueldo: ",self.sueldo)

# declaramos el metodo pagar_impuestos


# comprobara si el empleado debe pagar o no
def pagar_impuestos(self):
if self.sueldo > 3000:
print("El empleado debe pagar impuestos.")
else:
print("El empleado no paga impuestos.")

# bloque principal
persona1=Persona()
persona1.mostrar()
empleado1=Empleado()
empleado1.mostrar()
empleado1.pagar_impuestos()

También podría gustarte