Esercizi Enumeratori C++
Codegrind Team•Jul 22 2023
Ecco degli esercizi semplici con soluzione per praticare le basi degli enumeratori in C++.
Esercizio 1
Definisci un enum in C++ che rappresenti i giorni della settimana. Stampa a schermo il nome del giorno corrispondente a un valore specifico.
#include <iostream>
using namespace std;
enum GiorniSettimana {
Lunedi,
Martedi,
Mercoledi,
Giovedi,
Venerdi,
Sabato,
Domenica
};
int main() {
GiorniSettimana giorno = Martedi;
switch (giorno) {
case Lunedi:
cout << "Lunedì" << endl;
break;
case Martedi:
cout << "Martedì" << endl;
break;
case Mercoledi:
cout << "Mercoledì" << endl;
break;
case Giovedi:
cout << "Giovedì" << endl;
break;
case Venerdi:
cout << "Venerdì" << endl;
break;
case Sabato:
cout << "Sabato" << endl;
break;
case Domenica:
cout << "Domenica" << endl;
break;
default:
cout << "Valore non valido" << endl;
}
return 0;
}
Esercizio 2
Definisci un enum in C++ che rappresenti le stagioni dell'anno. Scrivi una funzione che, dato un valore numerico, restituisca la stagione corrispondente.
#include <iostream>
using namespace std;
enum Stagioni {
Primavera = 1,
Estate,
Autunno,
Inverno
};
string StagioneCorrispondente(int valore) {
switch (valore) {
case Primavera:
return "Primavera";
case Estate:
return "Estate";
case Autunno:
return "Autunno";
case Inverno:
return "Inverno";
default:
return "Valore non valido";
}
}
int main() {
int valore = 3;
string stagione = StagioneCorrispondente(valore);
cout << "Il valore " << valore << " corrisponde alla stagione: " << stagione << endl;
return 0;
}
Esercizio 3
Definisci un enum in C++ che rappresenti i mesi dell'anno. Scansiona un intero da input e restituisci il nome del mese corrispondente.
#include <iostream>
using namespace std;
enum Mesi {
Gennaio = 1,
Febbraio,
Marzo,
Aprile,
Maggio,
Giugno,
Luglio,
Agosto,
Settembre,
Ottobre,
Novembre,
Dicembre
};
int main() {
int numeroMese;
cout << "Inserisci un numero da 1 a 12: ";
cin >> numeroMese;
if (numeroMese >= Gennaio && numeroMese <= Dicembre) {
switch (numeroMese) {
case Gennaio:
cout << "Gennaio" << endl;
break;
case Febbraio:
cout << "Febbraio" << endl;
break;
case Marzo:
cout << "Marzo" << endl;
break;
case Aprile:
cout << "Aprile" << endl;
break;
case Maggio:
cout << "Maggio" << endl;
break;
case Giugno:
cout << "Giugno" << endl;
break;
case Luglio:
cout << "Luglio" << endl;
break;
case Agosto:
cout << "Agosto" << endl;
break;
case Settembre:
cout << "Settembre" << endl;
break;
case Ottobre:
cout << "Ottobre" << endl;
break;
case Novembre:
cout << "Novembre" << endl;
break;
case Dicembre:
cout << "Dicembre" << endl;
break;
}
} else {
cout << "Numero non valido" << endl;
}
return 0;
}
Esercizio 4
Definisci un enum in C++ che rappresenti i tipi di carta da gioco (cuori, quadri, fiori, picche). Stampa a schermo il nome del tipo di carta corrispondente a un valore specifico.
#include <iostream>
using namespace std;
enum TipiCarte {
Cuori,
Quadri,
Fiori,
Picche
};
int main() {
TipiCarte carta = Fiori;
switch (carta) {
case Cuori:
cout << "Cuori" << endl;
break;
case Quadri:
cout << "Quadri" << endl;
break;
case Fiori:
cout << "Fiori" << endl;
break;
case Picche:
cout << "Picche" << endl;
break;
default:
cout << "Valore non valido" << endl;
}
return 0;
}
Esercizio 5
Definisci un enum in C++ che rappresenti i giorni della settimana. Scansiona un valore intero da input e verifica se corrisponde a un giorno lavorativo o a un giorno festivo.
#include <iostream>
using namespace std;
enum GiorniSettimana {
Lunedi,
Martedi,
Mercoledi,
Giovedi,
Venerdi,
Sabato,
Domenica
};
int main() {
int giorno;
cout << "Inserisci un numero da 1 a 7: ";
cin >> giorno;
if (giorno >= Lunedi && giorno <= Domenica) {
if (giorno >= Lunedi && giorno <= Venerdi) {
cout << "Giorno lavorativo" << endl;
} else {
cout << "Giorno festivo" << endl;
}
} else {
cout << "Numero non valido" << endl;
}
return 0;
}
Esercizio 6
Definisci un enum in C++ che rappresenti le operazioni matematiche (somma, sottrazione, moltiplicazione, divisione). Scrivi una funzione che, dato un valore numerico, restituisca il simbolo corrispondente all'operazione.
#include <iostream>
using namespace std;
enum OperazioniMatematiche {
Somma,
Sottrazione,
Moltiplicazione,
Divisione
};
char SimboloOperazione(int valore) {
switch (valore) {
case Somma:
return '+';
case Sottrazione:
return '-';
case Moltiplicazione:
return '*';
case Divisione:
return '/';
default:
return '?';
}
}
int main() {
int valore = 2;
char simbolo = SimboloOperazione(valore);
cout << "Il valore " << valore << " corrisponde al simbolo: " << simbolo << endl;
return 0;
}
Esercizio 7
Definisci un enum in C++ che rappresenti i tipi di dati primitivi (intero, reale, carattere, booleano). Scansiona un valore intero da input e verifica se corrisponde a un tipo di dato valido.
#include <iostream>
using namespace std;
enum TipiDati {
Intero,
Reale,
Carattere,
Booleano
};
int main() {
int valore;
cout << "Inserisci un valore intero: ";
cin >> valore;
switch (valore) {
case Intero:
cout << "Tipo di dato: Intero" << endl;
break;
case Reale:
cout << "Tipo di dato: Reale" << endl;
break;
case Carattere:
cout << "Tipo di dato: Carattere" << endl;
break;
case Booleano:
cout << "Tipo di dato: Booleano" << endl;
break;
default:
cout << "Valore non valido" << endl;
}
return 0;
}
Esercizio 8
Definisci un enum in C++ che rappresenti le direzioni (su, giù, destra, sinistra). Stampa a schermo il nome della direzione corrispondente a un valore specifico.
#include <iostream>
using namespace std;
enum Direzioni {
Su,
Giu,
Destra,
Sinistra
};
int main() {
Direzioni direzione = Sinistra;
switch (direzione) {
case Su:
cout << "Su" << endl;
break;
case Giu:
cout << "Giu" << endl;
break;
case Destra:
cout << "Destra" << endl;
break;
case Sinistra:
cout << "Sinistra" << endl;
break;
default:
cout << "Valore non valido" << endl;
}
return 0;
}
Esercizio 9
Definisci un enum in C++ che rappresenti i mesi dell'anno. Scansiona due numeri interi da input che rappresentano due mesi e verifica se sono consecutivi.
#include <iostream>
using namespace std;
enum Mesi {
Gennaio = 1,
Febbraio,
Marzo,
Aprile,
Maggio,
Giugno,
Luglio,
Agosto,
Settembre,
Ottobre,
Novembre,
Dicembre
};
int main() {
int mese1, mese2;
cout << "Inserisci il primo mese (numero da 1 a 12): ";
cin >> mese1;
cout << "Inserisci il secondo mese (numero da 1 a 12): ";
cin >> mese2;
if ((mese1 >= Gennaio && mese1 <= Dicembre) && (mese2 >= Gennaio && mese2 <= Dicembre)) {
if (mese2 == mese1 + 1 || (mese1 == Dicembre && mese2 == Gennaio)) {
cout << "I mesi sono consecutivi" << endl;
} else {
cout << "I mesi non sono consecutivi" << endl;
}
} else {
cout << "Numeri non validi" << endl;
}
return 0;
}
Esercizio 10
Definisci un enum in C++ che rappresenti i tipi di dati primitivi (intero, reale, carattere, booleano). Scrivi una funzione che, dato un tipo di dato, restituisca la sua dimensione in byte.
#include <iostream>
using namespace std;
enum TipiDati {
Intero,
Reale,
Carattere,
Booleano
};
int DimensioneTipoDato(TipiDati tipo) {
switch (tipo) {
case Intero:
return sizeof(int);
case Reale:
return sizeof(float);
case Carattere:
return sizeof(char);
case Booleano:
return sizeof(bool);
default:
return -1;
}
}
int main() {
TipiDati tipo = Carattere;
int dimensione = DimensioneTipoDato(tipo);
if (dimensione != -1) {
cout << "Il tipo di dato ha dimensione: " << dimensione << " byte" << endl;
} else {
cout << "Tipo di dato non valido" << endl;
}
return 0;
}