Menu
Coddy logo textTech

Repaso: Práctica de typedef y enums

Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 60 de 63.

challenge icon

Desafío

Fácil

Crea un programa en C que combine enum y typedef para construir una calculadora sencilla de formas geométricas. Tu programa debe:

  1. Definir un enum llamado ShapeType con las siguientes constantes en este orden exacto:
    • CIRCLE
    • RECTANGLE
    • TRIANGLE
  2. Usar typedef para crear un alias de tipo llamado Shape para el enum ShapeType
  3. Escribir una función llamada calculateArea que:
    • Reciba un parámetro Shape llamado shape
    • Reciba dos parámetros float llamados dimension1 y dimension2
    • Devuelva un float que represente el área calculada
    • Use una instrucción switch para calcular el área según el tipo de forma:
      • Para CIRCLE: área = 3.14159 * dimension1 * dimension1 (dimension1 es el radio)
      • Para RECTANGLE: área = dimension1 * dimension2 (longitud × anchura)
      • Para TRIANGLE: área = 0.5 * dimension1 * dimension2 (0.5 × base × altura)
  4. Escribir una función llamada printShapeInfo que:
    • Reciba un parámetro Shape llamado shape
    • No devuelva nada (void)
    • Use una instrucción switch para imprimir información sobre la forma:
      • Para CIRCLE: imprimir Shape: Circle
      • Para RECTANGLE: imprimir Shape: Rectangle
      • Para TRIANGLE: imprimir Shape: Triangle
  5. En la función main:
    • Declarar una variable de tipo Shape llamada selectedShape
    • Declarar dos variables float llamadas dim1 y dim2
    • Leer tres valores de la entrada: un entero que represente la opción de forma (0, 1 o 2), y dos valores float para las dimensiones
    • Asignar el valor enum correspondiente a selectedShape según la entrada
    • Asignar los valores de las dimensiones a dim1 y dim2
    • Llamar a la función printShapeInfo con selectedShape
    • Imprimir las dimensiones en este formato exacto: Dimensions: [dim1] [dim2]
    • Calcular el área llamando a la función calculateArea
    • Imprimir el área calculada con exactamente 2 decimales en este formato exacto: Area: [area]
    • Determinar e imprimir la categoría de la forma según el área calculada:
      • Si el área es menor que 10.0: imprimir Category: Small
      • Si el área está entre 10.0 y 50.0 (inclusive): imprimir Category: Medium
      • Si el área es mayor que 50.0: imprimir Category: Large

Este desafío demuestra la potente combinación de enum y typedef trabajando conjuntamente. typedef crea un nombre de tipo limpio y legible, Shape, en lugar de escribir repetidamente enum ShapeType. Las constantes de enum hacen que las instrucciones switch sean autoexplicativas, mostrando claramente qué representa cada caso. Practicarás la definición de ambos conceptos, su uso en parámetros de funciones y la implementación de lógica que depende de los valores del enum.

Pruébalo tú mismo

#include <stdio.h>

// TODO: Define tu enum ShapeType y typedef aquí

// TODO: Implementa la función calculateArea aquí

// TODO: Implementa la función printShapeInfo aquí

int main() {
    // Leer entrada
    int shapeChoice;
    float dim1, dim2;
    scanf("%d", &shapeChoice);
    scanf("%f", &dim1);
    scanf("%f", &dim2);
    
    // TODO: Escribe tu código a continuación
    // Declara la variable selectedShape y asígnala basándote en shapeChoice
    // Llama a la función printShapeInfo
    // Imprimir dimensiones
    // Calcular e imprimir el área
    // Determinar e imprimir la categoría
    
    return 0;
}

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C online