Esercizi SWITCH-CASE
/* Esercizi di base in C++ sul Costrutto di Selezione Multipla SWITCH – CASE */
1. Un onda marina anomala dimezza la propria altezza ogni chilometro percorso e scompare raggiungendo un’altezza pari a zero quando l’altezza scende al di sotto del metro. Con l’utilizzo dello Switch-Case realizzare un unico programma con le seguenti caratteristiche:
- Progettare un algoritmo che calcoli, a partire dai valori dell’ altezza iniziale h e dal numero di chilometri percorsi k, l’altezza raggiunta dall’onda.
- Modificare l’algoritmo precedente in modo che, a partire dalla sola altezza iniziale dell’onda h, determini il numero di chilometri necessario prima che essa scompaia.
// Onda Marina
/*****************************/
#include <iostream>
using namespace std;
int main() {
float h, k, k1;
int opt;
cout<<"inserisci l'altezza dell'onda"<<endl;
cin>>h;
cout<<"se conosci il numero di km percorsi scegli 1, altrimenti scegli 2"<<endl;
cin>>opt;
switch(opt){
case 1:{
cout<<"inserisci il numero di km percorsi"<<endl;
cin>>k1;
k=k1;
while(k>0){
h=h*0.5;
k=k-1;
}
cout<<"altezza raggiunta dopo "<<k1<<"km: "<<h<<"m"<<endl;
} break;
case 2:{
k=0;
while(h>1){
h=h*0.5;
k=k+1;
}
cout<<"onda azzerata dopo km: "<<k<<endl;
} break;
}
return 0;
}
2. Calcolo del Segno Zodiacale
// Dati mese e giorno di nascita, calcola il segno zodiacale corrispondente
#include <iostream>
#include "conio.h"
using namespace std;
int main(){
int mese, giorno, MaxGiorni;
while (mese!=0){ //Inserendo 0 il programma termina
system ("cls");
cout<<"\t\t\t\tOROSCOPO\n\n";
cout<<"Inserire il mese di nascita (Premi 0 per uscire): ";
cin>>mese;
if (mese>-1 && mese<13){
if (mese==0){
cout<<"Programma terminato. Chiudere la finestra di applicazione.";
}
else{
if (mese==11 || mese==4 || mese==6 || mese==9){
MaxGiorni=30;
}
if (mese==2){
MaxGiorni=29;
}
if (mese==1 || mese==3 || mese==5 || mese==7 || mese==8 || mese==10 || mese==12) {
MaxGiorni=31;
}
cout<<"Inserire il giorno di nascita: ";
cin>>giorno;
if (giorno<1 || giorno>MaxGiorni){
cout<<"Scelta non valida!\n";
}
else
{
switch(mese){
case 1: //Gennaio
if (giorno<22){
cout<<"Il segno zodiacale dei nati in questa data è CAPRICORNO\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è ACQUARIO\n";
}
break;
case 2: //Febbraio
if (giorno<20){
cout<<"Il segno zodiacale dei nati in questa data è ACQUARIO\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è PESCI\n";
}
break;
case 3: //Marzo
if (giorno<21){
cout<<"Il segno zodiacale dei nati in questa data è PESCI\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è ARIETE\n";
}
break;
case 4: //Aprile
if (giorno<21){
cout<<"Il segno zodiacale dei nati in questa data è ARIETE\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è TORO\n";
}
break;
case 5: //Maggio
if (giorno<22){
cout<<"Il segno zodiacale dei nati in questa data è TORO\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è GEMELLI\n";
}
break;
case 6: //Giugno
if (giorno<22){
cout<<"Il segno zodiacale dei nati in questa data è GEMELLI\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è CANCRO\n";
}
break;
case 7: //Luglio
if (giorno<23){
cout<<"Il segno zodiacale dei nati in questa data è CANCRO\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è LEONE\n";
}
break;
case 8: //Agosto
if (giorno<23){
cout<<"Il segno zodiacale dei nati in questa data è LEONE\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è VERGINE\n";
}
break;
case 9: //Settembre
if (giorno<23){
cout<<"Il segno zodiacale dei nati in questa data è VERGINE\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è BILANCIA\n";
}
break;
case 10: //Ottobre
if (giorno<23){
cout<<"Il segno zodiacale dei nati in questa data è BILANCIA\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è SCORPIONE\n";
}
break;
case 11: //Novembre
if (giorno<22){
cout<<"Il segno zodiacale dei nati in questa data è SCORPIONE\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è SAGITTARIO\n";
}
break;
case 12: //Dicembre
if (giorno<22){
cout<<"Il segno zodiacale dei nati in questa data è SAGITTARIO\n";
}
else{
cout<<"Il segno zodiacale dei nati in questa data è CAPRICORNO\n";
}
break;
}
}
cout<<"\nPremi un tasto per continuare...";
getch();
}
}
}
// [Esercizi testati con Dev-C++ in Ambiente Windows e con Code::Blocks in ambiente Linux (Ubuntu)]
