Ecco degli esercizi semplici con soluzione per praticare le basi enum in C.
Esercizio 1
Definire un enum per i giorni della settimana e stamparli a schermo:
#include <stdio.h>
enum GiorniSettimana { Lunedi, Martedi, Mercoledi, Giovedi, Venerdi, Sabato, Domenica};
int main() { enum GiorniSettimana oggi = Martedi;
printf("Oggi è %d\n", oggi);
return 0;}
Esercizio 2
Utilizzare un enum come parametro di una funzione:
#include <stdio.h>
enum Mesi { Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, Ottobre, Novembre, Dicembre};
void stampaMese(enum Mesi mese) { switch (mese) { case Gennaio: printf("Gennaio\n"); break; case Febbraio: printf("Febbraio\n"); break; case Marzo: printf("Marzo\n"); break; case Aprile: printf("Aprile\n"); break; case Maggio: printf("Maggio\n"); break; case Giugno: printf("Giugno\n"); break; case Luglio: printf("Luglio\n"); break; case Agosto: printf("Agosto\n"); break; case Settembre: printf("Settembre\n"); break; case Ottobre: printf("Ottobre\n"); break; case Novembre: printf("Novembre\n"); break; case Dicembre: printf("Dicembre\n"); break; default: printf("Mese non valido\n"); }}
int main() { enum Mesi meseCorrente = Settembre;
stampaMese(meseCorrente);
return 0;}
Esercizio 3
Definire un enum con valori personalizzati:
#include <stdio.h>
enum Colori { Rosso = 1, Verde = 5, Blu = 10};
int main() { enum Colori colorePreferito = Verde;
printf("Il mio colore preferito ha valore %d\n", colorePreferito);
return 0;}
Esercizio 4
Utilizzare un enum in un'istruzione switch:
#include <stdio.h>
enum Stato { Acceso, Spento, InStandBy};
void stampaStato(enum Stato stato) { switch (stato) { case Acceso: printf("Il dispositivo è acceso.\n"); break; case Spento: printf("Il dispositivo è spento.\n"); break; case InStandBy: printf("Il dispositivo è in standby.\n"); break; default: printf("Stato non valido.\n"); }}
int main() { enum Stato statoDispositivo = Acceso;
stampaStato(statoDispositivo);
return 0;}
Esercizio 5
Utilizzare un enum per indicare il risultato di un'operazione:
#include <stdio.h>
enum Risultato { Successo, Errore};
enum Risultato somma(int a, int b) { int risultato = a + b;
if (risultato > 100) { return Successo; } else { return Errore; }}
int main() { int numero1 = 50; int numero2 = 70;
enum Risultato risultatoSomma = somma(numero1, numero2);
if (risultatoSomma == Successo) { printf("La somma dei numeri è maggiore di 100.\n"); } else { printf("La somma dei numeri è minore o uguale a 100.\n"); }
return 0;}
Esercizio 6
Utilizzare un enum per indicare le operazioni matematiche:
#include <stdio.h>
enum Operazioni { Somma, Sottrazione, Moltiplicazione, Divisione};
int calcola(int a, int b, enum Operazioni operazione) { switch (operazione) { case Somma: return a + b; case Sottrazione: return a - b; case Moltiplicazione: return a * b; case Divisione: return a / b; default: printf("Operazione non valida.\n"); return 0; }}
int main() { int numero1 = 10; int numero2 = 5;
enum Operazioni operazione = Somma;
int risultato = calcola(numero1, numero2, operazione);
printf("Il risultato dell'operazione è %d\n", risultato);
return 0;}
Esercizio 7
Utilizzare un enum per definire le costanti:
#include <stdio.h>
enum Costanti { PI = 3.14159, GRAVITA = 9.81, VELOCITA_LUCE = 299792458};
int main() { float raggio = 5.0; float area = PI * raggio * raggio;
printf("L'area del cerchio è %f\n", area);
return 0;}
Esercizio 8
Utilizzare un enum per definire il tipo di veicolo:
#include <stdio.h>
enum TipoVeicolo { Auto, Moto, Bicicletta};
void stampaTipoVeicolo(enum TipoVeicolo tipoVeicolo) { switch (tipoVeicolo) { case Auto: printf("Il veicolo è un'auto.\n"); break; case Moto: printf("Il veicolo è una moto.\n"); break; case Bicicletta: printf("Il veicolo è una bicicletta.\n"); break; default: printf("Tipo di veicolo non valido.\n"); }}
int main() { enum TipoVeicolo veicolo1 = Auto; enum TipoVeicolo veicolo2 = Moto; enum TipoVeicolo veicolo3 = Bicicletta;
stampaTipoVeicolo(veicolo1); stampaTipoVeicolo(veicolo2); stampaTipoVeicolo(veicolo3);
return 0;}
Esercizio 9
Utilizzare un enum per definire le opzioni di un menu:
#include <stdio.h>
enum OpzioniMenu { Visualizza, Aggiungi, Modifica, Elimina, Esci};
void eseguiOpzione(enum OpzioniMenu opzione) { switch (opzione) { case Visualizza: printf("Hai selezionato Visualizza.\n"); break; case Aggiungi: printf("Hai selezionato Aggiungi.\n"); break; case Modifica: printf("Hai selezionato Modifica.\n"); break; case Elimina: printf("Hai selezionato Elimina.\n"); break; case Esci: printf("Hai selezionato Esci.\n"); break; default: printf("Opzione non valida.\n"); }}
int main() { enum OpzioniMenu opzioneScelta = Aggiungi;
eseguiOpzione(opzioneScelta);
return 0;}
Esercizio 10
Utilizzare un enum per definire il livello di accesso:
#include <stdio.h>
enum LivelliAccesso { Utente, Amministratore, Sviluppatore};
void eseguiAzione(enum LivelliAccesso livello) { switch (livello) { case Utente: printf("Benvenuto Utente.\n"); break; case Amministratore: printf("Benvenuto Amministratore.\n"); break; case Sviluppatore: printf("Benvenuto Sviluppatore.\n"); break; default: printf("Livello di accesso non valido.\n"); }}
int main() { enum LivelliAccesso livelloUtente = Amministratore;
eseguiAzione(livelloUtente);
return 0;}