Esercizi con switch case in C++

Proponiamo degli esercizi con l’istruzione switch case in C++, al fine di assimilare bene il funzionamento di questo costrutto.

Ricordiamo che il costrutto switch consente una selezione a più vie, cioè una selezione multipla.

Esercizio 1 con switch case in C++

Uno degli esercizi con switch case in C++ che vi voglio proporre è quello già spiegato in questo tutorial:

https://www.codingcreativo.it/esercizio-con-if-else-in-c/

ma affrontato utilizzando gli if…else.

Svolgiamolo adesso utilizzando l’istruzione switch case.

Dunque riportiamo il testo dell’esercizio per comodità.

Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%.
Allora, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, richiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.

Innanzitutto dichiaro due variabili, una di tipo char per la categoria e una di tipo float che contiene il prezzo del biglietto.

Dopo valuto categoria, se è uguale a P, eseguo quello che c’è dopo i due punti, altrimenti valuto se categoria è uguale ad S, e così via.

N.B. Ho scritto la notazione abbreviata costo*=0.9.

Potevamo anche utilizzare costo-=costo*0.1;

O in forma più ‘rudimentale’ costo=costo-costo*0.1.

Allego quindi il listato completo dell’esercizio sviluppato con switch case in C++.

#include <iostream>
using namespace std;

int main() {	
    char categoria;
    float costo;

    cout << "Inserisci la categoria:\n(P = pensionati, S = studenti, D = disoccupati): ";
    cin >> categoria;
    cout << "Prezzo biglietto: ";
    cin >> costo;

    bool categoriaValida = true; // flag per gestire il default

    switch (categoria) {
        case 'P':
        case 'p':  // gestisce anche minuscole
            costo *= 0.9; // sconto 10%
            break;
        case 'S':
        case 's':  // gestisce anche minuscole
            costo *= 0.85; // sconto 15%
            break;
        case 'D':
        case 'd':  // gestisce anche minuscole
            costo *= 0.75; // sconto 25%
            break;
        default:
            cout << "Categoria non riconosciuta, paghi il prezzo intero." << endl;
            categoriaValida = false;
    }

    if (categoriaValida) {
        cout << "Pagherai: " << costo << " euro" << endl;
    } else {
        cout << "Prezzo totale: " << costo << " euro" << endl;
    }

    return 0;
}

Esercizio 2

Il secondo degli esercizi con switch case in C++ che voglio proporvi è molto semplice.

Realizzare un programma, utilizzando lo switch case, che legga in input un voto rappresentato da un carattere tra A ed E e ne stampi il significato.

Ad esempio:

A significa ottimo;

B significa distinto;

C significa discreto;

D significa sufficiente;

E significa insufficiente.

Ecco quindi il listato completo dell’esercizio proposto.

#include <iostream>
using namespace std;

int main() { 
    char voto;
    string significato;
    int errore = 0;

    cout << "Qual e' il voto (A, B, C, D o E)? ";
    cin >> voto;

    // Gestione sia maiuscole che minuscole
    voto = toupper(voto);

    switch (voto) {
        case 'A': significato = "ottimo"; break;
        case 'B': significato = "distinto"; break;
        case 'C': significato = "discreto"; break;
        case 'D': significato = "sufficiente"; break;
        case 'E': significato = "insufficiente"; break;
        default:
            cout << "Errore! Voto sbagliato! Rifare!" << endl;
            errore = 1;
    }

    if (errore == 0)
        cout << "Il voto '" << voto << "' significa: " << significato << "." << endl;

    return 0;
}

toupper(voto) → gestisce anche lettere minuscole (a, b, etc.) rendendo il programma più user-friendly.

Chiaramente questi sono solo dei semplicissimi esercizi con switch case in C++.

Alcuni link utili:

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++



Lascia un commento