Durante esta práctica, los alumnos serán capaces de:
Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.
Para esta actividad de programación, el uso de herramientas asistidas por IA, como GitHub Copilot, ChatGPT, Gemini o plataformas similares, para generar código automáticamente está estrictamente prohibido. El uso de herramientas de IA de esta manera socava el proceso de aprendizaje y viola las políticas de integridad académica. El propósito de esta tarea es evaluar su comprensión y aplicación de los conceptos cubiertos en el curso. El incumplimiento de estas pautas puede resultar en sanciones académicas, que incluyen, entre otras, una calificación más baja.
Si tienes alguna pregunta sobre la tarea o necesitas una aclaración sobre algún concepto, no dudes en visitar a tu profesor durante las horas de asesoría. Confía únicamente en tu conocimiento, los materiales del curso y cualquier recurso autorizado proporcionado por el profesor.
Esta práctica debe ser elaborada en los equipos de dos personas ya constituidos.
A partir del código de C++ elaborado en clase, crea una nueva clase llamada Pentagon
que herede de la clase Figure
. La nueva clase debe tener un atributo privado llamado _side
de tipo double
para representar la longitud de cada lado del pentágono. Así mismo debe proporcionar las siguientes operaciones declaradas en el archivo pentagon.h
y definidas en el archivo pentagon.cpp
:
Función miembro | Descripción |
---|---|
|
Constructor usado para inicializar una instancia de la clase |
|
Sobrescribe la función Fórmula: $$ \textit{perimeter} = 5 \times \textit{side} $$ |
|
Sobrescribe la función Fórmula: $$ \textit{area} = \frac {\textit{perimeter} \times \textit{apothem}}{2} $$En donde: $$ \textit{apothem} = \frac{\textit{side}}{2 \times \tan\left ( \frac{\pi}{5} \right )} $$
NOTA: Para usar la función #include <cmath>
|
Prueba tu código utilizando el siguiente archivo main.cpp
:
// Archivo: main.cpp // Para compilar y correr: // // g++ *.cpp -o main && ./main #include <iostream> #include <vector> #include "figure.h" #include "rectangle.h" #include "circle.h" #include "square.h" #include "pentagon.h" int main() { Circle a(1.0); Circle b(2.5); Rectangle c(2.0, 3.0); Rectangle d(7.25, 2.4); Square e(5.0); Square f(8.5); Pentagon g(6.0); Pentagon h(1.25); std::vector<Figure*> figures = {&a, &b, &c, &d, &e, &f, &g, &h}; for (Figure* p : figures) { std::cout << *p << "\n"; } return 0; }
Asegúrate que la salida sea idéntica a lo siguiente:
I'm a circle. My area is: 3.141593, my perimeter is: 6.283185 I'm a circle. My area is: 19.634954, my perimeter is: 15.707963 My area is: 6.000000, my perimeter is: 10.000000 My area is: 17.400000, my perimeter is: 19.300000 My area is: 25.000000, my perimeter is: 20.000000 My area is: 72.250000, my perimeter is: 34.000000 My area is: 61.937186, my perimeter is: 30.000000 My area is: 2.688246, my perimeter is: 6.250000
Todos los archivos de esta actividad deben estar contenidos en un directorio llamado figures
.
Cada uno de los archivos fuente (archivos .h
y .cpp
) debe incluir en la parte superior y dentro de un comentario la información personal de los autores (matrícula y nombre). Por ejemplo:
// ---------------------------------------------------------- // Práctica 2: Clase Pentagon // Fecha: 9 de junio, 2025. // Autores: // A01770771 James Howlett // A01777771 Wade Wilson // ----------------------------------------------------------
Crea un archivo comprimido TAR GZ o ZIP con el contenido completo del directorio figures
. El archivo resultante se debe llamar figures.tar.gz
o figures.zip
.
Para entregar el archivo figures.tar.gz/figures.zip
, ingresa los siguientes datos:
Solo es necesario que lo entregue un miembro del equipo.
La fecha límite es el lunes 9 de junio.