🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

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;
}