Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EJERCICIO 1,1
class Reloj:
def __init__(self, marca, modelo, color):
self.marca = marca
self.modelo = modelo
self.color = color
def mostrar_hora(self):
# Supongamos que esta función muestra la hora actual del reloj
pass
class Fruta:
def __init__(self, nombre, color, sabor):
self.nombre = nombre
self.color = color
self.sabor = sabor
def describir(self):
print(f"La fruta {self.nombre} es de color {self.color} y tiene un sabor {self.sabor}.")
class Televisor:
def __init__(self, marca, modelo, pulgadas):
self.marca = marca
self.modelo = modelo
self.pulgadas = pulgadas
def encender(self):
print("Encendiendo el televisor.")
class Boligrafo:
def __init__(self, marca, color, grosor):
self.marca = marca
self.color = color
self.grosor = grosor
class Puerta:
def __init__(self, material, color, alto, ancho):
self.material = material
self.color = color
self.alto = alto
self.ancho = ancho
def abrir(self):
print("Abriendo la puerta.")
def cerrar(self):
print("Cerrando la puerta.")
# Crear un celular
mi_celular = Celular("Samsung", "Galaxy S21", "Negro")
# Crear un reloj
mi_reloj = Reloj("Casio", "G-Shock", "Negro")
# Crear un televisor
mi_televisor = Televisor("Sony", "Bravia", 55)
# Crear un bolígrafo
mi_boligrafo = Boligrafo("Bic", "Azul", "Mediano")
Vehículo
/ \
Casa Ave
Fruta
Municipio
CELULAR
class Celular:
def __init__(self, marca, modelo, color):
self.marca = marca
self.modelo = modelo
self.color = color
self.encendido = False # Atributo para indicar si el celular está encendido o no
def encender(self):
if not self.encendido:
print("Encendiendo el celular.")
self.encendido = True
else:
print("El celular ya está encendido.")
def apagar(self):
if self.encendido:
print("Apagando el celular.")
self.encendido = False
else:
print("El celular ya está apagado.")
# Ejemplo de uso
mi_celular = Celular("Samsung", "Galaxy S21", "Negro")
mi_celular.encender() # Enciende el celular
mi_celular.llamar("123456789") # Intenta llamar
mi_celular.apagar() # Apaga el celular
RELOJ
class Reloj:
def __init__(self, marca, modelo, color):
self.marca = marca
self.modelo = modelo
self.color = color
self.horas = 0
self.minutos = 0
self.segundos = 0
def mostrar_hora(self):
print(f"{self.horas:02d}:{self.minutos:02d}:{self.segundos:02d}")
def avanzar_segundo(self):
self.segundos += 1
if self.segundos == 60:
self.segundos = 0
self.avanzar_minuto()
def avanzar_minuto(self):
self.minutos += 1
if self.minutos == 60:
self.minutos = 0
self.avanzar_hora()
def avanzar_hora(self):
self.horas += 1
if self.horas == 24:
self.horas = 0
# Ejemplo de uso
mi_reloj = Reloj("Casio", "Digital", "Negro")
mi_reloj.establecer_hora(12, 30, 0)
mi_reloj.mostrar_hora()
mi_reloj.avanzar_segundo()
mi_reloj.mostrar_hora()
FRUTA
class Fruta:
def __init__(self, nombre, color, sabor):
self.nombre = nombre
self.color = color
self.sabor = sabor
self.estado = "Fresco" # Estado inicial de la fruta
def madurar(self):
if self.estado == "Fresco":
self.estado = "Maduro"
print(f"{self.nombre} está maduro ahora.")
elif self.estado == "Maduro":
print(f"{self.nombre} ya está maduro.")
else:
print(f"{self.nombre} está podrido, no puede madurar más.")
def podrirse(self):
if self.estado != "Podrido":
self.estado = "Podrido"
print(f"{self.nombre} se ha podrido.")
else:
print(f"{self.nombre} ya está podrido.")
def mostrar_informacion(self):
print(f"Nombre: {self.nombre}")
print(f"Color: {self.color}")
print(f"Sabor: {self.sabor}")
print(f"Estado: {self.estado}")
# Ejemplo de uso
mi_fruta = Fruta("Manzana", "Rojo", "Dulce")
mi_fruta.mostrar_informacion()
mi_fruta.madurar()
mi_fruta.mostrar_informacion()
mi_fruta.podrirse()
mi_fruta.mostrar_informacion()
RESPUESTA. -
Abstracción:
En POO, la abstracción implica identificar las características esenciales de un objeto del mundo
real y representarlas en un modelo de programación. Esto se logra mediante la creación de
clases, que son como plantillas para crear objetos. Las clases encapsulan datos (atributos) y
comportamientos (métodos) relevantes para el objeto que están modelando. Por ejemplo, una
clase "Coche" puede tener atributos como "marca", "modelo “y "color", y métodos como
"arrancar", "acelerar" y "frenar".
Encapsulamiento:
Herencia:
La herencia es un mecanismo que permite que una clase herede atributos y métodos de otra
clase. En POO, una clase que hereda de otra se denomina "subclase" o "clase derivada", y la
clase de la que heredase denomina "superclase" o "clase base". La herencia permite la
reutilización de código al permitir que las subclases extiendan o modifiquen el
comportamiento de la superclase. Por ejemplo, puedes tener una clase "Animal" con atributos
y métodos comunes, y luego crear subclases como "Perro" y "Gato" que hereden esos
atributos y métodos.
Polimorfismo:
class FiguraGeometrica:
def __init__(self, tipo):
self.tipo = tipo
def describir(self):
return f"Esta es una figura geométrica de tipo {self.tipo}."
class Gato:
def __init__(self, nombre):
self.nombre = nombre
def describir(self):
return f"Este es un gato llamado {self.nombre}."
class Persona:
def __init__(self, nombre):
self.nombre = nombre
def describir(self):
return f"Esta es una persona llamada {self.nombre}."
class Vehiculo:
def __init__(self, marca, modelo):
self.marca = marca
self.modelo = modelo
def describir(self):
return f"Este es un vehículo de la marca {self.marca} y modelo {self.modelo}."
class Rueda:
def __init__(self, diametro):
self.diametro = diametro
def describir(self):
return f"Esta es una rueda con un diámetro de {self.diametro} pulgadas."
RESPUESTA. -
CLASE.
ESTRUCTURA.
-Las estructuras no tienen métodos ni funciones asociadas con ellas solo almacenan datos
relacionados.
-Puedes tener una estructura llamada “Empleado” que tengan con variable como “nombre,
edad y salario”. Es un ejemplo de lo que puede tener una estructura.
-Una estructura es una colección de variables de diferentes tipos de datos.
De muchos lenguajes de programación tenemos 3 que son muy importante: Java, C#, Python.
-Tiene una regla gramatical con una facilidad de uso lo que le facilita a la creación y compresión
de código orientado a objetos.
Visual Studio Code(VS code). - Desarrollado por Microsoft, es un editor de código ligero pero
potente con una amplia gama de extensiones para Python, incluyendo finalización de código y
depuración
RESPUESTA. –
Python cuenta con una gran variedad de frameworks que cubre varias áreas de desarrollo web
entre los más populares tenemos: Django, Flask , FastAPI , Pyramid , TensorFlow ,Pytorch.
DJANGO. -Django es un framework web de un nivel alto y de código abierto que fomenta al
desarrollo rápido y limpio. También proporciona una arquitectura MVC(Modelo-Vista-
Controlador).
FLASK. -Flask es un frameworks web ligero y flexible que sigue el principio lo hace mas simple.
También proporciona herramientas para crear aplicaciones web simples y rápidos como
también es lo suficientemente extensible para admitir aplicaciones mas complejas.
FASTAPI. – FastAPI es un frameworks web moderno y de alto rendimiento para construir Apis
con Python. También ofrece un rendimiento excepcional, basada en el uso de códigos.
def bubble_sort(a):
n = len(a)
# Iterar sobre todos los elementos del arreglo
for i in range(n):
# Últimos i elementos ya están ordenados, no necesitamos compararlos
for j in range(0, n-i-1):
# Comparamos los conceptos concecutivos
if a[j] > a[j+1]:
# Intercambiar si están en el orden incorrecto
a[j], a[j+1] = a[j+1], a[j]
# Ejemplo de uso
a = [11,44,22,33,66,88,55,77]
print("Numero introducidos:", a)
bubble_sort(a)
print("Numeros ordenados:", a)
b) Algoritmo de ordenación Shell
def shell_sort(b):
n = len(b)
intervalo = n // 2
while intervalo > 0:
for i in range(intervalo, n):
temp = b[i]
j=i
while j >= intervalo and b[j - intervalo] > temp:
b[j] = b[j - intervalo]
j -= intervalo
b[j] = temp
intervalo //= 2
# Ejemplo de uso
b = [1,8,2,6,4,6,3,5,6,67]
print("Arreglo original:", b)
shell_sort(b)
print("Arreglo ordenado:", b)
c) Algoritmo de búsqueda secuencial
# Ejemplo de uso
lista = [1,2,3,4,5,6,7,8]
elemento = 4
indice = busqueda_secuencial(lista, elemento)
if indice != -1:
print("El elemento", elemento, "se encuentra en el índice", indice)
else:
print("El elemento", elemento, "no se encuentra en la lista")
d) Algoritmo de búsqueda Binaria
# Ejemplo de uso
lista = [1, 2, 3, 4, 5, 6, 7]
elemento = 5
indice = busqueda_binaria(lista, elemento)
if indice != -1:
print("El elemento", elemento, "se encuentra en el índice", indice)
else:
print("El elemento", elemento, "no se encuentra en la lista")
# Ejemplo de uso
numero = 4
resultado = factorial_opc1(numero)
print("la factorial de", numero, "es:", resultado)
#Segunda opcion usamos un enfoque recursiva
def factorial_opc2(n):
if n == 0:
return 1
else:
return n * factorial_opc2(n - 1)
# Ejemplo de uso
numero = 5
resultado = factorial_opc2(numero)
print("la factorial de", numero, "es:", resultado)
#divn=dividiendo
#divs=divisor
def division_entera(divn, divs):
# Manejamos la division por 0
if divs == 0:
raise ValueError("No se puede dividir por cero")
cociente = 0
resto = divn
# Ejemplo de uso
divn = 10
divs = 3
cociente, resto = division_entera(divn, divs)
print("El cociente de la división entera de", divn, "por", divs, "es:", cociente)
print("El resto de la división entera de", divn, "por", divs, "es:", resto)
3.1. DADA UNA CLASE PRINCIPAL LLAMADA PAJARO SE DEFINEN LOS ATRIBUTOS Y MÉTODOS
QUE APARECEN EN LA IMAGEN. LOS MÉTODOS REALIZAN LAS SIGUIENTES ACCIONES:
import math
class Pajaro:
def __init__(self, nombre="", posX=0, posY=0):
self.nombre = nombre
self.posX = posX
self.posY = posY
# Programa principal
if __name__ == "__main__":
# Crear una instancia de la clase Pajaro
pajaro = Pajaro("Piolín", 3, 4)
#Saber contar cuantos productos tiene ese precio usamos 2 objetos de la clase
class Producto:
def __init__(self, codigo="", nombre="", precio=0.0):
self.codigo = codigo
self.nombre = nombre
self.precio = precio
def mostrar_informacion(self):
print("Código:", self.codigo)
print("Nombre:", self.nombre)
print("Precio:", self.precio)
class Ropa_Deportiva(Producto):
def __init__(self, codigo, nombre, precio, temporada):
super().__init__(codigo, nombre, precio)
self.temporada = temporada
class Ropa_Casual(Producto):
def __init__(self, codigo, nombre, precio, temporada):
super().__init__(codigo, nombre, precio)
self.temporada = temporada
class DescuentoVenta:
def __init__(self):
self.ventas = []
def obtener_venta_max_descuento(self):
if not self.ventas:
return None
def obtener_venta_min_descuento(self):
if not self.ventas:
return None
def imprimir_atributos(self):
print("Nombre:", self.nombre)
print("Apellido:", self.apellido)
print("Documento:", self.documento)
print("Año de nacimiento:", self.año_nacimiento)
print("Categoría de licencia:", self.categoria_licencia)
if __name__ == "__main__":
# Crear dos instancias de la clase Conductor
conductor1 = Conductor("Juan", "Pérez", "12345678", 1985, "B")
conductor2 = Conductor("María", "Gómez", "87654321", 1990, "A")