# Informatica 2 Liceo Scientifico Scienze Applicate/Istruzione if

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

## Operatori di Confronto

Gli operatori di confronto che servono per scrivere delle espressioni logiche (che hanno cioe' come risultati i valori booleani true e false) sono:
quindi per sapere se la variabile z e' uguale a 5 si deve scrivere la seguente condizione z==5 , e' un doppio uguale perché il singolo uguale e' invece l'operatore di assegnazione (che non serve per confrontare)

## Istruzione if

Non sempre e' possibile risolvere un problema usando soltanto istruzioni disposte sequenzialmente, alcune volte in base a una condizione si vuole eseguire in alternativa o un certo gruppo di istruzioni o un altro gruppo di istruzioni(diverse). Ad esempio posso dire se marco ha piu' di 10 euro prima saluta gli amici poi compra della pizza altrimenti torna a casa e poi va a giocare a calcio. Oppure possiamo dire se la merce acquistata ha un valore maggiore di 50 euro il negoziante fa uno sconto del 10% altrimenti uno sconto del 5%, in questo caso l'istruzione sconto del 10% e' in alternativa a quella dove lo sconto e' 5% e la scelta di quale sconto applicare dipende dalla condizione (spesa superiore a 50 euro)
L'istruzione per realizzare una scelta fra 2 blocchi di istruzioni e' l'istruzione if Vediamo ora la sintassi dell'if ( la sintassi e' la regola grammaticale con cui impartiamo l'ordine ) :
Ad esempio posso scrivere
Guardando alla sintassi del comando si ha :
* che la condizione logica è una qualsiasi espressione che ha come risultato un valore booleano (cioè o true o false)
* poi c'e' un primo blocco d'istruzioni racchiuse fra parentesi graffe (quella di apertura allineata con quella di chiusura) che sono eseguite se la condizione logica e' true, questo blocco di istruzioni e' detto blocco istruzioni caso vero
* poi c'e' dopo l'else un secondo blocco d'istruzioni racchiuse fra parentesi graffe (quella di apertura allineata con quella di chiusura) che sono eseguite se la condizione logica e' false, questo blocco di istruzioni e' detto blocco istruzioni caso falso
* la parola if corrisponde all'italiano se ed è una parola riservata perché indica un'istruzione
* la parola else corrisponde all'italiano altrimenti, e' una parola riservata ed usata insieme ad un if ( e quindi mai da sola)
possiamo riassumere dicendo che if-else funziona in questo modo: se la condizione e' verificata esegui le istruzioni del blocco caso vero altrimenti quelle del blocco caso falso.
per rappresentare graficamente un if-else ho il seguente diagramma di flusso
ci sono delle varianti al comando , ad esempio può mancare la parte else , in questo caso si parla di if semplice (quello precedente e' detto invece if a 2 vie).La sintassi del if semplice e'
ad esempio
in questo caso solo se la condizione a>4 è verificata le istruzioni del blocco vero sono eseguite,e il diagramma di flusso e' il seguente
si nota che la struttura e' uguale a quella di prima ma non ci sono istruzioni da eseguire nel caso falso . Sia che ci sia l'esecuzione del blocco vero o sia che venga eseguito quello falso poi ci si ricongiunge in un punto e si prosegue con le istruzioni successive. Se un blocco di istruzioni contiene una sola istruzione allora le graffe di quel blocco possono essere omesse, cioe' posso avere:
oppure
oppure
nel caso di if semplice si ha invece
che possiamo scrivere anche su una sola riga
Le istruzioni del blocco vero o falso possono essere qualsiasi , se le istruzioni di un blocco (vero o falso di un if) contengono a loro volta un'istruzione if si parla di istruzione if annidata, ad esempio
naturalmente nel comando precedente qualche graffa poteva essere omessa arrivando a:
Qualche volta quando si usano degli if annidati si creano delle situazioni particolari
in questo caso ho un solo else a quale if appartiene? in questo caso la regola vuole che l'if appartenga all'if piu' interno (cioe' al if(a>70) ), posso identare (spaziando) meglio il codice per evidenziare come l'istruzione vienen eseguita
per ottenere l'effetto opposto bisogna giocare con le parentesi graffe, in modo da raggruppare in modo diverso le istruzioni, si ha allora
Gli annidamenti del if danno luogo a delle strutture dette if-elseif del tipo
in questo caso anche se l'identazione e' corretta perché evidenzia la corretta struttura if else if, si preferisce ricompattarla per motivi di spazio nella seguente forma:
che evidenzia che si ha un if multiplo che serve per gestire una serie di casi ( a pari a 1, a pari a 4 etc ) e la relativa azione intrapresa.
Nel C non esistono le variabili booleani, che sono state introdotte nel c++, nel c per rappresentare una variabile booleana (vero/falso) si usa un intero, se l'intero vale 0 la condizione e' falsa , se e' diverso da zero la condizione e' vera, quindi l'espressione logica (condizione) con i booleani puo' essere sostituita da una espressione che restituisce un intero
se z vale 10 e scrivo
vedo sullo schermo comparire ciao perché z-6 fa 4 e quattro e' un numero diverso da zero e quindi se interpretato come il risultato di una espressione logica si ha vero.