Fondamenti di Informatica T1 Introduzione al linguaggio Java Input

Fondamenti di Informatica T1
Introduzione al linguaggio Java
Input/Output-Variabili-Tipi
Tutor
Melissa Licciardello
[email protected]
Melissa Licciardello
Fondamenti di Informatica T1
1 / 15
Che cos’è un programma?
Un programma è una sequenza finita di istruzioni che, una volta
eseguite, produce soluzioni per una data classe di problemi
automatizzati.
Ogni programma deve essere scritto in un linguaggio di
programmazione, ovvero utilizzando un particolare insieme di parole
chiave che, nell’insieme, devono rispettare
I
I
una SINTASSI : insieme di regole formali che il costrutto di una frase
deve rispettare (ad esempio, in italiano, ogni frase deve essere formata
da SOGGETTO + VERBO + PREDICATO)
una SEMANTICA : significato da attribuire ad ogni frase
sintatticamente corretta (non tutte le frase sintatticamente corrette
hanno un senso, anche in italiano. Esempi?)
Ogni programma, per risolvere un particolare problema, fa uso di un
algoritmo : sequenza finita di passi per risolvere in un tempo finito un
problema.
Melissa Licciardello
Fondamenti di Informatica T1
2 / 15
Java
Linguaggio ad alto livello molto simile ad il linguaggio naturale
Sia compilato che interpretato
I
I
Non viene direttamente compilato in linguaggio macchina ma in
bytecode, un linguaggio intermedio indipendente dalla macchina →
PORTABILITA’
Quando viene lanciato un programma, è la JVM ad ”interpretarlo”
(da bytecode a linguaggio macchina) a seconda dell’hardware
sottostante
Melissa Licciardello
Fondamenti di Informatica T1
3 / 15
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)
Melissa Licciardello
Fondamenti di Informatica T1
4 / 15
Le variabili in Java
Variabile : astrazione di una cella di memoria → ci consente di
memorizzare dati
I
I
I
I
I
Dobbiamo dichiararne il tipo (int, float, char.. Il nostro programma
deve sapere come interpretarlo e quanta memoria riservare!)
Dobbiamo associarci un nome con il quale ci potremmo riferire a lei
durante la scrittura del programma ( Convenzione → lettera iniziale
minuscola )
A runtime le verrà associato un valore
La sintassi di dichiarazione è quindi del tipo <tipo> <nome>;
La sintassi di assegnamento è del tipo <nome> = <valore>;
Esempio :
int contatore; //dichiarazione
contatore = 7; //assegnamento
Melissa Licciardello
Fondamenti di Informatica T1
5 / 15
Operatori aritmetici in Java
+ → Somma
- → Sottrazione
* → Moltiplicazione
/ → Divisione
% → Resto ( Es : 17%4 = 1 )
Melissa Licciardello
Fondamenti di Informatica T1
6 / 15
Regole di precedenza
Da precedenza più alta a precedenza più bassa
I
I
Operatori binari di moltiplicazione, divisione e resto (*,/, %)
Operatori binari di somma e sottrazione (+, −)
Possibilità di modificare l’ordine di precedenza con l’inserimento di
parentesi (esattamente come le normali espressioni algebriche)
Melissa Licciardello
Fondamenti di Informatica T1
7 / 15
Operatori logici e comparativi in Java
== → Uguale
(ATTENZIONE : è molto diverso dal ”=” dell’assegnamento)
!= → Diverso
> → Maggiore
>= → Maggiore Uguale
< → Minore
<= → Minore Uguale
&& → AND logico
|| → OR logico
Melissa Licciardello
Fondamenti di Informatica T1
8 / 15
Input da tastiera : La classe SCANNER
Per leggere dati da tastiera si utilizza la classe Scanner che si trova
nel package java.util
I
I
I
I
I
Per poterla utilizzare bisogna importarla con l’istruzione import
java.util.Scanner nelle prime righe del programma
Per creare un’istanza → Scanner scanner = new Scanner(System.in);
Lettura di un numero intero → int i = scanner.nextInt();
Lettura di un numero reale → double d = scanner.nextDouble();
Chiusura dello scanner (ricordarsi di farlo una volta che quest’ultimo
non ci serve più) → scanner.close();
Melissa Licciardello
Fondamenti di Informatica T1
9 / 15
Output
Viene utilizzato l’oggetto System.out
I
I
metodo System.out.print(”Ciao”); → stampa la stringa contenuta fra
gli apici
metodo System.out.println(”Ciao”); → stampa la stringa contenuta fra
gli apici e va a capo
E’ possibile concatenare più elementi da stampare a video con
l’operatore ”+”
Esempio:
int i = 7;
System.out.println(”La mia variabile vale ” + i + ” !”);
Quello che verrà visualizzato sullo schermo sarà
La mia variabile vale 7 !
Melissa Licciardello
Fondamenti di Informatica T1
10 / 15
Esercizio 1 (SVOLTO)
Scrivere un programma che, inseriti da tastiera due numeri interi, ne
calcoli la somma e la stampi a video.
Melissa Licciardello
Fondamenti di Informatica T1
11 / 15
Soluzione primo esercizio
Melissa Licciardello
Fondamenti di Informatica T1
12 / 15
Esercizio 2
Scrivere un programma che, inseriti da tastiera due numeri interi, ne
calcoli la somma, sottrazione, prodotto e divisione e li stampi a video.
Melissa Licciardello
Fondamenti di Informatica T1
13 / 15
Esercizio 3
Scrivere un programma che, inserite le coordinate cartesiane di un
punto ed i coefficienti di una retta in forma implicita (tutti quanti
considerati come double), calcoli la distanza del punto dalla retta.
...per chi non si ricordasse la formula, dato P (Xp , Yp )
e r : ax + by + c = 0
|aX +bY +c|
d = √p a2 +bp2
Per le funzioni matematiche di utility guardare la descrizione della
classe Math nella slide successiva.
Suggerimento: non svolgete il calcolo ”direttamente”, create delle
variabili di appoggio dove andrete a memorizzare i risultati parziali
per rendere il tutto più lineare e leggibile.
Melissa Licciardello
Fondamenti di Informatica T1
14 / 15
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à → http:
//docs.oracle.com/javase/7/docs/api/java/lang/Math.html
Alcune funzioni utili che ci serviranno in questa esercitazione
I
I
I
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
Melissa Licciardello
Fondamenti di Informatica T1
15 / 15