Skip to content

Commit 2a63b13

Browse files
committed
feat: ✨ Update Sesión 08 Readme.md with travel agency catalog exercise
1 parent cc81389 commit 2a63b13

File tree

1 file changed

+87
-17
lines changed

1 file changed

+87
-17
lines changed

content/sesion08/Readme.md

Lines changed: 87 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,30 +2039,100 @@ psg-oop-2025/
20392039

20402040
---
20412041

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
20432043

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
20472045

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)*
20542049

20552050
---
20562051

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: `/`
20582059

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+
...
20612100
```
20622101

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*
2133+
- Implementa un catálogo con almenos 4 destinos
2134+
2135+
*(4/4)*
20662136

20672137
---
20682138
<!-- .slide: data-background-image="../../content/psg-bg-dark.png" data-background-size="100%"-->
@@ -2073,7 +2143,7 @@ nombre, precio, cantidad
20732143
<br>
20742144
<br>
20752145

2076-
[![GitHub](../../content/github_logo.png) <!-- .element width="20%"-->](https://github.com/python-la-paz/python-study-group-oop/content/sesion08)
2146+
[![GitHub](../../content/github_logo.png) <!-- .element width="20%"-->](https://github.com/python-la-paz/python-study-group-oop/tree/main/content/sesion08)
20772147

20782148
Repositorio de la Sesión
20792149

0 commit comments

Comments
 (0)