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/sesion06/Readme.md
+51-39Lines changed: 51 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,8 @@
9
9
#### Agrupación y Composición
10
10
#### Relaciones entre objetos
11
11
12
+
---
13
+
### Antes de empezar
12
14
---
13
15
14
16
#### Proyecto en VSCode
@@ -1424,56 +1426,57 @@ psg-oop-2025/
1424
1426
1425
1427
---
1426
1428
1427
-
1. Simulación del transporte urbano con minibuses y pasajeros
1429
+
1. En su trayecto diario al trabajo, las personas pueden abordar distintos **minibuses**. Cada minibus está identificado por un **número de ruta** y sigue un recorrido compuesto por varias **paradas** (ubicaciones). Por otro lado, cada **pasajero** tiene un **nombre** y una **ubicación de destino** a la que desea llegar.
1430
+
1428
1431
1429
-
Las personas, al dirigirse a su trabajo, pueden tomar distintos **minibuses**.
1430
-
Cada minibus tiene un **número** de ruta y posee varias **paradas** (ubicaciones)
1432
+
*(1/5)*
1433
+
1434
+
---
1431
1435
1432
-
Por otro lado, cada **pasajero**tiene un **nombre** y una **ubicación** al que desea llegar
1436
+
Los pasajeros pueden **subir o bajar**del minibus en cualquier parada, pero bajo las siguientes condiciones:
1433
1437
1434
-
*(1/4)*
1438
+
- Un pasajero **solo puede subir** si el recorrido del minibus incluye su destino entre las paradas programadas.
1439
+
- Un pasajero **solo puede bajar** si la **parada actual** del minibus coincide con su **destino**.
1440
+
- Las paradas son **circulares**: al llegar al final del recorrido, el minibus invierte su **lista de paradas** y regresa en sentido contrario.
1441
+
1442
+
1443
+
*(2/5)*
1435
1444
1436
1445
---
1437
1446
1438
-
Los pasajeros pueden **subir o bajar** en cualquier parada pero sólo bajo ciertas condiciones:
1439
-
- Un pasajero sólo puede subir a un minibus si alguna de sus paradas coincide con su destino
1440
-
- Un pasajero sólo puede bajar en la parada **actual** que coincide con su destino
1441
-
- Las paradas son circulares, es decir, después de la última parada vuelve a la primera
1447
+
- Diseñar las clases necesarias para representar **Minibus** y **Pasajero**.
1448
+
- Toma en cuenta las siguientes características:
1449
+
- Un minibus tiene una lista de **paradas programadas** (ejemplo: `["Arce", "Prado", "Perez"]`).
1450
+
- Un minibus puede transportar **múltiples pasajeros**.
1451
+
- Simular el movimiento del minibus entre paradas y las acciones de **subida** y **bajada** de pasajeros.
1442
1452
1443
-
*(2/4)*
1453
+
*(3/5)*
1444
1454
1445
1455
---
1446
1456
1447
-
**Requisitos:**
1448
-
- Crear las clases necesarias para representar **Minibus** y **Pasajero**.
1449
-
- Implementar la relación entre las clases: un minibus tiene varias paradas programadas y un minibus tiene varios pasajeros
1450
-
- Simular el movimiento del minibus entre las paradas y las acciones de subir o bajar pasajeros.
1457
+
- Realiza el **análisis** y **diagrama de clases** para las clases `Minibus` y `Pasajero` en el archivo `ejercicio_01.md`.
1458
+
- Escribe el código en Python para las clases `Minibus` y `Pasajero` en el archivo `ejercicio_01.py`.
1459
+
- Aplica los principios de **relaciones entre las clases** (composición o agregación según corresponda).
1451
1460
1452
-
*(3/4)*
1461
+
*(4/5)*
1453
1462
1454
1463
---
1455
1464
1456
-
**Tareas:**
1457
-
- Realiza el **análisis y diagrama de clases** en el archivo `ejercicio_01.md`.
1458
-
- Escribe el **código en Python** correspondiente en el archivo `ejercicio_01.py`.
1459
-
- Aplica los conceptos de **relaciones entre objetos**.
1460
-
- Asegúrate de que las clases tengan atributos y métodos coherentes con su función.
1461
-
- Utiliza buenas prácticas de **nomenclatura y encapsulamiento**.
1465
+
- Asegúrate de que las clases incluyan *atributos* y *métodos* coherentes con su propósito.
1466
+
- Utiliza buenas prácticas de *nomenclatura*, *encapsulamiento* y *legibilidad*.
1462
1467
1463
-
*(4/4)*
1464
1468
1469
+
*(5/5)*
1465
1470
1466
-
---
1467
1471
1468
-
2. Sistema para administrar un edificio
1472
+
---
1469
1473
1470
-
Se desea representar un **edificio** ubicado en la ciudad de **La Paz**, el cual cuenta con **3 pisos**.
1471
-
Cada piso contiene **departamentos** y **oficinas**.
1474
+
2. Se debe modelar un edificio ubicado en la ciudad de La Paz, compuesto por 3 pisos. Cada piso contiene una combinación de **departamentos** y **oficinas**
1472
1475
1473
-
- Cada **departamento** tiene un **número** de departamento, comienza con el número del piso seguido de *número* de departamento (*201* o *304*).
1474
-
- Cada **oficina** tiene un **número** de oficina, comienza con el número del piso seguido de una **letra** (*2A* o *3C*).
1476
+
- Cada **departamento** tiene un *número* que comienza con el número del piso seguido de un número de unidad (por ejemplo: `201`, `304`).
1477
+
- Cada **oficina** tiene un *número* que comienza con el número del piso seguido de una letra (por ejemplo: `2A`, `3C`).
1475
1478
1476
-
*(1/4)*
1479
+
*(1/5)*
1477
1480
1478
1481
---
1479
1482
@@ -1483,25 +1486,34 @@ Además:
1483
1486
- Las **oficinas** cuentan con un atributo `telefono`.
1484
1487
- Los **departamentos** tienen un atributo `inquilinos`.
1485
1488
1486
-
El sistema debe permitir crear pisos con sus departamentos y oficinas correspondientes, y acceder a la información del edificio de forma organizada.
1489
+
*(2/5)*
1490
+
1491
+
---
1492
+
1493
+
El sistema debe permitir:
1494
+
- Crear un **edificio** con sus pisos correspondientes.
1495
+
- Agregar **departamentos** y **oficinas** a cada **piso**.
1496
+
-**Acceder** y **mostrar** la información del edificio de forma organizada y jerárquica
1497
+
1487
1498
1488
-
*(2/4)*
1499
+
*(3/5)*
1489
1500
1490
1501
---
1491
1502
1492
-
**Tareas:**
1493
1503
- Realiza el **análisis y diagrama de clases** de las clases `Edificio`, `Piso`, `Departamento` y `Oficina` en el archivo `ejercicio_02.md`.
1494
-
- Escribe el **código en Python** correspondiente en el archivo `ejercicio_02.py`.
1495
-
- Implementa relaciones jerárquicas entre las clases (por ejemplo, un edificio contiene pisos, y cada piso contiene oficinas y departamentos).
1504
+
- Escribe el **código en Python** de las clases `Edificio`, `Piso`, `Departamento` y `Oficina` en el archivo `ejercicio_02.py`.
1505
+
- Implementa relaciones jerárquicas entre objetos:
1506
+
- Un edificio contiene varios pisos.
1507
+
- Cada piso contiene varios departamentos y oficinas
1496
1508
1497
-
*(3/4)*
1509
+
*(4/5)*
1498
1510
1499
1511
---
1512
+
- Aplica los principios de **relaciones entre las clases** (composición o agregación según corresponda).
1513
+
- Utiliza *atributos* y *métodos* adecuados para *representar* y *mostrar* la información de cada entidad.
1514
+
- Utiliza buenas prácticas de *nomenclatura*, *encapsulamiento* y *legibilidad*.
1500
1515
1501
-
- Aplica los conceptos de **relaciones entre objetos**.
1502
-
- Utiliza propiedades y métodos adecuados para mostrar la información de cada edificio, piso, departamento y oficina.
0 commit comments