Menu
Coddy logo textTech

Dichiarare e usare gli enum

Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 56 di 63.

Ora che hai definito un enum, puoi creare variabili di quel tipo enum e assegnare loro valori significativi. È qui che gli enum danno il meglio: invece di lavorare con numeri confusi, usi nomi descrittivi.

Per dichiarare una variabile di tipo enum, usi la stessa sintassi che useresti per dichiarare qualsiasi altra variabile:

enum DayOfWeek today;
enum DayOfWeek weekend_day;

Puoi quindi assegnare valori a queste variabili usando le costanti con nome del tuo enum:

today = WEDNESDAY;
weekend_day = SATURDAY;

Confronta questo con l’uso di numeri grezzi: today = 2; e weekend_day = 5;. La versione con enum ti dice subito con quale giorno stai lavorando, mentre con i numeri devi ricordare cosa rappresenta ogni valore. Questo rende il tuo codice molto più leggibile e meno soggetto a errori.

challenge icon

Sfida

Facile

Crea un programma in C che dimostri come dichiarare e usare variabili enum per un semplice sistema di gestione delle attività. Il programma deve:

  1. Definire un enum chiamato TaskStatus con le seguenti costanti in questo ordine esatto:
    • PENDING
    • IN_PROGRESS
    • COMPLETED
    • CANCELLED
  2. Nella funzione principale:
    • Dichiarare tre variabili di tipo enum TaskStatus chiamate task1, task2 e task3
    • Leggere dall'input tre numeri interi che rappresentano lo stato di ciascuna attività (0, 1, 2 o 3)
    • Assegnare i valori enum corrispondenti a ciascuna variabile dell'attività in base all'input:
      • Se l'input è 0, assegnare PENDING
      • Se l'input è 1, assegnare IN_PROGRESS
      • Se l'input è 2, assegnare COMPLETED
      • Se l'input è 3, assegnare CANCELLED
    • Stampare lo stato di ciascuna attività usando i valori enum in questo formato esatto:
      • Task 1 status: [numeric_value]
      • Task 2 status: [numeric_value]
      • Task 3 status: [numeric_value]
    • Contare e stampare quante attività rientrano in ciascuna categoria di stato:
      • Pending tasks: [count]
      • In progress tasks: [count]
      • Completed tasks: [count]
      • Cancelled tasks: [count]
    • Calcolare e stampare il numero totale di attività attive (attività che sono PENDING o IN_PROGRESS) in questo formato esatto: Active tasks: [count]

Questa sfida dimostra come le variabili enum rendano il codice più leggibile usando nomi significativi invece di numeri grezzi. Ti eserciterai a dichiarare variabili enum, assegnare valori enum in base all'input, usare costanti enum nei confronti ed eseguire calcoli con valori enum.

Provalo tu

#include <stdio.h>

// TODO: Definisci qui l'enum TaskStatus

int main() {
    // Leggi l'input per gli stati di tre attività
    int status1, status2, status3;
    scanf("%d", &status1);
    scanf("%d", &status2);
    scanf("%d", &status3);
    
    // TODO: Dichiara tre variabili di tipo enum TaskStatus (task1, task2, task3)
    
    // TODO: Assegna i valori dell'enum in base all'input
    
    // TODO: Stampa gli stati delle attività
    
    // TODO: Conta le attività in ogni categoria
    
    // TODO: Calcola e stampa il numero di attività attive
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C online