Fondamenti di Informatica T-1
Introduzione al linguaggio Java - Input/Output, Variabili, Tipi
Tutor:
Allegra De Filippo
[email protected]
a.a. 2015/2016
Fondamenti di Informatica T-1
Allegra De Filippo
1 / 18
PROGRAMMI e LINGUAGGI
• Algoritmo → sequenza finita di passi per risolvere in un
tempo finito un problema
• Linguaggio di programmazione → notazione formale che
può essere usata per descrivere algoritmi. Due aspetti del
linguaggio:
I
I
SINTASSI: regole formali per costruire frasi corrette nel
linguaggio
SEMANTICA: insieme dei significati da attribuire alle frasi
(sintatticamente corrette) costruite nel linguaggio
• Programma → testo scritto in accordo alla sintassi e alla
semantica del linguaggio di programmazione
Fondamenti di Informatica T-1
Allegra De Filippo
2 / 18
JAVA
• Linguaggio ad alto livello simile ad un linguaggio naturale
I
Viene compilato in bytecode, un linguaggio intermedio
indipendente dalla macchina → PORTABILITÀ
I
Quando viene lanciato un programma, è la JVM ad
”interpretarlo” (da bytecode a linguaggio macchina) a seconda
dell’hardware sottostante
Fondamenti di Informatica T-1
Allegra De Filippo
3 / 18
TIPI di DATO PRIMITIVI in JAVA
• Sono i tipi di dato messi a disposizione automaticamente dal
linguaggio
• Per creare tipi di dato più ”particolari” → Classi ed Oggetti
(li vedremo più avanti)
Fondamenti di Informatica T-1
Allegra De Filippo
4 / 18
VARIABILI
• Astrazione di una cella di memoria → consentono di
memorizzare dati
• Sono caratterizzate da:
I
I
I
Tipo (int, float, char...)
Valore
Nome (convenzione → lettera minuscola)
• Ad ogni variabile è assegnata un’area di memoria di
dimensione dipendente dal tipo
• Dichiarazione: <tipo><nome>;
• Assegnamento: <nome> = <valore>;
Esempio:
int numero; //dichiarazione
numero = 4; //assegnamento
Fondamenti di Informatica T-1
Allegra De Filippo
5 / 18
OPERATORI ARITMETICI
• Somma → a+b;
• Sottrazione → a-b;
• Moltiplicazione → a∗b;
• Divisione → a/b;
• Resto → a%b;
• Incremento/decremento:
• a = a+n; → a+=n; → (se n=1) a++; incremento postfisso
• a = a-n; → a-=n; → (se n=1) a−−; decremento postfisso
Fondamenti di Informatica T-1
Allegra De Filippo
6 / 18
OPERATORI LOGICI e COMPARATIVI
• Uguale → ==;
(ATTENZIONE: è molto diverso dal ”=” dell’assegnamento)
• Diverso → !=;
• Maggiore → >;
• Maggiore Uguale → >=;
• Minore → <;
• Minore Uguale → <=;
• NOT logico → !;
• AND logico → &&;
• OR logico → ||;
Fondamenti di Informatica T-1
Allegra De Filippo
7 / 18
LA CLASSE MATH
La classe Math è una particolare classe che contiene numerosi
metodi statici (capiremo in seguito cosa sono esattamente) e
costanti utili per i calcoli matematici.
Per una descrizione completa delle funzionalità, visitare la pagina:
https://docs.oracle.com/javase/8/docs/api/java/lang/
Math.html.
Alcune esempi di funzioni utili:
• int valore assoluto = Math.abs(x); → Ritorna il valore
assoluto di x
• double quadrato = Math.pow(x,2); → Ritorna il quadrato di
x
• double radice = Math.sqrt(x); → Ritorna la radice quadrata
di x
Fondamenti di Informatica T-1
Allegra De Filippo
8 / 18
INPUT da TASTIERA: la CLASSE SCANNER
Per leggere dati da tastiera si utilizza la classe Scanner che si
trova nel package java.util
• Per poterla utilizzare bisogna importarla con l’istruzione
import java.util.Scanner nelle prime righe del programma
• Per creare un’istanza:
Scanner tastiera = new Scanner(System.in);
• Lettura di un numero intero:
int i = tastiera.nextInt();
• Lettura di un numero reale:
double d = tastiera.nextDouble();
• Chiusura tastiera (ricordarsi di farlo quando non serve più):
tastiera.close();
Fondamenti di Informatica T-1
Allegra De Filippo
9 / 18
OUTPUT
Viene utilizzato l’oggetto System.out
• metodo System.out.print(”Hello World!”); → stampa la
stringa contenuta fra gli apici
• metodo System.out.println(”Hello World!”); → stampa la
stringa contenuta fra gli apici e va a capo
È possibile concatenare più elementi da stampare a video
utilizzando l’operatore ”+”
Esempio:
int var = 4;
System.out.println(”La mia variabile vale ” + var + ”!”);
Quello che verrà visualizzato sullo schermo sarà:
La mia variabile vale 4!
Fondamenti di Informatica T-1
Allegra De Filippo
10 / 18
CREAZIONE DEL PROGETTO
Create un progetto che chiamerete Esercitazione2 e, al suo
interno, create un package diverso per ogni esercizio.
In ogni package create una classe che conterrà il codice del vostro
esercizio.
La struttura del vostro progetto dovrà essere cosı̀:
Fondamenti di Informatica T-1
Allegra De Filippo
11 / 18
ESERCIZIO 1 (SVOLTO)
Scrivere un programma che chieda all’utente di inserire da
tastiera due numeri interi ed esegua le operazioni di addizione e
sottrazione mostrando a video il risultato.
Fondamenti di Informatica T-1
Allegra De Filippo
12 / 18
ESERCIZIO 1 (SOLUZIONE)
Fondamenti di Informatica T-1
Allegra De Filippo
13 / 18
RAGIONIAMO UN ATTIMO
1. E se avessimo bisogno di memorizzare i risultati della somma
e della differenza?
2. Vi viene in mente un esempio di utilizzo successivo di questi
valori?
Fondamenti di Informatica T-1
Allegra De Filippo
14 / 18
PROVIAMO A RISPONDERE
1. int somma = a + b;
int differenza = a − b;
2. Potremmo (ad esempio) aver bisogno del doppio della
variabile somma e del valore assoluto della variabile
differenza → usiamo Math
int doppio = Math.multiplyExact(somma, 2);
int assoluto = Math.abs(differenza);
È anche possibile stampare a video queste due nuove variabili.
Provate a farlo a casa poi confrontatelo con la soluzione sul
sito del corso!
Fondamenti di Informatica T-1
Allegra De Filippo
15 / 18
ESERCIZIO 2
Convertitore Dollaro (USA) → Euro
• Scrivere un programma che, dato in input un numero reale
(usare variabile di tipo double) corrispondente ad un prezzo in
$, mostri a video il suo valore in e
• Si ricorda che 1 $ = 0,920979923 e
(valore aggiornato a marzo 2016)
Fondamenti di Informatica T-1
Allegra De Filippo
16 / 18
ESERCIZIO 3
Scrivere un programma che, dato in input un numero reale
corrispondente al raggio di un cerchio, calcoli la lunghezza della
circonferenza e l’area del cerchio e le stampi a video.
Si ricorda che:
circonferenza = 2πr
area = πr 2
N.B. anche circonferenza e area sono variabili di tipo double!
Fondamenti di Informatica T-1
Allegra De Filippo
17 / 18
SUGGERIMENTI
• per usare il π, si deve usare la classe Math in questo modo:
Math.PI
• per fare il quadrato, dovete usare
Math.pow(double base, double esponente) che restituisce
sempre un double
Fondamenti di Informatica T-1
Allegra De Filippo
18 / 18