You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/sesion08/Readme.md
+87-17Lines changed: 87 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2039,30 +2039,100 @@ psg-oop-2025/
2039
2039
2040
2040
---
2041
2041
2042
-
1. Un profesor de matemáticas va enseñar números romanos. Necesita que los alumnos puedan definir un número romano y convertirlo a entero.
2042
+
1. Un profesor de matemáticas necesita una calculadora de fracciones para enseñar conceptos básicos
2043
2043
2044
-
- Deben poder sumar, restar, multiplicar y dividir números romanos entre sí.
2045
-
- Además, deben poder comparar números romanos entre sí.
2046
-
- Los números romanos deben ser representados como una cadena de caracteres.
2044
+
de aritmética. Cada fracción se representa mediante un numerador y un denominador
2047
2045
2048
-
```python
2049
-
Ejemplo:
2050
-
uno = Romano("I")
2051
-
dos = Romano("II")
2052
-
print(uno + dos) # III
2053
-
```
2046
+
Una fracción como 3/4 tiene un numerador de 3 y un denominador de 4
2047
+
2048
+
*(1/4)*
2054
2049
2055
2050
---
2056
2051
2057
-
2. Un supermercado quiere llevar un control de sus productos. Necesitan guardar todos los productos que tienen disponibles en un inventario de cada producto tienen el siguiente dato:
2052
+
Crea la clase `Fraccion` con los siguientes requisitos:
2053
+
- Tiene dos atributos: `numerador` y `denominador`
2054
+
- Representación: `"numerador/denominador"`
2055
+
- Puede sumar con otra fracción, operador: `+`
2056
+
- Puede restar con otra fracción, operador: `-`
2057
+
- Puede multiplicar con otra fracción, operador: `*`
2058
+
- Puede dividir con otra fracción, operador: `/`
2058
2059
2059
-
```markdown
2060
-
nombre, precio, cantidad
2060
+
*(2/4)*
2061
+
2062
+
---
2063
+
2064
+
Además, la clase `Fraccion` debe permitir comparar:
2065
+
2066
+
- Con otra fracción para igualdad, operador: `==`
2067
+
- Con otra fracción para menor que, operador: `<`
2068
+
- Con otra fracción para mayor que, operador: `>`
2069
+
- Con otra fracción para desigualdad, operador: `!=`
2070
+
2071
+
*(3/4)*
2072
+
2073
+
---
2074
+
2075
+
- Realiza el **análisis** y **diagrama de clases** para la clase `Fraccion` en el archivo `ejercicio_01.md`
2076
+
- Escribe el código en Python para la clase `Fraccion` en el archivo `ejercicio_01.py`
2077
+
- Asegúrate de que la clase incluya *atributos* y *métodos* coherentes con su propósito
2078
+
- Utiliza buenas prácticas de *nomenclatura*, *encapsulamiento* y *legibilidad*
2079
+
- Implementa fracciones para probar todas las operaciones y comparaciones
2080
+
2081
+
*(4/4)*
2082
+
2083
+
---
2084
+
2085
+
Una **agencia de viajes** gestiona un **catálogo digital** de destinos turísticos
2086
+
2087
+
Cada destino tiene un destino y costo, y la agencia quiere que su catálogo permita:
2088
+
2089
+
- Destino se representa:
2090
+
2091
+
`"[destino] ➡ [costo] USD"`
2092
+
2093
+
- Catálogo se representa:
2094
+
2095
+
```text
2096
+
🗺 Destinos 🗺
2097
+
1. destino
2098
+
2. destino
2099
+
...
2061
2100
```
2062
2101
2063
-
- Cuando un cliente añada un producto al carrito, se debe restar la cantidad del inventario
2064
-
- Si se elimina un producto del carrito, se debe sumar la cantidad al inventario
2065
-
- Si se finaliza la compra se vaciará el carrito sin afectar al inventario
2102
+
*(1/4)*
2103
+
2104
+
---
2105
+
2106
+
Crea la clase `Destino` con los siguientes requisitos:
2107
+
- Tiene dos atributos: `destino` y `costo`
2108
+
2109
+
Crea la clase `Catalogo` con los siguientes requisitos:
2110
+
- Tiene una colección de **destinos** turísticos
2111
+
2112
+
*(2/4)*
2113
+
2114
+
---
2115
+
2116
+
El catálogo debe permitir:
2117
+
- Ver la longitud del catálogo, `len(catalogo)`
2118
+
- Acceder por su índice, `catalogo[indice]`
2119
+
- Agregar destinos, `catalogo[indice]=destino`
2120
+
- Eliminar destinos, `del catalogo[indice]`
2121
+
- Iterar sobre los destinos, `for destino in catalogo`
2122
+
- Ver el catálogo en el formato especificado
2123
+
- Ver un destino en el formato especificado
2124
+
2125
+
*(3/4)*
2126
+
2127
+
---
2128
+
2129
+
- Realiza el **análisis** y **diagrama de clases** para las clases `Destino` y `Catalogo` en el archivo `ejercicio_02.md`
2130
+
- Escribe el código en Python para las clases `Destino` y `Catalogo` en el archivo `ejercicio_02.py`
2131
+
- Asegúrate de que la clase incluya *atributos* y *métodos* coherentes con su propósito
2132
+
- Utiliza buenas prácticas de *nomenclatura*, *encapsulamiento* y *legibilidad*
0 commit comments