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:\ncategoria P = pensionati, S = studenti, D = disoccupati):\t ";
cin >> categoria ;
cout << "prezzo biglietto:\t ";
cin >> costo;
switch (categoria) {
case 'P': costo *= 0.9;
break;
case 'S': costo *= 0.85;
break;
case 'D': costo *= 0.75;
break;
default: cout << "paghi il prezzo intero" << endl;
}
cout << "Pagherai : \t" << costo << 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;
cout << "Qual e' il voto (A, B, C, D o E)?"<<endl;
cin >> voto;
int errore = 0;
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 \t" << significato << "."<< endl;
return 0;
}
Chiaramente questi sono solo dei semplicissimi esercizi con switch case in C++.
Alcuni link utili:
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++