Fondamenti di Informatica: operatori Java, eCampus Università

Slide da eCampus Università su Fondamenti di Informatica. Il Pdf è una presentazione di Informatica di livello universitario che illustra gli operatori aritmetici, relazionali, logici e bit a bit in Java, con tabelle riassuntive e spiegazioni dettagliate.

Mostra di più

8 pagine

Fondamenti di Informatica
Operatori
Trascrizione
Prof. Giuseppe Tradigo
giuseppe.tradigo@uniecampus.it
1
Corso di Laurea: Ingegneria Informatica
Insegnamento: Fondamenti di Informatica
Numero lezione: 22
Titolo: Operatori
Operatori
Facciamo ora una breve disamina degli operatori che si possono utilizzare nella codifica di
espressioni Java.
Gli operatori possono essere classificati come: aritmetici – sono operatori dedicati al calcolo
di valori di tipo numerico; relazionali – sono operatori dedicati al confronto di valori; logici –
sono operatori dedicati al calcolo di valori di verità tra operandi di tipo binario; bit a bit – sono
operatori che servono ad effettuare modifiche di tipi numerici a livello dei bit.
Oltre a questi esiste l’operatore assegnamento e l’operatore ternario che permette di
realizzare in modo sintatticamente molto conciso operazioni condizionate.
La padronanza di tali operatori permette di progettare algoritmi in modo molto preciso ed
efficace. In particolare gli operatori sono utilizzati in special modo per la progettazione delle
condizioni sui cicli o per l'aggiornamento di variabili.
Operatori aritmetici
Gli operatori aritmetici del linguaggio Java sono riassunti nella seguente tabella:
Tabella 1 – operatori aritmetici del linguaggio Java.
Nome operatore Simbolo
Tipo operatore
Unario Binario
negazione
-
somma
+
differenza
-
assegnamento
=
uguaglianza
==
autoincremento
++
autodecremento
--
2
Corso di Laurea: Ingegneria Informatica
Insegnamento: Fondamenti di Informatica
Numero lezione: 22
Titolo: Operatori

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

e CAMPUS UNIVERSITÀ

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria Fondamenti di Informatica Operatori

Trascrizione Prof. Giuseppe Tradigo giuseppe.tradigo@uniecampus.it

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co)- C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 1e CAMPUS UNIVERSITÀ

Classificazione degli Operatori

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria Operatori

Facciamo ora una breve disamina degli operatori che si possono utilizzare nella codifica di espressioni Java.

Gli operatori possono essere classificati come: aritmetici - sono operatori dedicati al calcolo di valori di tipo numerico; relazionali - sono operatori dedicati al confronto di valori; logici - sono operatori dedicati al calcolo di valori di verità tra operandi di tipo binario; bit a bit - sono operatori che servono ad effettuare modifiche di tipi numerici a livello dei bit.

Oltre a questi esiste l'operatore assegnamento e l'operatore ternario che permette di realizzare in modo sintatticamente molto conciso operazioni condizionate.

La padronanza di tali operatori permette di progettare algoritmi in modo molto preciso ed efficace. In particolare gli operatori sono utilizzati in special modo per la progettazione delle condizioni sui cicli o per l'aggiornamento di variabili.

Operatori Aritmetici Java

Gli operatori aritmetici del linguaggio Java sono riassunti nella seguente tabella:

Tabella 1 - operatori aritmetici del linguaggio Java.

Tipo operatoreNome operatoreSimboloUnarioBinario
negazione
somma+
differenza-
assegnamento=
uguaglianza==
autoincremento++
autodecremento--

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co)- C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 2e CAMPUS UNIVERSITÀ

Dettagli Operatori Aritmetici

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria

prodotto*
divisione/
modulo%

Gli operatori negazione, autoincremento e autodecremento sono unari perché accettano un solo parametro. Si noti come non è presente nell'elenco l'operatore di elevamento a potenza che esiste ed è presente in alcuni linguaggio, ma non in Java. È importante dire che gli operandi degli operatori aritmetici in Java possono essere solo tipi primitivi. Fa eccezione l'operatore assegnamento che può essere utilizzato per qualsiasi tipo. Inoltre, il simbolo di somma (+), quando compare tra due stringhe, funziona come un operatore di concatenamento di stringhe di caratteri.

Precedenza Operatori Aritmetici

Se invece volessimo ordinare gli operatori per precedenza, potremmo individuare quattro gruppi con diverse priorità:

Tabella 2 - classi di priorità degli operatori aritmetici (da sinistra a destra precedenza maggiore a minore).

Precedenza massimaPrecedenza minima
negazione (-)
autoincremento (++)
autodecremento ( -- )
prodotto (*)
divisione (/)
modulo (%)
somma (+)
differenza (-)
assegnamento (=)
confronto ( == )

Quelle mostrate in tabella sono classi di precedenza, per cui operatori che stanno nella stessa classe di precedenza vengono considerati nell'ordine di scrittura in cui appaiono nel codice sorgente. In particolare, quelli a precedenza maggiore, vengono valutati (o calcolati) prima rispetto a quelli a precedenza minore.

Ad esempio, un operatore di autoincremento verrà valutato prima rispetto ad un operatore di prodotto, perché appartiene ad una classe con precedenza più alta (vedi Tabella 2). Fra prodotto e divisione, invece, non c'è precedenza essendo gli operatori appartenenti alla stessa classe di precedenza, quindi verranno valutati seguendo l'ordine in cui sono stati scritti dal programmatore nell'espressione scritta nel codice Java.

C2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co) - C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 3e CAMPUS UNIVERSITÀ

Regole di Valutazione delle Espressioni

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria

Seguendo la regola appena descritta, nel valutare una espressione, Java valuterà prima gli operatori che hanno una precedenza più elevata, il che ci permette di scrivere le espressioni aritmetiche secondo le normali regole algebriche cui siamo abituati, in modo analogo a come facciamo manualmente.

Inoltre, gli operatori +, -, * / e % sono associativi a sinistra (left associative), cioè, quando appaiono in una espressione insieme ad operatori dello stesso livello, vengono raggruppati nell'ordine in cui appaiono, da sinistra a destra.

Sovrascrittura della Precedenza

Naturalmente, come accade nell'aritmetica cui siamo abituati, è possibile sovrascrivere la precedenza di default degli operatori racchiudendo parti dell'espressione fra parentesi tonde.

Fra l'altro, in Java, le uniche parentesi utilizzabili in espressioni sono quelle tonde, a differenza di quello a cui siamo abituati con le equazioni aritmetiche in cui si possono utilizzare anche le parentesi quadre e graffe.

Si possono aprire un numero arbitrario di parentesi, a patto che esse siano poi tutte chiuse alla fine dell'equazione.

Operatore Negazione

L'operatore negazione è un operatore unario, perché, a dissimilmente dagli operatori somma, differenza o prodotto, lavora su un singolo operando, di cui inverte il segno.

Operatore Modulo

L'operatore di modulo "%" ci permette di calcolare, qualora ne avessimo bisogno, il resto della divisione intera tra l'operando di sinistra e quello di destra.

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co) - C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 4e CAMPUS UNIVERSITÀ

Uso dell'Operatore Modulo

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria

Uno degli usi più frequenti (ma non è l'unico) dell'operatore modulo è il test per sapere se una data variabile intera contiene un valore pari o dispari. Questo perché ci ricordiamo dall'aritmetica elementare che dividendo qualsiasi numero pari per 2, otterremo un resto pari a 0, mentre la medesima operazione con un numero dispari restituirà come resto 1.

Operatori Relazionali

Gli operatori relazionali hanno anch'essi una precedenza associata, riportata in Tabella 3 in ordine decrescente di precedenza.

Tabella 3 - precedenza degli operatori relazionali

Massima precedenzaMinima Precedenza
maggiore di (>)
minore di (<)
maggiore o uguale di (>=)
minore o uguale di ( <= )
uguale a ( == )
diverso da ( != )

Si noti come l'operatore di uguaglianza " == " sia diverso dall'operatore di assegnamento "=". Gli operatori relazionali riportati nella colonna di sinistra possono confrontare fra loro solo variabili aventi come tipi dei tipi numerici primitivi (ad es. int, float, char, byte).

Gli operatori riportati nella seconda colonna possono confrontare anche booleani e oggetti come, per ad esempio gli array. In quest'ultimo caso però bisogna ricordarsi che non viene con frontato il contenuto, bensì se un oggetto o una variabile array è uguale a un'altra, e cioè se condividono lo stesso spazio di memoria (puntano allo stesso spazio di memoria quindi sono la stessa variabile), oppure se l'oggetto o l'array è uguale (o diverso) da null.

Operatori Logici

Gli operatori logici si utilizzano per concatenare tra loro valori booleani o per negare un valore booleano.

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co)- C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 5e CAMPUS UNIVERSITÀ

Precedenza Operatori Logici

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria

Massima precedenzaNomeSimbolo
NOT!
AND&
XOR^
OR|
AND short circuit&&
OR short circuit||
Minima precedenza

Nella tabella mostrata vengono riportati gli operatori logici ordinati per ordine di precedenza.

Operatore NOT

L'operatore NOT (!) è un operatore unario ed infatti lavora su un solo operando. Restituisce false se l'operando vale true e true se l'operando vale false.

Operatore AND

L'operatore AND (&) è un operatore binario che ha due operandi booleani e restituisce true se gli operandi hanno entrambi valore true, altrimenti restituirà false.

Operatore XOR

L'operatore XOR (^), che sta per eXclusive OR, ovvero OR esclusivo, ed è un operatore binario che ha due operandi booleani e restituisce true se solo uno dei due vale true, false se entrambi hanno lo stesso valore.

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co) - C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 6e CAMPUS UNIVERSITÀ

Operatore OR

Corso di Laurea: Ingegneria Informatica Insegnamento: Fondamenti di Informatica Numero lezione: 22 Titolo: Operatori Ingegneria

L'operatore OR (|), o OR inclusivo, è anch'esso un operatore binario che ha due operandi booleani come i precedenti e restituisce true se almeno uno dei due operandi vale true. Restituisce false se entrambi gli operandi valgono false.

Tabella di Verità degli Operatori Logici

Tutte le proprietà degli operatori logici appena visti sono riepilogate nella tabella di verità che segue:

a (operando 1)b (operando 2)AND (&)XOR (^)OR (|)NOT (!)
falsefalsefalsefalsefalsetrue
truefalsefalsetruetruefalse
falsetruefalsetruetruetrue
truetruetruefalsetruefalse

Dove l'operatore NOT si intende applicato al primo operando (il che è ovvio essendo un operatore unario).

Oltre a quelli visti finora, esistono anche altri operatori logici, cosiddetti short circuit (corto circuito). Vediamo come funzionano.

Operatori AND e OR Short Circuit

Gli operatori AND short circuit (&&) e OR short circuit (||) si basano sull'osservazione che spesso, mettendo in AND o OR due operatori booleani, è possibile conoscere il risultato dell'espressione anche guardando soltanto il primo valore.

Se ad esempio consideriamo due valori booleani in AND, se il primo operando ha valore false, possiamo evitare di controllare il valore del secondo operando, perché indipendentemente dal suo valore, il risultato sarà sempre false.

C 2007 - 2016 Università degli Studi eCampus - Via Isimbardi 10 - 22060 Novedrate (Co) - C.F. 9002752130 - Tel: 031.79421 - Fax: 031.7942501 - Mail: info@uniecampus.it 7

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.