# Informatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch

Informatica 2 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
* Linguaggi di programmazioneInformatica 2 Liceo Scientifico Scienze Applicate/Linguaggi di programmazione
* Compilare un programmaInformatica 2 Liceo Scientifico Scienze Applicate/Compilare un programma
* CiaoMondoInformatica 2 Liceo Scientifico Scienze Applicate/CiaoMondo
* AreaRettangoloInformatica 2 Liceo Scientifico Scienze Applicate/AreaRettangolo
* AreaTrapezioInformatica 2 Liceo Scientifico Scienze Applicate/AreaTrapezio
** Compito1Informatica 2 Liceo Scientifico Scienze Applicate/Compito1
* Programmazione ImperativaInformatica 2 Liceo Scientifico Scienze Applicate/Programmazione Imperativa
* Diagrammi di FlussoInformatica 2 Liceo Scientifico Scienze Applicate/Diagrammi di Flusso
* Operatori AritmeticiInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici
* Istruzione ifInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione if
** Esercizio Equazione 2^ gradoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Equazione 2^ grado
** Esercizio Calcola lo ScontoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto
** Esercizio Calcola lo Sconto2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto2
* Operatori LogiciInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Logici
** Esercizio x interno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x interno all'intervallo
** Esercizio x esterno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x esterno all'intervallo
* Istruzione switchInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch
** Esercizio Scelta EquazioneInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Scelta Equazione
* Altre Istruzioni di Scelta o DiramazioneInformatica 2 Liceo Scientifico Scienze Applicate/Altre Istruzioni di Scelta o Diramazione
* Istruzioni di RipetizioneInformatica 2 Liceo Scientifico Scienze Applicate/Istruzioni di Ripetizione
** Es (do-while) Indovina il numeroInformatica 2 Liceo Scientifico Scienze Applicate/Es (do-while) Indovina il numero
** Es (while) La nonna è stancaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) La nonna è stanca
** Es (for) Somma di 5 numeriInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Somma di 5 numeri
** Es (for) Analisi sequenza datiInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Analisi sequenza dati
** Es (for) Sequenze NumericheInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Sequenze Numeriche
** Es (for) SupermarketInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Supermarket
** Es (while) Bisca ClandestinaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) Bisca Clandestina
* Compito2Informatica 2 Liceo Scientifico Scienze Applicate/Compito2
* I vettoriInformatica 2 Liceo Scientifico Scienze Applicate/I vettori
** Es Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es Usiamo i vettori
** Es2 Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es2 Usiamo i vettori
** Es3 Supermarket con vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es3 Supermarket con vettori
** Compito dic 2019Informatica 2 Liceo Scientifico Scienze Applicate/Compito dic 2019
** BubbleSortInformatica 2 Liceo Scientifico Scienze Applicate/BubbleSort
** Ricerca DicotomicaInformatica 2 Liceo Scientifico Scienze Applicate/Ricerca Dicotomica
* Matrici e ArrayInformatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array
** Es matrici battaglia navaleInformatica 2 Liceo Scientifico Scienze Applicate/Es matrici battaglia navale
** Es matrici 1Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 1
** Es matrici 2Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 2
* PuntatoriInformatica 2 Liceo Scientifico Scienze Applicate/Puntatori
* StructInformatica 2 Liceo Scientifico Scienze Applicate/Struct
** Es Bubble Sort con StructInformatica 2 Liceo Scientifico Scienze Applicate/Es Bubble Sort con Struct
* FunzioniInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni
* Funzioni Void e non VoidInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni Void e non Void
** esercizi1 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi1 funzioni
** esercizi2 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi2 funzioni
** esercizi3 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi3 funzioni
* BacktrackingInformatica 2 Liceo Scientifico Scienze Applicate/Backtracking
* TemplateInformatica 2 Liceo Scientifico Scienze Applicate/Template
* FileInformatica 2 Liceo Scientifico Scienze Applicate/File
** File di TestoInformatica 2 Liceo Scientifico Scienze Applicate/File di Testo
** File BinariInformatica 2 Liceo Scientifico Scienze Applicate/File Binari
** File RecordsInformatica 2 Liceo Scientifico Scienze Applicate/File Records
** Es FilesInformatica 2 Liceo Scientifico Scienze Applicate/Es Files
* Esercizi VacanzeInformatica 2 Liceo Scientifico Scienze Applicate/Esercizi Vacanze
** Esercizi1Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi1
** Esercizi2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi2
** Esercizi3Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi3
* Olimpiadi Informatica
** NobileChimicoInformatica 2 Liceo Scientifico Scienze Applicate/NobileChimico
** Sunnydale
** MappaAnticaInformatica 2 Liceo Scientifico Scienze Applicate/MappaAntica
Modifica il sommario

## Istruzione switch

L'istruzione switch serve per selezionare ed eseguire, in funzione del risultato (intero) di una certa espressione, uno dei blocchi di codice indicizzati nello switch.
Viene utilizzata per creare ad esempio un menù di scelta, se l'utente preme il numero 1 viene creato il database, se preme 2 può inserire un record, se preme 3 può ricercare un elemento ecc.
La sintassi del comando è la seguente
Quando viene eseguito il comando viene valutata l'espressione, questa da come risultato un numero intero, si ricerca fra i numeri scritti a fianco alla parola case se c'è una corrispondenza, se viene trovata vengono eseguite le istruzioni del blocco associato a quel case, se non c'è una corrispondenza vengono eseguite le istruzioni associate alla parola default. Attenzione che i .... li ho messi per evidenziare che potete aggiungere più istruzioni o più case.
Vediamo un esempio per capire meglio:
In questo programma si è realizzato un menù di scelta
* se l'utente preme 1 si esegue il blocco di codice per calcolare l'area di un rettangolo
* se seleziona 2 si esegue il blocco di codice per il calcolo del trapezio
* se si seleziona 3 il blocco di codice per il calcolo dell'area del cerchio
in questo caso l'espressione intera da valutare è costituita da una sola variabile la x, ma poteva anche essere del tipo 2*x*y-4, basta che il risultato sia un numero intero.
poi ci sono 3 case, ciascuno con associato un numero intero, il primo case ha come costante numerica associata il numero 1, il secondo case il numero 2, il terzo case il numero 3. Il fatto che il primo case abbia come numero associato il valore 1 è un puro caso poteva benissimo avere come costante numerica il numero 37, stessa cosa dicasi per i case successivi, ad esempio il secondo case poteva avere il numero 10, quindi non bisogna neppure rispettare un ordine crescente nella scelta delle costanti numeriche.
dopo il numero che rappresenta la costante numerica compaiono i : che ci vanno e poi vengono scritte le istruzioni associate a quel case, questo blocco di istruzioni di solito termina con l'istruzione break che termina lo switch, se nel corso dell'esecuzione del programma ci sarà corrispondenza fra il valore assunto dalla x e la costante di un case verrà eseguito il blocco di codice corrispondente. Nel nostro caso se premo 1 la x assume quel valore, c'è corrispondenza con la costante numerica (1) del primo case e quindi si avviano le istruzioni per eseguire il calcolo dell'area del rettangolo. Se il numero digitato fosse stato 3, la x assumeva quel valore, il primo e il secondo case venivano ignorati perché avevano una costante numerica diversa dal valore della x, e si arrivava al terzo case che aveva come costante numerica lo stesso valore della x, ora il codice ad essere eseguito è quello che serve per risolvere il calcolo dell'area del cerchio. L'esecuzione dei blocchi di codice si ferma quando viene incontrata l'istruzione break, se non c'è l'esecuzione prosegue con il blocco successivo e così via fino a trovare un break o in ultima istanza la parentesi graffa di chiusura che termina lo switch. Quindi e' possibile omettere il break in uno o più blocchi se si trae vantaggio da questa prosecuzione nel blocco successivo.Se nessuna costante numerica corrisponde al valore della x viene eseguito il blocco di codice messo dopo i : della parola default fino alla parentesi graffa di chiusura dello switch. La parola default e il relativo blocco di istruzioni possono essere omessi in questo caso se non ci sono corrispondenze fra la x e i valori costanti dei diversi case non viene eseguito nessun blocco e l'istruzione switch termina e l'esecuzione passa all'istruzione successiva.
Nel C le variabili char vengono memorizzate come interi, è allora possibile usarle come possibile espressione di scelta, le costanti dei diversi case che simboleggiano dei singoli caratteri vanno scritte fra singoli apici, le variabili costanti se sono stringhe vengono scritte fra doppi apici, se sono dei char fra singoli apici e se sono numeri senza niente. Non possiamo usare delle parole (string) come espressioni di scelta, solo interi o singoli char; Il programma di prima allora diventa
dove potete vedere per confronto le modifiche da fare nel caso la variabile di scelta sia di tipo char.