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, se prohíbe el uso de sistemas de inteligencia artificial (IA) como ChatGPT o Copilot. El propósito es evaluar tu habilidad de programar de manera auténtica y sin ayuda de herramientas externas.
El incumplimiento de esta regla será considerado una violación académica y puede resultar en sanciones. Revisa la documentación oficial y otros recursos educativos, y no dudes en preguntar a tu profesor si tienes dudas.
¡Confía en tus habilidades y demuestra tu potencial!
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: 10 de junio, 2024. // Autores: // A01770771 Sylvie Laufeydottir // A01777771 Loki Laufeyson // ----------------------------------------------------------
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 10 de junio.