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)]