
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++