Menu
Coddy logo textTech

Wiederholung: Übung zu typedef & Enums

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 60 von 63.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein C-Programm, das enum und typedef kombiniert, um einen einfachen geometrischen Formrechner zu erstellen. Ihr Programm sollte:

  1. Definieren Sie ein enum namens ShapeType mit den folgenden Konstanten in genau dieser Reihenfolge:
    • CIRCLE
    • RECTANGLE
    • TRIANGLE
  2. Verwenden Sie typedef, um einen Typ-Alias namens Shape für das enum ShapeType zu erstellen
  3. Schreiben Sie eine Funktion namens calculateArea, die:
    • Einen Shape-Parameter namens shape entgegennimmt
    • Zwei float-Parameter namens dimension1 und dimension2 entgegennimmt
    • Einen float-Wert zurückgibt, der die berechnete Fläche darstellt
    • Eine switch-Anweisung verwendet, um die Fläche basierend auf dem Formtyp zu berechnen:
      • Für CIRCLE: area = 3.14159 * dimension1 * dimension1 (dimension1 ist der Radius)
      • Für RECTANGLE: area = dimension1 * dimension2 (Länge × Breite)
      • Für TRIANGLE: area = 0.5 * dimension1 * dimension2 (0.5 × Basis × Höhe)
  4. Schreiben Sie eine Funktion namens printShapeInfo, die:
    • Einen Shape-Parameter namens shape entgegennimmt
    • Nichts zurückgibt (void)
    • Eine switch-Anweisung verwendet, um Forminformationen auszugeben:
      • Für CIRCLE: geben Sie Shape: Circle aus
      • Für RECTANGLE: geben Sie Shape: Rectangle aus
      • Für TRIANGLE: geben Sie Shape: Triangle aus
  5. In der main-Funktion:
    • Deklarieren Sie eine Variable vom Typ Shape namens selectedShape
    • Deklarieren Sie zwei float-Variablen namens dim1 und dim2
    • Lesen Sie drei Werte von der Eingabe ein: eine Ganzzahl, die die Formwahl darstellt (0, 1 oder 2), und zwei Float-Werte für die Dimensionen
    • Weisen Sie selectedShape basierend auf der Eingabe den entsprechenden Enum-Wert zu
    • Weisen Sie die Dimensionswerte dim1 und dim2 zu
    • Rufen Sie die Funktion printShapeInfo mit selectedShape auf
    • Geben Sie die Dimensionen in genau diesem Format aus: Dimensions: [dim1] [dim2]
    • Berechnen Sie die Fläche durch Aufrufen der Funktion calculateArea
    • Geben Sie die berechnete Fläche mit genau 2 Dezimalstellen in genau diesem Format aus: Area: [area]
    • Bestimmen und geben Sie die Formkategorie basierend auf der berechneten Fläche aus:
      • Wenn die Fläche kleiner als 10.0 ist: geben Sie Category: Small aus
      • Wenn die Fläche zwischen 10.0 und 50.0 liegt (einschließlich): geben Sie Category: Medium aus
      • Wenn die Fläche größer als 50.0 ist: geben Sie Category: Large aus

Diese Herausforderung demonstriert die leistungsstarke Kombination von enum und typedef im Zusammenspiel. Das typedef erstellt einen sauberen, lesbaren Typnamen Shape, anstatt wiederholt enum ShapeType schreiben zu müssen. Die enum-Konstanten machen die switch-Anweisungen selbstdokumentierend und zeigen deutlich, was jeder Fall darstellt. Sie werden üben, beide Konzepte zu definieren, sie in Funktionsparametern zu verwenden und Logik zu implementieren, die von den Enum-Werten abhängt.

Probier es selbst

#include <stdio.h>

// TODO: Definieren Sie hier Ihr Enum ShapeType und typedef

// TODO: Implementieren Sie hier die Funktion calculateArea

// TODO: Implementieren Sie hier die Funktion printShapeInfo

int main() {
    // Eingabe lesen
    int shapeChoice;
    float dim1, dim2;
    scanf("%d", &shapeChoice);
    scanf("%f", &dim1);
    scanf("%f", &dim2);
    
    // TODO: Schreiben Sie Ihren Code unten
    // Variable selectedShape deklarieren und basierend auf shapeChoice zuweisen
    // Funktion printShapeInfo aufrufen
    // Dimensionen ausgeben
    // Fläche berechnen und ausgeben
    // Kategorie bestimmen und ausgeben
    
    return 0;
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C-Compiler